Re: [RFC] [PATCH] Include LRU in page count

Daniel Phillips
2002-09-01T22:36:15Z

On Monday 02 September 2002 00:09, Andrew Morton wrote:
> Daniel Phillips wrote:
> >
> > ...
> > I'm looking at your spinlock_irq now and thinking the _irq part could
> > possibly be avoided. Can you please remind me of the motivation for this -
> > was it originally intended to address the same race we've been working on
> > here?
>
> scalability, mainly. If the CPU holding the lock takes an interrupt,
> all the other CPUs get to spin until the handler completes. I measured
> a 30% reducton in contention from this.
>
> Not a generally justifiable trick, but this is a heavily-used lock.
> All the new games in refill_inactive() are there to minimise the
> interrupt-off time.

Ick. I hope you really chopped the lock hold time into itty-bitty pieces.

Note that I changed the spin_lock in page_cache_release to a trylock, maybe
it's worth checking out the effect on contention. With a little head
scratching we might be able to get rid of the spin_lock in lru_cache_add as
well. That leaves (I think) just the two big scan loops. I've always felt
it's silly to run more than one of either at the same time anyway.

--
Daniel