Re: Kernel deadlock using nbd over acenic driver.

Peter T. Breuer (ptb@it.uc3m.es)
Thu, 16 May 2002 07:10:10 +0200 (MET DST)


"A month of sundays ago Oliver Xymoron wrote:"
> On Tue, 14 May 2002, chen, xiangping wrote:
>
> > But how to avoid system hangs due to running out of memory?
> > Is there a safe guide line? Generally slow is tolerable, but
> > crash is not.
>
> If the system runs out of memory, it may try to flush pages that are
> queued to your NBD device. That will try to allocate more memory for
> sending packets, which will fail, meaning the VM can never make progress
> freeing pages. Now your box is dead.
>
> The only way to deal with this is to have a scheme for per-socket memory
> reservations in the network layer and have NBD reserve memory for sending

I entirely agree. However, initial reports are that setting

current->flags |= PF_MEMALLOC;

in the process about to do the networking (and unsetting it afterwards)
cures the apparant symptoms observed with swap over Enbd (see
freshmeat) in post 2.4.10 kernels.

I'll get back more reports later today.

> and acknowledging packets. NFS and iSCSI also need this, though it's a
> bit harder to tickle for NFS. SCSI has DMA reserved memory for analogous
> reasons.

Ah. I always wondered about NFS. If iSCSI does the reservation in a
controlled way, I will have to look at it.

Peter
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/