From: Andrew Morton <akpm@zip.com.au>
To: Ed Tomlinson <tomlins@cam.org>
Cc: linux-mm@kvack.org
Subject: Re: slablru for 2.5.32-mm1
Date: Wed, 28 Aug 2002 14:24:24 -0700 [thread overview]
Message-ID: <3D6D3F88.5E7A1972@zip.com.au> (raw)
In-Reply-To: <200208281306.58776.tomlins@cam.org>
Ed Tomlinson wrote:
>
> Hi Andrew
>
> Here is slablru for 32-mm1. This is based on a version ported to 31ish-mm1. It should be
> stable. Its been booted as UP (32-mm1) and SMP on UP (31ish-mm1 only) and works as expected.
Cool. But the diff adds tons of stuff which is already added by -mm1.
I suspect you diffed against 2.5.31 base?
> A typical test cycle involved:
> find / -name "*" > /dev/null
> edit a large tif with the gimp
> run dbench a few times with the dbench dir on tmpfs (trying to use gimp too)
> run dbench a few times from a reiserfs dir (trying to use gimp too)
> use the box for news/mail, atp-get update/upgrade etc, wait a few hours and repeat
>
> 31ish-mm1 survived a day of this, 32-mm1 is sending this message after one cycle.
>
> Andrew, what do you thing about adding slablru to your experimental dir?
No probs.
> There is also a version for virgin 2.5.32, anyone wanting it should email me - one big
> patch is eats enough bandwidth.
>
> One interesting change in this version. We only add the first page of a slab to the lru. The
> reference bit setting logic for slabs has been modified to set the bit on the first page.
> Pagevec created a little bit of a problem for slablru. How do we know the order of the
> slab page when its being freed? My solution is to use 3 bits in page->flags and save the
> order there. Then free_pages_ok was modified to take the order from page->flags. This
> was implement in a minimal fashion. Think Wli is working on a more elaborate version of
> this - fleshed out, it could be used to support large pages in the vm.
hm. What happened to the idea of walking mem_map[], looking for continuation
pages? (This would need to be done via pfn_to_page(), I guess).
> Second topic.
>
> I have also included an optimisation for vmscan. I found that the current code would reduce
> the inactive list to almost nothing when applications create large numbers of active pages very
> quickly run (ie. gimp loading and editing large 20m+ tiffs). This reduces the problem. Always
> allowing nr_pages to be scanned caused the active list to be reduced to almost nothing when
> something like gimp exited and we had another task adding lots to the inactive list. This
> is fixed here too. I do wonder if zone->refill_counter, as implemented, is a great idea. Do
> we really need/want to remember to scan the active list if it has massively decreased in size
> because some app exited? Maybe some sort of decay logic should be used...
>
Well the refill counter thingy is just an optimisation: rather than calling refill_inacative()
lots of times to just grab two or three pages, we wait until it builds up to 32, and then
go deactivate 32 pages.
But ugh, it's a bit broken. Yup, you're right. Need to s/if/while/ in shrink_zone().
But we do need to slowly sift through the active list even when the inactive
list is enormously bigger. Otherwise, completely dead pages will remain in-core
forever if there's a lot of pagecache activity going on.
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/
next prev parent reply other threads:[~2002-08-28 21:24 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-08-26 22:09 MM patches against 2.5.31 Ed Tomlinson
2002-08-26 23:58 ` Andrew Morton
2002-08-27 0:13 ` Rik van Riel
2002-08-28 17:06 ` slablru for 2.5.32-mm1 Ed Tomlinson
2002-08-28 21:24 ` Andrew Morton [this message]
2002-08-28 22:23 ` Rik van Riel
2002-09-02 5:26 ` Andrew Morton
2002-09-02 15:00 ` Ed Tomlinson
2002-09-02 18:35 ` Andrew Morton
2002-09-02 19:09 ` Ed Tomlinson
2002-09-02 19:51 ` Andrew Morton
2002-09-02 6:50 ` Andrew Morton
2002-08-28 22:11 Ed Tomlinson
2002-09-06 4:07 Craig Kulesa
2002-09-06 4:24 ` Robert Love
2002-09-08 21:43 ` Daniel Phillips
2002-09-09 4:36 ` Robert Love
2002-09-09 5:10 ` Daniel Phillips
2002-09-06 4:38 ` Andrew Morton
2002-09-06 11:39 ` Ed Tomlinson
2002-09-06 18:57 ` Craig Kulesa
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3D6D3F88.5E7A1972@zip.com.au \
--to=akpm@zip.com.au \
--cc=linux-mm@kvack.org \
--cc=tomlins@cam.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox