tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Adding pool_cache_invalidate_local() to pool_cache(9) API
On Tue, Oct 13, 2009 at 11:19:11AM -0700, Jason Thorpe wrote:
>
> On Oct 9, 2009, at 7:35 AM, Matt Thomas wrote:
>
> > Do it lazily. Set a flag in each per-cpu queue and next time an item that
> > cpu accesses its per-cpu cache, it can see the cache is invalid and discard
> > it.
> > This doesn't solve the window of that cpu already actively using the pool
> > while the flag is set but it could that could solved by get testing the
> > test on
> > exit, if set discarding the item, and retrying.
> >
> > No reason for exposing the mechanics of how to do this to the users of the
> > poll APIs.
>
> It actually turned out to be very trivial to fix pool_cache_invalidate() to
> DTRT with per-CPU caches. I'll provide a patch for Jean-Yves to try in the
> situation where he required pool_cache_invalidate_local(). While I was at
> it, I discovered that the two existing uses of pool_cache_invalidate() don't
> do proper synchronization wrt. the constructor. I'll write up a patch for
> the alpha and x86 pmaps separately.
x86 used pmap_list_lock (pmaps_lock?) to do this at one point, it's possible
that somebody broke it.
Home |
Main Index |
Thread Index |
Old Index