Re: 2.4.8-pre1 and dbench -20% throughput

Linus Torvalds
2001-07-29T16:05:22Z

On Sun, 29 Jul 2001, Daniel Phillips wrote:
>
> When I looked at age_page_up, I saw an anomaly:
>
> void age_page_up_nolock(struct page * page)
> {
> if (!page->age) /* wrong */
> activate_page_nolock(page);

I agree that it is wrong, but it's really strange that it should make a
difference.

The only user of age_page_up_nolock() is refill_inactive_scan(), which
already scans the active list, so the main reason the above is wrong is
that it makes no sense any more (the page is already on the active list,
and it should be a no-op).

It does set the page->age to a minimum of PAGE_AGE_START, which is
probably the _real_ bug. That's definitely wrong. Especially as we're just
about to bump it anyway.

Removed. Which makes all the "age_page_up*()" functions go away entirely.
They were mostly gone already.

Linus