Re: [PATCH] VM kswapd autotuning vs. -ac7

Christoph Rohland
2000-06-07T13:04:36Z

Rik van Riel <riel@conectiva.com.br> writes:
> Ahh, but it could easily swap them out when the last of the
> pages is unmapped.
>
> if (PageSHM(page) && not_in_use(page) && PageDirty(page)) {
> swapentry_t entry;
> entry.val = alloc_swap_entry();
> ....
> rw_swap_page(page);
> }
>
> And the next time it can be freed like a normal SwapCache
> page...

O.K. So what do I test in PageSHM()? Right now there is no such flag.

> > Thus shm does it's own page handling and swap out mechanism.
> > Since I do not know enough about the page cache I will not do
> > this before 2.5. If you think it can be easily done, feel free
> > to do it yourself or show me the way to go (But I will be on
> > vacation the next two weeks).
>
> OK. The shrink_mmap() side of the story should be relatively
> easy (see above), but the ipc/shm.c part is a complete mystery
> to me ... ;(

You see and for me it's vice versa. The shm part is relatively
easy. Pages in shm do not get introduced into any other cache unless
they are swapped out. shm uses a very dumb algorithm to find swappable
pages when shm_swap is called.

If we want to introduce the shm pages into the lru lists, we need a
mark as shm page. Then we could perhaps make shm_swap obsolete and
leave the work to shrink_mmap. But shrink_mmap is new to me...

Greetings
Christoph