Hi Andy,
On Fri, Sep 19, 2014 at 12:27 PM, Andy Lutomirski [off-list ref] wrote:
I have this (special mapping tracking) 3/4 implemented. I'm planning
on making it fully functional for 64-bit programs and almost correct
for 32-bit. (You'll still crash if you have multiple threads, you use
sysenter, and you remap the vdso, but I think that this is essentially
unavoidable until someone lets mremap work on multiple vmas at once.)
In case that's useful, I was looking at swapping the vvar page by
changing the vm_special_mapping to change the pages array between the
actual vvar page and the zero page and using zap_page_range to force
the next access to go through a page fault that would remap it.
I didn't have all the details figured out (I was closer to 1/4 of it
implemented) but I didn't see any issues on 32-bit programs.
Let me know if you'd like to see some of my patches or if you think I
should keep working on them.
Cheers,
Filipe