> Am 26.06.2020 um 00:40 schrieb Wei Yang <richard.weiyang@xxxxxxxxxxxxxxxxx>: > > On Thu, Jun 25, 2020 at 07:53:37AM +0200, David Hildenbrand wrote: >> >> >>>> Am 25.06.2020 um 01:47 schrieb Dan Williams <dan.j.williams@xxxxxxxxx>: >>> >>> On Wed, Jun 24, 2020 at 3:44 PM Wei Yang >>> <richard.weiyang@xxxxxxxxxxxxxxxxx> wrote: >>> [..] >>>>> So, you are right that there is a mismatch here, but I think the >>>>> comprehensive fix is to allow early sections to be partially >>>>> depopulated/repopulated rather than have section_activate() and >>>>> section_deacticate() special case early sections. The special casing >>>>> is problematic in retrospect as section_deactivate() can't be >>>>> maintained without understand special rules in section_activate(). >>>> >>>> Hmm... This means we need to adjust pfn_valid() too, which always return true >>>> for early sections. >>> >>> Right, rather than carry workarounds in 3 locations, and the bug that >>> has resulted from then getting out of sync, just teach early section >>> mapping to allow for the subsection populate/depopulate. >>> >> >> I prefer the easy fix first - IOW what we Here here. Especially, pfn_to_online_page() will need changes as well. >> > > Hi, David, > > Which part of pfn_to_online_page() needs to be changed? pfn_valid_within() > would call pfn_valid() to check the pfn first. This looks enough for me. Not for all configurations. For some (e.g., x86 iirc) it‘s just a nop.