Very nice catch. Yes, I didn't think about that.
Thanks. On 03/21/2013 02:11 AM, Michael S. Tsirkin wrote:
I really shouldn't break COW if you don't request LOCAL_WRITE. I think it's a kernel bug, and apparently has been there in the code since the first version: get_user_pages parameters swapped. I'll send a patch. If it's applied, you should also change your code from + IBV_ACCESS_LOCAL_WRITE | + IBV_ACCESS_REMOTE_WRITE | + IBV_ACCESS_REMOTE_READ); to + IBV_ACCESS_REMOTE_READ); on send side. Then, each time we detect a page has changed we must make sure to unregister and re-register it. Or if you want to be very smart, check that the PFN didn't change and reregister if it did. This will make overcommit work.