Messages in this thread |  | | Date | Thu, 27 Sep 2001 08:38:02 -0700 (PDT) | From | Linus Torvalds <> | Subject | Re: Locking comment on shrink_caches() |
| |
On Thu, 27 Sep 2001, Alan Cox wrote: > > > Yes, this was my intended point. Please see my quoted text above and > > note the "exclusive cache line acquisition" with emphasis on the word > > "acquisition" meaning you don't have the cache line in E state yet. > > See prefetching - the CPU prefetching will hide some of the effect and > the spin_lock_prefetch() macro does wonders for the rest.
prefetching and friends won't do _anything_ for the case of a cache line bouncing back and forth between CPU's.
In fact, it can easily make things _worse_, simply by having bouncing happen even more (you bounce it into the CPU for the prefetch, another CPU bounces it back, and you bounce it in again for the actual lock).
And this isn't at all unlikely if you have a lock that is accessed a _lot_ but held only for short times.
Now, I'm not convinced that pagecache_lock is _that_ critical yet, but is it one of the top ones? Definitely.
Linus
- 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/
|  |