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=-13.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT 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 AB9B6C433F5 for ; Thu, 23 Sep 2021 22:55:00 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 1D3EC6124C for ; Thu, 23 Sep 2021 22:55:00 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 1D3EC6124C Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=quicinc.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=kvack.org Received: by kanga.kvack.org (Postfix) id 4E52B6B006C; Thu, 23 Sep 2021 18:54:59 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 494BB900002; Thu, 23 Sep 2021 18:54:59 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3831B6B0073; Thu, 23 Sep 2021 18:54:59 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0025.hostedemail.com [216.40.44.25]) by kanga.kvack.org (Postfix) with ESMTP id 284BE6B006C for ; Thu, 23 Sep 2021 18:54:59 -0400 (EDT) Received: from smtpin13.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay03.hostedemail.com (Postfix) with ESMTP id D36408249980 for ; Thu, 23 Sep 2021 22:54:58 +0000 (UTC) X-FDA: 78620345076.13.561E8E7 Received: from alexa-out.qualcomm.com (alexa-out.qualcomm.com [129.46.98.28]) by imf25.hostedemail.com (Postfix) with ESMTP id 39740B000181 for ; Thu, 23 Sep 2021 22:54:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; i=@quicinc.com; q=dns/txt; s=qcdkim; t=1632437698; x=1663973698; h=from:to:cc:subject:date:message-id:mime-version; bh=e97zNOiwir1aJze+wIByrdjedbkrWs1OwK8P/jZcHPw=; b=Oz+OOqATEfsHFjLtgBaZYT+YhlQ+2dA1nqhXcAZLwGu7aSQAs9KO+PIH rvwVf1tz81HmSPPWdKsT8DkIFPSiQ+4SIEUeH9KIe1wqED4/r0nTUDIih dwq90qPpIN29VCoLuV2B3nW3fHVkO/JRxuvwkZYXmmscJItj3AgLtHTmo E=; Received: from ironmsg08-lv.qualcomm.com ([10.47.202.152]) by alexa-out.qualcomm.com with ESMTP; 23 Sep 2021 15:54:57 -0700 X-QCInternal: smtphost Received: from nalasex01a.na.qualcomm.com ([10.47.209.196]) by ironmsg08-lv.qualcomm.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Sep 2021 15:54:56 -0700 Received: from hu-cgoldswo-sd.qualcomm.com (10.80.80.8) by nalasex01a.na.qualcomm.com (10.47.209.196) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.922.7; Thu, 23 Sep 2021 15:54:55 -0700 From: Chris Goldsworthy To: Catalin Marinas , Will Deacon , Andrew Morton CC: David Hildenbrand , , , , Chris Goldsworthy Subject: [RFC] arm64: mm: update max_pfn after memory hotplug Date: Thu, 23 Sep 2021 15:54:47 -0700 Message-ID: X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.80.80.8] X-ClientProxiedBy: nasanex01b.na.qualcomm.com (10.46.141.250) To nalasex01a.na.qualcomm.com (10.47.209.196) X-Rspamd-Queue-Id: 39740B000181 X-Stat-Signature: qgdkfs35ojgkcjoejhzmgwgfka5qpf1g Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=quicinc.com header.s=qcdkim header.b=Oz+OOqAT; spf=pass (imf25.hostedemail.com: domain of quic_cgoldswo@quicinc.com designates 129.46.98.28 as permitted sender) smtp.mailfrom=quic_cgoldswo@quicinc.com; dmarc=pass (policy=none) header.from=quicinc.com X-Rspamd-Server: rspam06 X-HE-Tag: 1632437698-648235 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 arm64 we set max_pfn at boot in arch/arm64/mm/init.c. If you hotplug in memory after booting up, max_pfn is not updated. This breaks diagnostic functions executed from user space like read_page_owner(): https://elixir.bootlin.com/linux/v5.14.7/source/mm/page_owner.c#L472 or kpageflags_read() (see how get_max_dump_pfn() is used): https://elixir.bootlin.com/linux/v5.14.7/source/fs/proc/page.c#L47 Thus, this patch updates max_pfn and max_low_pfn in arm64's arch_add_memory() function, mirroring what is updatated during boot: https://elixir.bootlin.com/linux/v5.14.7/source/arch/arm64/mm/init.c#L448 We would appreciate feedback on any other variables that should be updated when hotplugging in memory - note that we're mirroring x86, in that max_pfn is only ever incremented when calling arch_add_memory(): https://elixir.bootlin.com/linux/v5.14.7/source/arch/x86/mm/init_64.c#L958 Sudarshan Rajagopalan (1): arm64: mm: update max_pfn after memory hotplug arch/arm64/mm/mmu.c | 5 +++++ 1 file changed, 5 insertions(+) -- 2.7.4