From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Hildenbrand Date: Mon, 14 Oct 2019 09:32:13 +0000 Subject: Re: [PATCH v6 04/10] mm/memory_hotplug: Don't access uninitialized memmaps in shrink_zone_span() Message-Id: <5a4573de-bd8a-6cd3-55d0-86d503a236fd@redhat.com> List-Id: References: <20191006085646.5768-1-david@redhat.com> <20191006085646.5768-5-david@redhat.com> In-Reply-To: <20191006085646.5768-5-david@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: linux-kernel@vger.kernel.org, Andrew Morton Cc: linux-s390@vger.kernel.org, Michal Hocko , linux-ia64@vger.kernel.org, Pavel Tatashin , linux-sh@vger.kernel.org, "Aneesh Kumar K . V" , x86@kernel.org, linux-mm@kvack.org, Dan Williams , linuxppc-dev@lists.ozlabs.org, linux-arm-kernel@lists.infradead.org, Oscar Salvador On 06.10.19 10:56, David Hildenbrand wrote: > Let's limit shrinking to !ZONE_DEVICE so we can fix the current code. We > should never try to touch the memmap of offline sections where we could > have uninitialized memmaps and could trigger BUGs when calling > page_to_nid() on poisoned pages. > > There is no reliable way to distinguish an uninitialized memmap from an > initialized memmap that belongs to ZONE_DEVICE, as we don't have > anything like SECTION_IS_ONLINE we can use similar to > pfn_to_online_section() for !ZONE_DEVICE memory. E.g., > set_zone_contiguous() similarly relies on pfn_to_online_section() and > will therefore never set a ZONE_DEVICE zone consecutive. Stopping to > shrink the ZONE_DEVICE therefore results in no observable changes, > besides /proc/zoneinfo indicating different boundaries - something we > can totally live with. > > Before commit d0dc12e86b31 ("mm/memory_hotplug: optimize memory > hotplug"), the memmap was initialized with 0 and the node with the > right value. So the zone might be wrong but not garbage. After that > commit, both the zone and the node will be garbage when touching > uninitialized memmaps. > > Cc: Andrew Morton > Cc: Oscar Salvador > Cc: David Hildenbrand > Cc: Michal Hocko > Cc: Pavel Tatashin > Cc: Dan Williams > Fixes: d0dc12e86b31 ("mm/memory_hotplug: optimize memory hotplug") @Andrew, can you convert that to Fixes: f1dd2cd13c4b ("mm, memory_hotplug: do not associate hotadded memory to zones until online") # visible after d0dc12e86b319 and add Cc: stable@vger.kernel.org # v4.13+ -- Thanks, David / dhildenb