Re: Have the 2.4 kernel memory management problems on large machines been fixed?

Bill Davidsen (davidsen@tmr.com)
Thu, 23 May 2002 15:34:06 -0400 (EDT)


On Thu, 23 May 2002, Linus Torvalds wrote:

>
>
> On Thu, 23 May 2002, Bill Davidsen wrote:
> > On Wed, 22 May 2002, Linus Torvalds wrote:
> >
> > > Making the _generic_ code jump through hoops because some stupid special
> > > case that nobody else is interested in is bad.

> > Thoughts in no particular order:
> > - set LPS based on a capability on the program
> > - set LPS based on a flag of some nature on the file
> > - set LPS based on the number of processes mapping the file
> >
> > I mention these because it would be nice to get better behaviour from
> > programs which aren't optimized for Linux and may never be.
>
> One of the problems with LPS is that it simply _will_not_ be coherent with
> read/write and the regular page cache.
>
> If you make the LPS decision on some process capability or other flag, you
> have to accept the mixing of small pages and large pages - because other
> processes that do _not_ have the capability will not get the LPS.
>
> And once you go there, you have not just started using different pages,
> you've changed the _semantics_ of the pages: they are no longer coherent
> with other processes accessing the same file.

That's the case with a capability, obviously, it's less clear that if you
had a flag on the file that could happen, since any processes doing a
mmap() on the file would get LPS.

> And that's ignoring the fact that the regular interfaces change in other
> ways, ie the alignment restrictions on mmap() etc change _radically_.

mmap() returns results codes, I personally would have no problem with a
program having to cope with getting one if that's what it takes. This
wasn't (and isn't) my issue, but it seems that Linux has been so clever in
other ways that it would be desirable to address the problems caused by
crappy application software.

> In other words, don't do it. It changes semantics, and because it changes
> semantics the program _has_ to be aware of it. In other words, the program
> has to be compiled for the behaviour.
>
> Now, we can make those semantics _easier_ to use, so that the changes to
> existing programs are minimal. But changes there will be.

Then I hope someone gets the shared, paged or otherwise smaller entries
working, I suspect some of my machine have more memory in page tables than
user memory :-(_

-- 
bill davidsen <davidsen@tmr.com>
  CTO, TMR Associates, Inc
Doing interesting things with little computers since 1979.

- 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/