Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp3012069pxb; Sun, 28 Feb 2021 22:11:29 -0800 (PST) X-Google-Smtp-Source: ABdhPJxlcfJEsvuDWAlytGglRgJeO15pVLhGQN6hNhyfMzWbN+E06jr9pTNBU4ZegTAEZw/f+H/Z X-Received: by 2002:a17:906:6048:: with SMTP id p8mr14546597ejj.105.1614579089687; Sun, 28 Feb 2021 22:11:29 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1614579089; cv=none; d=google.com; s=arc-20160816; b=ldEVLkpZBNNEQBPY0seRmXsz2zumM1sPTMbMTYdelDsFrG7W3G/cLOwvuGM2DF1Z7H qhDOnPx8b5qlxvEpBMk0X1/mkUYzJRSH4pGkX5u5y8vItuOkiYYKYNHYj5dyVY12EL0p 0SmGBg+/QSz+LEDGLTrDzbZ3yVtsEcTV9nKb3j+ynmAIPpHBSwzViqYfyGQpBBuW6dA5 X57M9f1VNJT6Oc4+ZGvdE5Sm8ucYDr1vbC2YWhHwEIWrDnkrQAj1vo84DGvE7Ktfw1bB EBanA0WL9AeqP/lNhFRd3rpmG6W1SzFs15W95tKcBJbaHtgZ8b8js1Xh5ntWVz2Sobie J13Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:message-id:date:subject:cc:to:from; bh=seUNJPBKScH8QErd8I1dAlznhRGLIewFWC8JUnNuRRw=; b=PSeQ7L1Y2fSS9VLyvMAIr/FZ4nJV9eQ8S5XvLackhqse0Tkv4EnwBDN4BFxLtDcGnv xqjGhChTIY0MFiOTb8GSntiZJC/EFgnPsNJ0netRNPWoCP6CZJvUav8KueGlT/ZSJ4oy 4+4cUitsVCsQ0GTLTHapVzCXCnoAGz3zeK8qSfUCEp/caEJ7AQFZdxRiQW3HdvX+3q0T cvR+JMRS3MMUMInSGlbIMZf04ACjJC+EQBPAeLCz/0Mnxw0x9cLcTs4f6Tg2SGM7ZeQm MmD/bn7FC6Mw6inyHchSMY81xbqEZp5iKWqTVDARjsdxqjgXvNvHjiiMowJ21B6hGEyd wnjg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id cx12si10342647edb.460.2021.02.28.22.11.07; Sun, 28 Feb 2021 22:11:29 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231945AbhCAEdm (ORCPT + 99 others); Sun, 28 Feb 2021 23:33:42 -0500 Received: from foss.arm.com ([217.140.110.172]:51336 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231199AbhCAEdb (ORCPT ); Sun, 28 Feb 2021 23:33:31 -0500 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 224D11063; Sun, 28 Feb 2021 20:31:45 -0800 (PST) Received: from p8cg001049571a15.arm.com (unknown [10.163.66.89]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 3AF3C3F73B; Sun, 28 Feb 2021 20:31:38 -0800 (PST) From: Anshuman Khandual To: linux-mm@kvack.org Cc: Anshuman Khandual , Russell King , Catalin Marinas , Will Deacon , Thomas Bogendoerfer , Michael Ellerman , Benjamin Herrenschmidt , Paul Mackerras , Thomas Gleixner , Ingo Molnar , Chris Zankel , Max Filippov , linux-arm-kernel@lists.infradead.org, linux-mips@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-xtensa@linux-xtensa.org, linux-kernel@vger.kernel.org Subject: [PATCH V2] mm/memtest: Add ARCH_USE_MEMTEST Date: Mon, 1 Mar 2021 10:02:06 +0530 Message-Id: <1614573126-7740-1-git-send-email-anshuman.khandual@arm.com> X-Mailer: git-send-email 2.7.4 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org early_memtest() does not get called from all architectures. Hence enabling CONFIG_MEMTEST and providing a valid memtest=[1..N] kernel command line option might not trigger the memory pattern tests as would be expected in normal circumstances. This situation is misleading. The change here prevents the above mentioned problem after introducing a new config option ARCH_USE_MEMTEST that should be subscribed on platforms that call early_memtest(), in order to enable the config CONFIG_MEMTEST. Conversely CONFIG_MEMTEST cannot be enabled on platforms where it would not be tested anyway. Cc: Russell King Cc: Catalin Marinas Cc: Will Deacon Cc: Thomas Bogendoerfer Cc: Michael Ellerman Cc: Benjamin Herrenschmidt Cc: Paul Mackerras Cc: Thomas Gleixner Cc: Ingo Molnar Cc: Chris Zankel Cc: Max Filippov Cc: linux-arm-kernel@lists.infradead.org Cc: linux-mips@vger.kernel.org Cc: linuxppc-dev@lists.ozlabs.org Cc: linux-xtensa@linux-xtensa.org Cc: linux-mm@kvack.org Cc: linux-kernel@vger.kernel.org Reviewed-by: Max Filippov Signed-off-by: Anshuman Khandual --- This patch applies on v5.12-rc1 and has been tested on arm64 platform. But it has been just build tested on all other platforms. Changes in V2: - Added ARCH_USE_MEMTEST in the sorted alphabetical order on platforms Changes in V1: https://patchwork.kernel.org/project/linux-mm/patch/1612498242-31579-1-git-send-email-anshuman.khandual@arm.com/ arch/arm/Kconfig | 1 + arch/arm64/Kconfig | 1 + arch/mips/Kconfig | 1 + arch/powerpc/Kconfig | 1 + arch/x86/Kconfig | 1 + arch/xtensa/Kconfig | 1 + lib/Kconfig.debug | 9 ++++++++- 7 files changed, 14 insertions(+), 1 deletion(-) diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 853aab5ab327..9ab047d4cd0a 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -33,6 +33,7 @@ config ARM select ARCH_SUPPORTS_ATOMIC_RMW select ARCH_USE_BUILTIN_BSWAP select ARCH_USE_CMPXCHG_LOCKREF + select ARCH_USE_MEMTEST select ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT if MMU select ARCH_WANT_IPC_PARSE_VERSION select ARCH_WANT_LD_ORPHAN_WARN diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index 1f212b47a48a..d4fe5118e9c8 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -67,6 +67,7 @@ config ARM64 select ARCH_KEEP_MEMBLOCK select ARCH_USE_CMPXCHG_LOCKREF select ARCH_USE_GNU_PROPERTY + select ARCH_USE_MEMTEST select ARCH_USE_QUEUED_RWLOCKS select ARCH_USE_QUEUED_SPINLOCKS select ARCH_USE_SYM_ANNOTATIONS diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig index d89efba3d8a4..93a4f502f962 100644 --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig @@ -14,6 +14,7 @@ config MIPS select ARCH_SUPPORTS_UPROBES select ARCH_USE_BUILTIN_BSWAP select ARCH_USE_CMPXCHG_LOCKREF if 64BIT + select ARCH_USE_MEMTEST select ARCH_USE_QUEUED_RWLOCKS select ARCH_USE_QUEUED_SPINLOCKS select ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT if MMU diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index 386ae12d8523..3778ad17f56a 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig @@ -149,6 +149,7 @@ config PPC select ARCH_SUPPORTS_DEBUG_PAGEALLOC if PPC32 || PPC_BOOK3S_64 select ARCH_USE_BUILTIN_BSWAP select ARCH_USE_CMPXCHG_LOCKREF if PPC64 + select ARCH_USE_MEMTEST select ARCH_USE_QUEUED_RWLOCKS if PPC_QUEUED_SPINLOCKS select ARCH_USE_QUEUED_SPINLOCKS if PPC_QUEUED_SPINLOCKS select ARCH_WANT_IPC_PARSE_VERSION diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 2792879d398e..2cb76fd5258e 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -100,6 +100,7 @@ config X86 select ARCH_SUPPORTS_LTO_CLANG if X86_64 select ARCH_SUPPORTS_LTO_CLANG_THIN if X86_64 select ARCH_USE_BUILTIN_BSWAP + select ARCH_USE_MEMTEST select ARCH_USE_QUEUED_RWLOCKS select ARCH_USE_QUEUED_SPINLOCKS select ARCH_USE_SYM_ANNOTATIONS diff --git a/arch/xtensa/Kconfig b/arch/xtensa/Kconfig index a99dc39f6964..ca51896c53df 100644 --- a/arch/xtensa/Kconfig +++ b/arch/xtensa/Kconfig @@ -7,6 +7,7 @@ config XTENSA select ARCH_HAS_SYNC_DMA_FOR_CPU if MMU select ARCH_HAS_SYNC_DMA_FOR_DEVICE if MMU select ARCH_HAS_DMA_SET_UNCACHED if MMU + select ARCH_USE_MEMTEST select ARCH_USE_QUEUED_RWLOCKS select ARCH_USE_QUEUED_SPINLOCKS select ARCH_WANT_FRAME_POINTERS diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug index a2d04c00cda2..2c296535a4b3 100644 --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug @@ -2521,11 +2521,18 @@ config TEST_FPU endif # RUNTIME_TESTING_MENU +config ARCH_USE_MEMTEST + bool + help + An architecture should select this when it uses early_memtest() + during boot process. + config MEMTEST bool "Memtest" + depends on ARCH_USE_MEMTEST help This option adds a kernel parameter 'memtest', which allows memtest - to be set. + to be set and executed. memtest=0, mean disabled; -- default memtest=1, mean do 1 test pattern; ... -- 2.20.1