Messages in this thread | | | From | Daniel Phillips <> | Subject | Re: [RFC] [PATCH] Include LRU in page count | Date | Mon, 2 Sep 2002 00:20:49 +0200 |
| |
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 - 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/
| |