Received: by 2002:a25:ab43:0:0:0:0:0 with SMTP id u61csp2009759ybi; Sun, 16 Jun 2019 19:27:06 -0700 (PDT) X-Google-Smtp-Source: APXvYqzgW1D0mUQ0/yqsol5ffMt18iqwuAN4dH9JMv7MH+QnKpPrxjcXeux3awqgRlp6ckbQlc8S X-Received: by 2002:a62:5252:: with SMTP id g79mr73946906pfb.18.1560738426614; Sun, 16 Jun 2019 19:27:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1560738426; cv=none; d=google.com; s=arc-20160816; b=avkfE4fORLgEFoT+676fBjanIuy7o0H0E+zBvYA7qFDjx6CHvDs7NYWi/tJxnHYA/x ifkFXLp6JpKI20KftNXPBndjC/0/tOC7nY5sbydEZNik5OT7BilXT3ZXjh6ReCETSO/e fr+xevtpafvi+Q5AzFeoKr2iwRCBlONGnahOOeW8AOmmCfZkmfHofUUmwq3hG8AYY50Z AZVa1aeCjypoTlOJUJZ2hO9/SxXatYzEsR4Th3h7ZodZpjs1qPTVEkX78LYtfNo2re0K 4VwVWn57PoiBktU8XFXWMkK3v09yGHFqbOQGPhApLL65nI2eXW11GFgXrHfIAaVL4iuY w1BQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:to:references:message-id :content-transfer-encoding:cc:date:in-reply-to:from:subject :mime-version:dkim-signature; bh=zVCq6iQjd8y+MdsDtmpkIiWvfWaJhRLMSgJUV6RtXtc=; b=xvqRClfQhoq+0RB++rED4To4AVVw7bHCffLkroEc6bir9qNug2FHa3Tr0McJ8bjW5t yXjeKolSHpZlPpNBHRrET9JAmk0d0/RMmrf654cXEyExb6hsZyIeIlzjnN1xuh95USu3 Days1IXtFwH8BRLkgH2VUY4b0am6jgen6l2e4BxWkZV+IDuOKuFjpVZgVLe5ecbuBhdL eB7vJ+5pikEKiOkePMX5my6O9rCOQw1SXMClhOm2rsnyGvTbdxqPvAroMjdziPzySPWj sMXIFnlGQwCyqAeeQYE1B4WIRbCSCRt5y18+TT0oZ7fd/630Ap8Q4jdWjBhO0oAQxERf S8dQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@lca.pw header.s=google header.b=Y68zjNB4; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a14si9392198pfo.37.2019.06.16.19.26.50; Sun, 16 Jun 2019 19:27:06 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@lca.pw header.s=google header.b=Y68zjNB4; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727518AbfFQCZ2 (ORCPT + 99 others); Sun, 16 Jun 2019 22:25:28 -0400 Received: from mail-qk1-f196.google.com ([209.85.222.196]:35152 "EHLO mail-qk1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727322AbfFQCZ2 (ORCPT ); Sun, 16 Jun 2019 22:25:28 -0400 Received: by mail-qk1-f196.google.com with SMTP id l128so5316093qke.2 for ; Sun, 16 Jun 2019 19:25:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lca.pw; s=google; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=zVCq6iQjd8y+MdsDtmpkIiWvfWaJhRLMSgJUV6RtXtc=; b=Y68zjNB4WWeZsh+LN43S1Q77LOG6Lkmvy8jA/X3y3qY9+aU84X8ZE6N5ajtMFZdqRe SI7/y0pIbPD7ZVPFM5BRVkEnuQZLwUslxJwRwMKIdVJJzt3HxQcOYbVjc3CqlEXReNod WgeEhIb9hGsh3iOlLLgLvyvkSvxmnysINjRiMgR4yYvW6/gkqFlIc7yJ/UE5GoPts+0h whh2cPfZPM/CJpv1/+cDhf8ICkSmmBDXzLpukgWnfPqFBvCab5BiOGnI4h8XjAhR4Bhb yhqcvLK7M1Jvtn7UVS3WgvtW0ugsS4Xv+CrSRhwxxZEaq9a4N4B8Hh5vu7TahjcJOc29 hgnw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=zVCq6iQjd8y+MdsDtmpkIiWvfWaJhRLMSgJUV6RtXtc=; b=n6L3gk6y+M1OoV3GNnirTk3PfLaN+fnZ5zFDEsPYQxXxw87FgAcaU+gr6YnvInsc7q S33sS3NESuYl0GT4f2BZd0k4gekfeUgZRjVPKdN/UZqoMaX1qaPVb8f21ViOuOK5LMrt GVifLo4BRA1pHDxcENEjRi4DLvl51sjC/eNeYyc8bVFXBtvCMEGAfYI2OdIDqXm1Tsza KvWddf/EHw7JtmMp7GVUe/fEr4jun7R/mgi39T8hurwQPHdlZsOyI+p+Ye+Cod4dYhEc yqNS+W862uBniD0IiCAPZ1t0xpLqBcI4zvUSNwi7i+xJ0kUsbC5WZYLwn2IFUGI60lv5 PBsg== X-Gm-Message-State: APjAAAVpWBR5NVTrnTv4PzkOPYsayNhdIJ2Jchjl6i5gOF8e6KIHQdn9 Bu+quqStbn/iNW+h/TuaxhxrTXhKW5g= X-Received: by 2002:a37:b904:: with SMTP id j4mr59875274qkf.27.1560738326850; Sun, 16 Jun 2019 19:25:26 -0700 (PDT) Received: from [192.168.1.153] (pool-71-184-117-43.bstnma.fios.verizon.net. [71.184.117.43]) by smtp.gmail.com with ESMTPSA id u19sm6794763qka.35.2019.06.16.19.25.25 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 16 Jun 2019 19:25:26 -0700 (PDT) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\)) Subject: Re: [PATCH -next] mm/hotplug: skip bad PFNs from pfn_to_online_page() From: Qian Cai In-Reply-To: Date: Sun, 16 Jun 2019 22:25:24 -0400 Cc: "Aneesh Kumar K.V" , Andrew Morton , Oscar Salvador , Linux MM , Linux Kernel Mailing List Content-Transfer-Encoding: quoted-printable Message-Id: <642FC723-2FCB-415D-8EE0-AE013D5AAF10@lca.pw> References: <1560366952-10660-1-git-send-email-cai@lca.pw> <1560376072.5154.6.camel@lca.pw> <87lfy4ilvj.fsf@linux.ibm.com> <1560524365.5154.21.camel@lca.pw> <1560541220.5154.23.camel@lca.pw> <1560544982.5154.24.camel@lca.pw> To: Dan Williams X-Mailer: Apple Mail (2.3445.104.11) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org > On Jun 16, 2019, at 11:42 AM, Dan Williams = wrote: >=20 > On Fri, Jun 14, 2019 at 1:43 PM Qian Cai wrote: >>=20 >> On Fri, 2019-06-14 at 12:48 -0700, Dan Williams wrote: >>> On Fri, Jun 14, 2019 at 12:40 PM Qian Cai wrote: >>>>=20 >>>> On Fri, 2019-06-14 at 11:57 -0700, Dan Williams wrote: >>>>> On Fri, Jun 14, 2019 at 11:03 AM Dan Williams = >>>>> wrote: >>>>>>=20 >>>>>> On Fri, Jun 14, 2019 at 7:59 AM Qian Cai wrote: >>>>>>>=20 >>>>>>> On Fri, 2019-06-14 at 14:28 +0530, Aneesh Kumar K.V wrote: >>>>>>>> Qian Cai writes: >>>>>>>>=20 >>>>>>>>=20 >>>>>>>>> 1) offline is busted [1]. It looks like test_pages_in_a_zone() >>>>>>>>> missed >>>>>>>>> the >>>>>>>>> same >>>>>>>>> pfn_section_valid() check. >>>>>>>>>=20 >>>>>>>>> 2) powerpc booting is generating endless warnings [2]. In >>>>>>>>> vmemmap_populated() at >>>>>>>>> arch/powerpc/mm/init_64.c, I tried to change PAGES_PER_SECTION = to >>>>>>>>> PAGES_PER_SUBSECTION, but it alone seems not enough. >>>>>>>>>=20 >>>>>>>>=20 >>>>>>>> Can you check with this change on ppc64. I haven't reviewed = this >>>>>>>> series >>>>>>>> yet. >>>>>>>> I did limited testing with change . Before merging this I need = to go >>>>>>>> through the full series again. The vmemmap poplulate on ppc64 = needs >>>>>>>> to >>>>>>>> handle two translation mode (hash and radix). With respect to = vmemap >>>>>>>> hash doesn't setup a translation in the linux page table. Hence = we >>>>>>>> need >>>>>>>> to make sure we don't try to setup a mapping for a range which = is >>>>>>>> arleady convered by an existing mapping. >>>>>>>=20 >>>>>>> It works fine. >>>>>>=20 >>>>>> Strange... it would only change behavior if valid_section() is = true >>>>>> when pfn_valid() is not or vice versa. They "should" be identical >>>>>> because subsection-size =3D=3D section-size on PowerPC, at least = with the >>>>>> current definition of SUBSECTION_SHIFT. I suspect maybe >>>>>> free_area_init_nodes() is too late to call subsection_map_init() = for >>>>>> PowerPC. >>>>>=20 >>>>> Can you give the attached incremental patch a try? This will break >>>>> support for doing sub-section hot-add in a section that was only >>>>> partially populated early at init, but that can be repaired later = in >>>>> the series. First things first, don't regress. >>>>>=20 >>>>> diff --git a/mm/page_alloc.c b/mm/page_alloc.c >>>>> index 874eb22d22e4..520c83aa0fec 100644 >>>>> --- a/mm/page_alloc.c >>>>> +++ b/mm/page_alloc.c >>>>> @@ -7286,12 +7286,10 @@ void __init free_area_init_nodes(unsigned = long >>>>> *max_zone_pfn) >>>>>=20 >>>>> /* Print out the early node map */ >>>>> pr_info("Early memory node ranges\n"); >>>>> - for_each_mem_pfn_range(i, MAX_NUMNODES, &start_pfn, = &end_pfn, >>>>> &nid) { >>>>> + for_each_mem_pfn_range(i, MAX_NUMNODES, &start_pfn, = &end_pfn, >>>>> &nid) >>>>> pr_info(" node %3d: [mem %#018Lx-%#018Lx]\n", nid, >>>>> (u64)start_pfn << PAGE_SHIFT, >>>>> ((u64)end_pfn << PAGE_SHIFT) - 1); >>>>> - subsection_map_init(start_pfn, end_pfn - = start_pfn); >>>>> - } >>>>>=20 >>>>> /* Initialise every node */ >>>>> mminit_verify_pageflags_layout(); >>>>> diff --git a/mm/sparse.c b/mm/sparse.c >>>>> index 0baa2e55cfdd..bca8e6fa72d2 100644 >>>>> --- a/mm/sparse.c >>>>> +++ b/mm/sparse.c >>>>> @@ -533,6 +533,7 @@ static void __init sparse_init_nid(int nid, >>>>> unsigned long pnum_begin, >>>>> } >>>>> check_usemap_section_nr(nid, usage); >>>>> sparse_init_one_section(__nr_to_section(pnum), = pnum, >>>>> map, usage); >>>>> + subsection_map_init(section_nr_to_pfn(pnum), >>>>> PAGES_PER_SECTION); >>>>> usage =3D (void *) usage + = mem_section_usage_size(); >>>>> } >>>>> sparse_buffer_fini(); >>>>=20 >>>> It works fine except it starts to trigger slab debugging errors = during boot. >>>> Not >>>> sure if it is related yet. >>>=20 >>> If you want you can give this branch a try if you suspect something >>> else in -next is triggering the slab warning. >>>=20 >>> = https://git.kernel.org/pub/scm/linux/kernel/git/djbw/nvdimm.git/log/?h=3Ds= ubsect >>> ion-v9 >>>=20 >>> It's the original v9 patchset + dependencies backported to v5.2-rc4. >>>=20 >>> I otherwise don't see how subsections would effect slab caches. >>=20 >> It works fine there. >=20 > Much appreciated Qian! >=20 > Does this change modulate the x86 failures? Yes, it also fix the kmemleak_scan() and offline issues on x86.