[lkml]   [1996]   [Nov]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: Bugs and wishes in memory management area

On Fri, 22 Nov 1996, Jean Francois Martinez wrote:

> Date: Fri, 22 Nov 1996 01:07:29 +0000 (GMT)
> From: Gerard Roudier <>
> 4) Suggestions:
> A suggestion, for > 16MB systems is to garbage if necessary up to 1MB
> in a pool for ISA/DMA but to keep the kernel simple.
> Kernel modules/drivers that allocate ISA/DMA memory when it is not
> needed are to be reworked (or rewritten).
> 5) Greetings:
> Gerard.
> Interesting idea. But there are still boxes with less than 16 Meg.
> Ah the good old days where Linux was usable with 2 megs and was
> advertised as being as being small and mean.

At work, we use Linux/X/GNU as development system (about 15 linux stations).
2 megs is probably just enough to load the kernel and kernel is not pageable.

Linux-2 + Xserver + fvwm (95) + severall xterm + bash + xemacs + gcc +
some application processes = more than 16 Mb.

A serious ftp server or web server probably use more than 64 MB.

In my flameable opinion, a usable system nowaday needs more than 16 MB, or
at least 16 MB, regardless the O/S it is running.

People who use old machine can run Linux with less than 16 MB, but they
must be very carefull with programs being actually loaded.
For those systems ISA/DMA is possible with all the memory space.
So ISA/DMA complexity is off topic.

Now imagine a system with 128 MB of RAM and some controller(s) that use(s)
ISA/DMA and:
- Some processes have locked memory.
- Some IOs are being processed. Corresponding memory is locked.

(Locked memory CANNOT be swapped).

Imagine now that one load a module that requests (rightly or wronly)
ISA/DMAable memory and:
- Unfortunately locked pages just preclude this allocation.

Managing such situation may complexify the kernel too much.
In this case, garbaging 1 MB of memory at startup for ISA/DMA need is
probably a good solution.

On the other hand, being given that 128/16=8, 87% IOs will need to be
double-buffered. Doing DMA in that conditions is in my opinion pretty

get_free_pages() must be improved in order to allow modules and drivers
to not fail stupidly when memory is available, however:

- a module that use GFP_ATOMIC (not waitable or under interrupt) must be
able to recover allocation failures. If it is not able, it is bogus.
That does not depend on the O/S being involved. Same semantic exists under
some other systems.

- For other priorities that allow to swap or free memory, Linux should
allow to request memory with option to wait for availability and never
fail if requested size is reasonnable.

ISA/DMA and memory allocations priorities are 2 different things.
Mixing both is just confusing.


 \ /
  Last update: 2005-03-22 13:38    [W:0.053 / U:1.748 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site