Re: [PATCH/RFC] Shared page tables

Ray Bryant
2006-01-26T00:16:14Z

Dave,

Here's another one to keep you awake at night:

mmap a shared, anonymous region of 8MB (2MB aligned), and fork off some
children (4 is good enough for me). In each child, munmap() a 2 MB portion
of the shared region (starting at offset 2MB in the shared region) and then
mmap() a private, anonymous region in its place. Have each child store some
unique data in that region, sleep for a bit and then go look to see if its
data is still there.

Under 2.6.15, this works just fine. Under 2.6.15 + shpt patch, each child
still points at the shared region and steps on the data of the other
children.

I imagine the above gets even more interesting if the offset or length of the
unmapped region is not a multiple of the 2MB alignment.

All of these test cases are for Opteron. Your alignment may vary.

(Sorry about this... )

--
Ray Bryant
AMD Performance Labs Austin, Tx
512-602-0038 (o) 512-507-7807 (c)