cvs commit: src/sys/dev/io iodev.c
jhb at freebsd.org
Fri Aug 8 17:25:16 UTC 2008
On Friday 08 August 2008 01:08:15 pm Alan Cox wrote:
> John Baldwin wrote:
> >Also, I don't see why memrw() is not MPSAFE actually (on amd64 and i386 at
> >least). Stephan (ups@) even has a comment to that effect. The MTRR stuff
> >backing memioctl() on x86 might need locking, but I think that is all
> >is missing.
> There is nothing there that requires Giant specifically. However, the
> use of some lock in memrw() does have an arguably useful but small
> effect: overlapping operations will be serialized. So, if you're ever
> trying to debug something involving memrw(), you won't be staring at
> essentially random state.
On amd64 there is already an sx lock over the pmap bits to temporarily map the
page. If desired, that could always be expanded. As it is, Giant is dropped
if you block on a lockmgr or sx lock (or go to sleep), so Giant doesn't
always serialize operations anyway.
More information about the cvs-all