From patchwork Wed Sep 18 13:19:12 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jia He X-Patchwork-Id: 11150357 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id E1D1113BD for ; Wed, 18 Sep 2019 13:19:39 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id B89312067B for ; Wed, 18 Sep 2019 13:19:39 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B89312067B Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=arm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 097DD6B02B2; Wed, 18 Sep 2019 09:19:39 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 049996B02B3; Wed, 18 Sep 2019 09:19:39 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id EA1E06B02B4; Wed, 18 Sep 2019 09:19:38 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0057.hostedemail.com [216.40.44.57]) by kanga.kvack.org (Postfix) with ESMTP id CB6196B02B2 for ; Wed, 18 Sep 2019 09:19:38 -0400 (EDT) Received: from smtpin16.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay02.hostedemail.com (Postfix) with SMTP id 64EAD1A4C7 for ; Wed, 18 Sep 2019 13:19:38 +0000 (UTC) X-FDA: 75948098436.16.frame27_70e66a0a72d26 X-Spam-Summary: 10,1,0,7ed8532c880c4420,d41d8cd98f00b204,justin.he@arm.com,:catalin.marinas@arm.com:will@kernel.org:mark.rutland@arm.com:james.morse@arm.com:maz@kernel.org:willy@infradead.org:kirill.shutemov@linux.intel.com:linux-arm-kernel@lists.infradead.org:linux-kernel@vger.kernel.org::suzuki.poulose@arm.com:punitagrawal@gmail.com:anshuman.khandual@arm.com:yaojun8558363@gmail.com:avanbrunt@nvidia.com:robin.murphy@arm.com:tglx@linutronix.de:akpm@linux-foundation.org:jglisse@redhat.com:rcampbell@nvidia.com:hejianet@gmail.com:kaly.xin@arm.com:justin.he@arm.com,RULES_HIT:41:355:379:541:800:960:973:988:989:1260:1261:1345:1359:1437:1534:1541:1711:1730:1747:1777:1792:2393:2559:2562:3138:3139:3140:3141:3142:3352:3865:3866:3867:3868:3872:4250:4605:5007:6119:6261:6737:6742:7903:8634:10004:11026:11473:11657:11658:11914:12043:12048:12296:12297:12438:12555:12895:13069:13311:13357:13523:13524:14096:14181:14384:14394:14721:21080:21451:21627:30054:30090,0,RBL:217.140.110.172:@arm.com:.lb l8.mails X-HE-Tag: frame27_70e66a0a72d26 X-Filterd-Recvd-Size: 3323 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by imf16.hostedemail.com (Postfix) with ESMTP for ; Wed, 18 Sep 2019 13:19:35 +0000 (UTC) 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 B4C21142F; Wed, 18 Sep 2019 06:19:34 -0700 (PDT) Received: from localhost.localdomain (entos-thunderx2-02.shanghai.arm.com [10.169.40.54]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 6AC7B3F575; Wed, 18 Sep 2019 06:19:29 -0700 (PDT) From: Jia He To: Catalin Marinas , Will Deacon , Mark Rutland , James Morse , Marc Zyngier , Matthew Wilcox , "Kirill A. Shutemov" , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, Suzuki Poulose Cc: Punit Agrawal , Anshuman Khandual , Jun Yao , Alex Van Brunt , Robin Murphy , Thomas Gleixner , Andrew Morton , =?utf-8?b?SsOpcsO0bWUgR2xpc3Nl?= , Ralph Campbell , hejianet@gmail.com, Kaly Xin , Jia He Subject: [PATCH v4 1/3] arm64: cpufeature: introduce helper cpu_has_hw_af() Date: Wed, 18 Sep 2019 21:19:12 +0800 Message-Id: <20190918131914.38081-2-justin.he@arm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190918131914.38081-1-justin.he@arm.com> References: <20190918131914.38081-1-justin.he@arm.com> 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: We unconditionally set the HW_AFDBM capability and only enable it on CPUs which really have the feature. But sometimes we need to know whether this cpu has the capability of HW AF. So decouple AF from DBM by new helper cpu_has_hw_af(). Signed-off-by: Jia He Suggested-by: Suzuki Poulose --- arch/arm64/include/asm/cpufeature.h | 1 + arch/arm64/kernel/cpufeature.c | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/arch/arm64/include/asm/cpufeature.h b/arch/arm64/include/asm/cpufeature.h index c96ffa4722d3..206b6e3954cf 100644 --- a/arch/arm64/include/asm/cpufeature.h +++ b/arch/arm64/include/asm/cpufeature.h @@ -390,6 +390,7 @@ extern DECLARE_BITMAP(boot_capabilities, ARM64_NPATCHABLE); for_each_set_bit(cap, cpu_hwcaps, ARM64_NCAPS) bool this_cpu_has_cap(unsigned int cap); +bool cpu_has_hw_af(void); void cpu_set_feature(unsigned int num); bool cpu_have_feature(unsigned int num); unsigned long cpu_get_elf_hwcap(void); diff --git a/arch/arm64/kernel/cpufeature.c b/arch/arm64/kernel/cpufeature.c index b1fdc486aed8..c5097f58649d 100644 --- a/arch/arm64/kernel/cpufeature.c +++ b/arch/arm64/kernel/cpufeature.c @@ -1141,6 +1141,12 @@ static bool has_hw_dbm(const struct arm64_cpu_capabilities *cap, return true; } +/* Decouple AF from AFDBM. */ +bool cpu_has_hw_af(void) +{ + return (read_cpuid(ID_AA64MMFR1_EL1) & 0xf); +} + #endif #ifdef CONFIG_ARM64_VHE