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=-8.3 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_PASS,USER_AGENT_MUTT autolearn=ham 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 42555C43382 for ; Fri, 28 Sep 2018 02:49:14 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 9E3022170E for ; Fri, 28 Sep 2018 02:49:13 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9E3022170E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728711AbeI1JK2 (ORCPT ); Fri, 28 Sep 2018 05:10:28 -0400 Received: from mx1.redhat.com ([209.132.183.28]:52902 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726060AbeI1JK2 (ORCPT ); Fri, 28 Sep 2018 05:10:28 -0400 Received: from smtp.corp.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.26]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id BADD986641; Fri, 28 Sep 2018 02:49:00 +0000 (UTC) Received: from localhost (ovpn-8-26.pek2.redhat.com [10.72.8.26]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 0175F3091382; Fri, 28 Sep 2018 02:48:59 +0000 (UTC) Date: Fri, 28 Sep 2018 10:48:57 +0800 From: Baoquan He To: Masayoshi Mizuma Cc: Thomas Gleixner , Ingo Molnar , Borislav Petkov , "H. Peter Anvin" , x86@kernel.org, Masayoshi Mizuma , linux-kernel@vger.kernel.org Subject: Re: [PATCH v4 2/3] ACPI / NUMA: Add warning message if the padding size for KASLR is not enough Message-ID: <20180928024857.GA14470@MiWiFi-R3L-srv> References: <20180927203146.12201-1-msys.mizuma@gmail.com> <20180927203146.12201-3-msys.mizuma@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20180927203146.12201-3-msys.mizuma@gmail.com> User-Agent: Mutt/1.9.1 (2017-09-22) X-Scanned-By: MIMEDefang 2.84 on 10.5.11.26 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Fri, 28 Sep 2018 02:49:00 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 09/27/18 at 04:31pm, Masayoshi Mizuma wrote: > From: Masayoshi Mizuma > > Add warning message if the padding size for KASLR, > rand_mem_physical_padding, is not enough. The message also > says the suitable padding size. > > Signed-off-by: Masayoshi Mizuma > --- > arch/x86/include/asm/setup.h | 2 ++ > drivers/acpi/numa.c | 14 ++++++++++++++ > 2 files changed, 16 insertions(+) > > diff --git a/arch/x86/include/asm/setup.h b/arch/x86/include/asm/setup.h > index ae13bc9..65a5bf8 100644 > --- a/arch/x86/include/asm/setup.h > +++ b/arch/x86/include/asm/setup.h > @@ -80,6 +80,8 @@ static inline unsigned long kaslr_offset(void) > return (unsigned long)&_text - __START_KERNEL; > } > > +extern int rand_mem_physical_padding; > + > /* > * Do NOT EVER look at the BIOS memory size location. > * It does not work on many machines. > diff --git a/drivers/acpi/numa.c b/drivers/acpi/numa.c > index 8516760..9c3cc3c 100644 > --- a/drivers/acpi/numa.c > +++ b/drivers/acpi/numa.c > @@ -32,6 +32,7 @@ > #include > #include > #include > +#include > > static nodemask_t nodes_found_map = NODE_MASK_NONE; > > @@ -435,6 +436,8 @@ acpi_table_parse_srat(enum acpi_srat_type id, > int __init acpi_numa_init(void) > { > int cnt = 0; > + u32 max_phys_addr_tb; > + u64 max_phys_addr; > > if (acpi_disabled) > return -EINVAL; > @@ -463,6 +466,17 @@ int __init acpi_numa_init(void) > > cnt = acpi_table_parse_srat(ACPI_SRAT_TYPE_MEMORY_AFFINITY, > acpi_parse_memory_affinity, 0); > + > + if (parsed_numa_memblks && kaslr_enabled()) { > + max_phys_addr = PFN_PHYS(max_possible_pfn); > + max_phys_addr_tb = (roundup(max_phys_addr, 1ULL << 40)) >> 40; > + > + if (max_phys_addr_tb > rand_mem_physical_padding) Here I assume max_phys_addr_tb is the end of the possible RAM in system. rand_mem_physical_padding is the preserved space for later memory extending. Don't we add the actual RAM size to the rand_mem_physical_padding, then compare with max_phys_addr_tb? Please correct me if I am wrong. Thanks Baoquan > + pr_warn("Set 'rand_mem_physical_padding=%d' " > + "as the kernel parameter. " > + "Otherwise, memory hotadd may be failed.\n", > + max_phys_addr_tb); > + } > } > > /* SLIT: System Locality Information Table */ > -- > 2.18.0 >