Re: [PATCH v3 01/17] mm: support madvise(MADV_FREE)
From: Minchan Kim <hidden>
Date: 2015-11-13 06:37:31
Also in:
linux-mm, lkml
On Fri, Nov 13, 2015 at 01:16:54AM -0500, Daniel Micay wrote:
On 13/11/15 01:15 AM, Minchan Kim wrote:quoted
On Thu, Nov 12, 2015 at 12:21:30AM -0500, Daniel Micay wrote:quoted
quoted
I also think that the kernel should commit to either zeroing the page or leaving it unchanged in response to MADV_FREE (even if the decision of which to do is made later on). I think that your patch series does this, but only after a few of the patches are applied (the swap entry freeing), and I think that it should be a real guaranteed part of the semantics and maybe have a test case.This would be a good thing to test because it would be required to add MADV_FREE_UNDO down the road. It would mean the same semantics as the MEM_RESET and MEM_RESET_UNDO features on Windows, and there's probably value in that for the sake of migrating existing software too.So, do you mean that we could implement MADV_FREE_UNDO with "read" opearation("just access bit marking) easily in future? If so, it would be good reason to change MADV_FREE from dirty bit to access bit. Okay, I will look at that.I just meant testing that the data is either zero or the old data if it's read before it's written to. Not having it stay around once there is a read. Not sure if that's what Andy meant.
Either zero of old data is gauranteed.
Now:
MADV_FREE(range)
A = read from the range
...
...
B = read from the range
A and B could have different value. But value should be old or zero.
But Andy want more strict ABI so he suggested access bit instead of dirty bit.
MADV_FREE(range)
A = read from the range
...
...
B = read from the range
A and B cannot have different value.
And now I am thinking if we use access bit, we could implment MADV_FREE_UNDO
easily when we need it. Maybe, that's what you want. Right?