Re: [PATCH] Deadlock during heavy write activity to userspace NFS

Nick Piggin
2004-07-28T05:49:55Z

Avi Kivity wrote:
> Ulrich Weigand wrote:
>
>> Avi Kivity wrote:
>>
>>
>>
>>> In our case, all block I/O is done using unbuffered I/O, and all
>>> memory is preallocated, so we don't need kswapd at all, just that
>>> small bit of memory that syscalls consume.
>>>
>>
>>
>> Does your userspace process need to send/receive network packets
>> in order to perform a write-out?
>
> Yes.
>
>> If so, how can you make sure your
>> incoming packets aren't thrown away in out-of-memory situations?
>> (Outgoing packets can use PF_MEMALLOC memory I guess, but incoming
>> ones aren't associated to any process yet ...)
>>
>>
>>
> I did nothing to address this. So far it works well, even under heavy
> load. I guess a general solution needs to address this as well.
>
> The kernel NFS client (which kswapd depends on) has the same issue. Has
> anyone ever observed kswapd deadlock due to imcoming or outgoing NFS
> packets being discarded due to oom?
>

Yes this has been observed.

alloc_skb on the client needs to somehow know that traffic coming
from the server is "MEMALLOC" and allowed to use memory reserves.