On 04.06.24 12:26, Alex Shi wrote:
On 6/4/24 4:07 PM, David Hildenbrand wrote:
On 04.06.24 06:24, alexs@xxxxxxxxxx wrote:
From: "Alex Shi (tencent)" <alexs@xxxxxxxxxx>
We can put off the flush action util a merging is realy coming. That
could reduce some unmerge page flushing.
BTW, flushing only do at arm, mips and few other archs.
I'm no expert on that flushing, but I thought we would have to do the flushing before accessing page content -- before calculating the checksum etc.
Now you would only do it before the pages_identical() check, but not when calculating the checksum.
Hi David,
Thanks a lot for comments!
If calc_checksum() is wrong before pages_idential(), (that's just after page was write_protected, that's a real guarantee for page context secured) pages_identical could recheck and make thing right.
Yes, but you would get more wrong checksums, resulting in more
unnecessary pages_identical() checks.
That is missing from the description, and why we want to change that
behavior.
What's the net win?
And as to 2 flush functions here, I didn't see the guarantee for other writer from any other place. So maybe we should remove these flush action?
"I didn't see the guarantee for other writer from any other place" can
you rephrase your comment?
If you mean "the process could modify that page concurrently", then you
are right. But that's different than "the process modified the page in
the past and we are reading stale content because we missed a flush".
--
Cheers,
David / dhildenb