Messages in this thread | | | From | "chen, xiangping" <> | Subject | RE: Kernel deadlock using nbd over acenic driver. | Date | Thu, 16 May 2002 09:18:38 -0400 |
| |
I can imagine iSCSI projects to have similar problems. But how to let NBD reserve memory for packets, cause sk_buff is allocated in the network layer. How can NBD pass reserved memory to the network layer? Unless there are some kind zero copying networking scheme allowing data in buffer cache being directly used in network buffer, probably the network layer relieves its pain in allocating big sk_buff.
xiangping
-----Original Message----- From: Oliver Xymoron [mailto:oxymoron@waste.org] Sent: Wednesday, May 15, 2002 6:32 PM To: chen, xiangping Cc: 'Jes Sorensen'; 'Steve Whitehouse'; linux-kernel@vger.kernel.org Subject: RE: Kernel deadlock using nbd over acenic driver.
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 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.
-- "Love the dolphins," she advised him. "Write by W.A.S.T.E.." - 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/
| |