Re: swp_pager_meta_build DoS printf

From: Bjoern A. Zeeb <bzeeb-lists_at_lists.zabbadoz.net>
Date: Mon, 2 Jul 2012 16:31:48 +0000
On 2. Jul 2012, at 14:36 , John Baldwin wrote:

> On Sunday, July 01, 2012 8:23:31 am Bjoern A. Zeeb wrote:
>> Hey,
>> 
>> hitting this printf in swp_pager_meta_build()
>> 
>>                        if (uma_zone_exhausted(swap_zone)) {
>>                                printf("swap zone exhausted, increase kern.maxswzone\n");
>>                                vm_pageout_oom(VM_OOM_SWAPZ);
>>                                pause("swzonex", 10);
>>                        } else
>> 
>> seems to be an effective way to put the machine into a state of no recovery
>> unless the memory situation would be able to clear itself.  Not that it wouldn't
>> otherwise be any better but in addition having a couple of tenthousands of these
>> going to console as well is really not helpful to try to do anything either.  Can
>> we make it a log() call or something?
>> 
>> /bz
>> 
>> PS: I am not sure as I have seen it on someone else's machines and it's
>> probably been ZFS that caused it.  I unfortunately neither had a way to
>> get back in or break to a kernel debugger, so information is sparse.
> 
> This used to be a silent deadlock before I added the printf() and the call to
> OOM. :-P  Do you just want to ratelimit the printf?  We have an API to ratelimit
> printf's already.

Ratelimit would be fine;  I was writing that on the wrong time of the wrong day to
just get it out;  could you do that?

/bz

-- 
Bjoern A. Zeeb                                 You have to have visions!
   It does not matter how good you are. It matters what good you do!
Received on Mon Jul 02 2012 - 14:31:50 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:28 UTC