From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.7 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B362DC35247 for ; Fri, 7 Feb 2020 02:07:08 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 7899C2082E for ; Fri, 7 Feb 2020 02:07:07 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=intel-com.20150623.gappssmtp.com header.i=@intel-com.20150623.gappssmtp.com header.b="BeX6rgmG" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7899C2082E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 3E0A56B0003; Thu, 6 Feb 2020 21:07:07 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 378FF6B0005; Thu, 6 Feb 2020 21:07:07 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 28E716B0007; Thu, 6 Feb 2020 21:07:07 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0224.hostedemail.com [216.40.44.224]) by kanga.kvack.org (Postfix) with ESMTP id 114D76B0003 for ; Thu, 6 Feb 2020 21:07:07 -0500 (EST) Received: from smtpin25.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay04.hostedemail.com (Postfix) with ESMTP id A05F63ABB for ; Fri, 7 Feb 2020 02:07:06 +0000 (UTC) X-FDA: 76461693252.25.book13_20f02bf7ef818 X-HE-Tag: book13_20f02bf7ef818 X-Filterd-Recvd-Size: 4296 Received: from mail-ot1-f66.google.com (mail-ot1-f66.google.com [209.85.210.66]) by imf42.hostedemail.com (Postfix) with ESMTP for ; Fri, 7 Feb 2020 02:07:06 +0000 (UTC) Received: by mail-ot1-f66.google.com with SMTP id r16so712320otd.2 for ; Thu, 06 Feb 2020 18:07:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=uvCOMTEZ/7iStxJtrD6tPP6xJ8Vye04ExaeRhOxsh7Y=; b=BeX6rgmG81vvCZ0nexPUUfbwEJgSXrjahRwqQ+nN+qyiSOiRp9PDYDBdOJb8AetnzE bD0CCpw+fG7Xyke43KqqqAUCqTq4ajrAqN6FBIRq7RY3ae2cY2WSmsOMcEsWVt8TsHWe 7zFyxe/67QIsyrBHmyVAwZkTv7JxynLvwiVZGlMBatb7h6CwaUfYwW548/FUpcqU7yOm H+PB93h8nLAKHUke67jROUqxWc9vU+RZAogHknDerNbgometmHC89V/E8S6oCOJuX5bT 5nLJW8q0UZi2+MzOBMPg15ZMZ5bkVL6d6QbQqf25YgztL5H1yRclFDw0CLacHe/ElT/j Av7w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=uvCOMTEZ/7iStxJtrD6tPP6xJ8Vye04ExaeRhOxsh7Y=; b=EDrO5U3b3jHJWFnUz86AcrqEK7c49PmH+f+4XmwJ7LutnaDlacEBucypqwJNkalg4a GjmoCi/Z3GDpGsRuhz1dsN0TWOFduo8AjR3aBR+J3h/6ItRfNP/oV+/L+oOsZY9y+JTH gCp2KDYxFE6c0T0wOuIjYtUM71K+2TuiyoPB0ghhPKdndddRdQL1NebMlGeWM2yJrE/u EBlFXUHNXTJNa7s4pZq7p7/hhJSRZEIMAs/IG+41DCfdDcmpqDX1u2xga2YBFburvbyx e+GBufU9XCjrS6jSXi4lHxwfC8kxE5VIPu6rvSpwlH8TByqHNqJOQneLifBukWw+VqyM L6Rw== X-Gm-Message-State: APjAAAXovznvxnkAutyX46KI+Lfukp6qlgIWu1SSAuZJk4M7aGJEOOBH X+Nu3uzBwNEtymGFWW4UHRFavhpKKUuZby5s4Zc4mw== X-Google-Smtp-Source: APXvYqwbTeacTYp1FbbIjMHBoZ1uDlonyrMow/mDR6g1bLe0ShvKRNOXYAS5lwwul3iXnid6bcVNyv8aj2WLf8fRC50= X-Received: by 2002:a9d:64d8:: with SMTP id n24mr838353otl.71.1581041225376; Thu, 06 Feb 2020 18:07:05 -0800 (PST) MIME-Version: 1.0 References: <20200206231629.14151-1-richardw.yang@linux.intel.com> <20200206231629.14151-4-richardw.yang@linux.intel.com> In-Reply-To: <20200206231629.14151-4-richardw.yang@linux.intel.com> From: Dan Williams Date: Thu, 6 Feb 2020 18:06:54 -0800 Message-ID: Subject: Re: [PATCH 3/3] mm/sparsemem: avoid memmap overwrite for non-SPARSEMEM_VMEMMAP To: Wei Yang Cc: Andrew Morton , Oscar Salvador , Linux MM , Linux Kernel Mailing List , Baoquan He , David Hildenbrand Content-Type: text/plain; charset="UTF-8" X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Thu, Feb 6, 2020 at 3:17 PM Wei Yang wrote: > > In case of SPARSEMEM, populate_section_memmap() would allocate memmap > for the whole section, even we just want a sub-section. This would lead > to memmap overwrite if we a sub-section to an already populated section. > > Just return the populated memmap for non-SPARSEMEM_VMEMMAP case. > > Fixes: ba72b4c8cf60 ("mm/sparsemem: support sub-section hotplug") > Signed-off-by: Wei Yang > CC: Dan Williams > --- > mm/sparse.c | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/mm/sparse.c b/mm/sparse.c > index 56816f653588..c75ca40db513 100644 > --- a/mm/sparse.c > +++ b/mm/sparse.c > @@ -836,6 +836,16 @@ static struct page * __meminit section_activate(int nid, unsigned long pfn, > if (nr_pages < PAGES_PER_SECTION && early_section(ms)) > return pfn_to_page(pfn); > > + /* > + * If it is not SPARSEMEM_VMEMMAP, we always populate memmap for the > + * whole section, even for a sub-section. > + * > + * Return its memmap if already populated to avoid memmap overwrite. > + */ > + if (!IS_ENABLED(CONFIG_SPARSEMEM_VMEMMAP) && > + valid_section(ms)) > + return __section_mem_map_addr(ms); Again, is check_pfn_span() failing to prevent this path?