[PATCH] Mantaining turnstile aligned to 128 bytes in i386 CPUs

John Baldwin jhb at freebsd.org
Tue Jul 25 16:34:06 UTC 2006


On Tuesday 25 July 2006 11:14, Attilio Rao wrote:
> 2006/7/25, Attilio Rao <attilio at freebsd.org>:
> > Hi,
> > Intel documentation points out that having a 128-bytes aligned
> > syncronizing primitive  (which fits in a cache line) will minimize the
> > traffic for cache bus, so this patch implements an alignment for i386
> > on turnstiles.
> >
> > Any comments, feedbacks?
> 
> Oh, sorry, I've unforgotten the diff.
> 
> Attilio

I think a better approach would be to stick turnstiles (and sleepqueues) in a 
UMA zone and specify cache-size alignment to the zone.  However, turnstiles 
aren't really sychronization primitives in that you don't spin on a variable 
inside the structure, and I think it's the spinning and avoiding bouncing 
cache lines around that Intel's documentation is really about.  In that case, 
the things you want aligned are things like mutexes, rwlocks, etc.

-- 
John Baldwin


More information about the freebsd-arch mailing list