On Mon, 2007-08-06 at 13:19 -0700, Christoph Lameter wrote: > On Mon, 6 Aug 2007, Matt Mackall wrote: > > > > > Because a block device may have deadlocked here, leaving the system > > > > unable to clean dirty memory, or unable to load executables over the > > > > network for example. > > > > > > So this is a locking problem that has not been taken care of? > > > > No. > > > > It's very simple: > > > > 1) memory becomes full > > We do have limits to avoid memory getting too full. > > > 2) we try to free memory by paging or swapping > > 3) I/O requires a memory allocation which fails because memory is full > > 4) box dies because it's unable to dig itself out of OOM > > > > Most I/O paths can deal with this by having a mempool for their I/O > > needs. For network I/O, this turns out to be prohibitively hard due to > > the complexity of the stack. > > The common solution is to have a reserve (min_free_kbytes). This patch set builds on that. Trouble with min_free_kbytes is the relative nature of ALLOC_HIGH and ALLOC_HARDER. > The problem > with the network stack seems to be that the amount of reserve needed > cannot be predicted accurately. > > The solution may be as simple as configuring the reserves right and > avoid the unbounded memory allocations. Which is what the next series of patches will be doing. Please do look in detail at these networked swap patches I've been posting for the last year or so. > That is possible if one > would make sure that the network layer triggers reclaim once in a > while. This does not make sense, we cannot reclaim from reclaim.
Attachment:
signature.asc
Description: This is a digitally signed message part
- Follow-Ups:
- Re: [PATCH 02/10] mm: system wide ALLOC_NO_WATERMARK
- From: Christoph Lameter <[email protected]>
- Re: [PATCH 02/10] mm: system wide ALLOC_NO_WATERMARK
- References:
- [PATCH 00/10] foundations for reserve-based allocation
- From: Peter Zijlstra <[email protected]>
- Re: [PATCH 02/10] mm: system wide ALLOC_NO_WATERMARK
- From: Daniel Phillips <[email protected]>
- Re: [PATCH 02/10] mm: system wide ALLOC_NO_WATERMARK
- From: Christoph Lameter <[email protected]>
- Re: [PATCH 02/10] mm: system wide ALLOC_NO_WATERMARK
- From: Daniel Phillips <[email protected]>
- Re: [PATCH 02/10] mm: system wide ALLOC_NO_WATERMARK
- From: Christoph Lameter <[email protected]>
- Re: [PATCH 02/10] mm: system wide ALLOC_NO_WATERMARK
- From: Matt Mackall <[email protected]>
- Re: [PATCH 02/10] mm: system wide ALLOC_NO_WATERMARK
- From: Christoph Lameter <[email protected]>
- [PATCH 00/10] foundations for reserve-based allocation
- Prev by Date: Re: [PATCH 00/10] foundations for reserve-based allocation
- Next by Date: Re: [PATCH 00/23] per device dirty throttling -v8
- Previous by thread: Re: [PATCH 02/10] mm: system wide ALLOC_NO_WATERMARK
- Next by thread: Re: [PATCH 02/10] mm: system wide ALLOC_NO_WATERMARK
- Index(es):