On Fri, Feb 12, 2021 at 09:52:52AM +0100, David Hildenbrand wrote: > On 12.02.21 04:06, Peter Xu wrote: > > On Thu, Feb 11, 2021 at 10:09:58PM +0100, David Hildenbrand wrote: > > > The issue is when the discard happened before starting the snapshot. > > > Write-protection won‘t work and the zeroed content won‘t be retained in > > > the snapshot. > > > > I see what you mean now, and iiuc it will only be a problem if > > init_on_free=1. > > I think CONFIG_INIT_ON_FREE_DEFAULT_ON should be off for most distros, so > > the > > Yes, some distros seem to enable init_on_alloc instead. Looking at the > introducing commit 6471384af2a6 ("mm: security: introduce init_on_alloc=1 > and init_on_free=1 boot options") there are security use cases and it might > become important with memory tagging. > > Note that in Linux, there was also the option to poison pages with 0, > removed via f289041ed4cf ("mm, page_poison: remove > CONFIG_PAGE_POISONING_ZERO"), available in some kernels that supported free > page reporting. > > It got removed and use cases got told to use init_on_free. > > > impact should be small, I think. I thought about it, but indeed I didn't > > see a > > good way to fix this if without fixing the zero page copy for live snapshot. > > We should really document this (unexpected) behavior of snapshotting. > Otherwise, the next feature comes around that relies on pages that were > discarded to remain zeroed (I even have one in mind ;) ) and forgets to > disable snapshots.
Agreed. I'll see whether Andrey would have any idea to workaround this, or further comment. Or I can draft a patch to document this next week (or unless Andrey would beat me to it :). -- Peter Xu