Keir Fraser wrote:
>
> Hang on! How is the access unlocked? By my reading
> page_referenced_one()->page_check_address()->spin_lock(pte_lockptr()).
>
Ah, OK. I'd overlooked that.
> The problem here is most likely insufficient locking in the pin/unpin
> table-walking code, in light of the fact that you are probably running
> with
> per-page spinlocks (SPLIT_PTLOCK_CPUS). Because we nobble that option
> in our
> own kernel ports it suffices to take the page_table_lock when doing the
> walk-[un]pin-remap routine. This is *not* true with SPLIT_PTLOCK_CPUS.
>
Hm, I see.
> Fortuitously, Jan Beulich has a patch to fix this. It's not going to be
> directly applicable to 2.6.23-rc series, but should be easily ported:
> <http://lists.xensource.com/archives/html/xen-devel/2007-03/msg01200.html>.
>
OK, I can use that.
Andi says:
> Do I misread that patch or does it really walk the complete address
> space and try to take all possible locks? Isn't that very slow?
>
That's pretty much what it has to do. Pinning/unpinning walks the whole
pagetable anyway, so it shouldn't be much more expensive. And they're
relatively rare operations (fork, exec, exit).
J
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]