Messages in this thread |  | | From | Daniel Phillips <> | | Subject | Re: Memory Problem in 2.4.10-pre2 / __alloc_pages failed | | Date | Sun, 2 Sep 2001 20:26:01 +0200 |
| |
On September 2, 2001 03:48 pm, Alex Bligh - linux-kernel wrote: > > Or/and we could remove the sources of higher order allocs, as an example: > > why is the SCSI layer allowed to allocate order 3 allocs (32 kB) several > > times per second? Will we really get a performance hit by not allowing > > higher order allocs in active driver code? > > Or put them in some slab like code, the slab for which gets allocated > early on when memory is not fragmented, and (nearly) never gets released.
What do you do when a new module gets inserted, increasing the high order load and requiring that the slab be expanded? I.e, the need for dependable handling of high order physical allocations doesn't go away entirely. The slab would help even out the situation with atomic allocs because it can be expanded to a target size by a normal task, which can wait.
> Most of the stuff that actually NEEDS atomic allocation (as opposed > to some of the requirements that are bogus) are for packets / data > in flight. There is probably a finite amount of this at any given time.
There is no bound, but yes it tends to stay limited to a given, small amount over long periods of time. Hoarding schemes are appropriate. The only problem with slab allocation is, it has more overhead than __alloc_pages allocation. For high-performance networking this may be a measurable hit.
-- Daniel - 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/
|  |