Messages in this thread | | | Subject | Re: [PATCH 3/3] mm, page_alloc: reduce static keys in prep_new_page() | From | David Hildenbrand <> | Date | Wed, 28 Oct 2020 09:38:25 +0100 |
| |
On 27.10.20 18:41, Vlastimil Babka wrote: > On 10/27/20 2:32 PM, Vlastimil Babka wrote: >> So my conclusion: >> - We can remove PAGE_POISONING_NO_SANITY because it only makes sense with >> PAGE_POISONING_ZERO, and we can use init_on_free instead > > Note for this we first have to make sanity checking compatible with > hibernation, but that should be easy as the zeroing variants already > paved the way. The patch below will be added to the next version of > the series: > > From 44474ee27c4f5248061ea2e5bbc2aeefc91bcdfc Mon Sep 17 00:00:00 2001 > From: Vlastimil Babka <vbabka@suse.cz> > Date: Tue, 27 Oct 2020 18:25:17 +0100 > Subject: [PATCH] kernel/power: allow hibernation with page_poison sanity > checking > > Page poisoning used to be incompatible with hibernation, as the state of > poisoned pages was lost after resume, thus enabling CONFIG_HIBERNATION forces > CONFIG_PAGE_POISONING_NO_SANITY. For the same reason, the poisoning with zeroes > variant CONFIG_PAGE_POISONING_ZERO used to disable hibernation. The latter > restriction was removed by commit 1ad1410f632d ("PM / Hibernate: allow > hibernation with PAGE_POISONING_ZERO") and similarly for init_on_free by commit > 18451f9f9e58 ("PM: hibernate: fix crashes with init_on_free=1") by making sure > free pages are cleared after resume. > > We can use the same mechanism to instead poison free pages with PAGE_POISON > after resume. This covers both zero and 0xAA patterns. Thus we can remove the > Kconfig restriction that disables page poison sanity checking when hibernation > is enabled.
I haven't fully dived into the details, but the idea it sounds sane to me.
-- Thanks,
David / dhildenb
| |