From patchwork Mon Mar 6 16:34:15 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Juergen Gross X-Patchwork-Id: 64932 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1942817wrd; Mon, 6 Mar 2023 08:38:49 -0800 (PST) X-Google-Smtp-Source: AK7set/eU/5ktDM5Y0kv/GK0fJI71xqkvXwBTj99FlZUl/BOqNUmyIi4GgpZn889S1C1lm6I8cLd X-Received: by 2002:a05:6a20:3b85:b0:cc:fced:f715 with SMTP id b5-20020a056a203b8500b000ccfcedf715mr9866493pzh.22.1678120729057; Mon, 06 Mar 2023 08:38:49 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678120729; cv=none; d=google.com; s=arc-20160816; b=k/p6brdg6R8HS00z5Xa9DFfyK6mhpNWBVglH5p3349BnQjpA0ETnYfxl7GOHwtEE9c 55PR8OgtJ2i0lCzmVz44aSALDMkWjiJxj3kbiSZNj4/rpl95O14Nv2Co9jQHEWi8y4Ys JRxQhK9xmR7qVnxeutMlbwz2Dwa4eQqloFY6a8oUVbeCGWfM/1WyfkBcEh16RqpSs8l3 0f+CRnJLSLLp4bsCmcBt+70pGvMCoZSF6IEyIlyMdDjQNlXBN+CEgk6vMbm5HRMeJXRs 6pBuHNVTnY0oT3fe6pZoAjCfVoHqYfJyYqjSMVZC994saueA77dl5oODvJ5WxPnwRZZQ Frug== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=0JsZ/VnHkJzmuDE7gMbHKVhyFu+vf+6Nmu9WRKJMi3s=; b=x8JbELEthuRFYZ4bH9MqPFcwzsYxUZYU4QK928F7JIfrRU4S/ZX66PxYmTlGG0c0He IvfLmMVHg9LSYwXbWBEAQMeQtfaF/fgqBYLgaHwk6zARN1Wb3okeJSdyoFLo0oOnav00 20xb1LtJM+R51j//wNByOjRFqJL68a+9Tnkwcl2NmWqBO6eSXbONzoIP8YoAnZELbQko 0DNRU/8FEfG3zHnVQpr1/lG7myvjLq+kDJAAjQR97/4/+NJitGmg1y4HLrItH3wKrcGB aN92FOv6TdI4/F+C/zDwVNN6xKe6k3ZNVNjiQpQmIZWtJRrSHOY/aIdcWebNW1EdNH1j /MPQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.com header.s=susede1 header.b=FDrOH3Oo; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=suse.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id 17-20020a630011000000b004fc274006d9si9631668pga.368.2023.03.06.08.38.35; Mon, 06 Mar 2023 08:38:49 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=susede1 header.b=FDrOH3Oo; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=suse.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230334AbjCFQgw (ORCPT + 99 others); Mon, 6 Mar 2023 11:36:52 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48344 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230007AbjCFQf4 (ORCPT ); Mon, 6 Mar 2023 11:35:56 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [IPv6:2001:67c:2178:6::1d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 632093B202 for ; Mon, 6 Mar 2023 08:35:21 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 1778F1FDE4; Mon, 6 Mar 2023 16:34:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1678120479; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=0JsZ/VnHkJzmuDE7gMbHKVhyFu+vf+6Nmu9WRKJMi3s=; b=FDrOH3OoQ6bIZecckFCAR+JTM5Ks/ekJZv6L41zO46FDqLHp32JNrBzlEuoz5EiibkZ3jQ NB8VXAbRlIRVaz/Go6GkYh2eMc5emfg3/a0/PnMKxdFR86myCbVYjKLbnNsU/gCMM/Zqbd xUW8WXTqZWk3lSUYNqL7DGsBJZakcl8= Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id CF25613A66; Mon, 6 Mar 2023 16:34:38 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id TJhGMR4WBmQpUwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:34:38 +0000 From: Juergen Gross To: linux-kernel@vger.kernel.org, x86@kernel.org Cc: Juergen Gross , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , "H. Peter Anvin" Subject: [PATCH v4 02/12] x86/mtrr: optimize mtrr_calc_physbits() Date: Mon, 6 Mar 2023 17:34:15 +0100 Message-Id: <20230306163425.8324-3-jgross@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: <20230306163425.8324-1-jgross@suse.com> References: <20230306163425.8324-1-jgross@suse.com> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759637121538244347?= X-GMAIL-MSGID: =?utf-8?q?1759637121538244347?= Optimize mtrr_calc_physbits() for better readability. Drop a stale comment, as reality has made it obsolete. Signed-off-by: Juergen Gross Signed-off-by: Juergen Gross Signed-off-by: Borislav Petkov (AMD) --- V3: - new patch, split off from previous patch (Boris Petkov) --- arch/x86/kernel/cpu/mtrr/mtrr.c | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) diff --git a/arch/x86/kernel/cpu/mtrr/mtrr.c b/arch/x86/kernel/cpu/mtrr/mtrr.c index 8310bdb111d0..7596ebeab929 100644 --- a/arch/x86/kernel/cpu/mtrr/mtrr.c +++ b/arch/x86/kernel/cpu/mtrr/mtrr.c @@ -619,8 +619,6 @@ static struct syscore_ops mtrr_syscore_ops = { int __initdata changed_by_mtrr_cleanup; -#define SIZE_OR_MASK_BITS(n) (~((1ULL << ((n) - PAGE_SHIFT)) - 1)) - static unsigned int __init mtrr_calc_physbits(bool generic) { unsigned int phys_addr; @@ -628,15 +626,8 @@ static unsigned int __init mtrr_calc_physbits(bool generic) phys_addr = 32; if (generic) { - size_or_mask = SIZE_OR_MASK_BITS(36); - size_and_mask = 0x00f00000; phys_addr = 36; - /* - * This is an AMD specific MSR, but we assume(hope?) that - * Intel will implement it too when they extend the address - * bus of the Xeon. - */ if (cpuid_eax(0x80000000) >= 0x80000008) { phys_addr = cpuid_eax(0x80000008) & 0xff; /* CPUID workaround for Intel 0F33/0F34 CPU */ @@ -647,23 +638,19 @@ static unsigned int __init mtrr_calc_physbits(bool generic) boot_cpu_data.x86_stepping == 0x4)) phys_addr = 36; - size_or_mask = SIZE_OR_MASK_BITS(phys_addr); - size_and_mask = ~size_or_mask & 0xfffff00000ULL; } else if (boot_cpu_data.x86_vendor == X86_VENDOR_CENTAUR && boot_cpu_data.x86 == 6) { /* * VIA C* family have Intel style MTRRs, * but don't support PAE */ - size_or_mask = SIZE_OR_MASK_BITS(32); - size_and_mask = 0; phys_addr = 32; } - } else { - size_or_mask = SIZE_OR_MASK_BITS(32); - size_and_mask = 0; } + size_or_mask = ~((1ULL << (phys_addr - PAGE_SHIFT)) - 1); + size_and_mask = ~size_or_mask & 0xfffff00000ULL; + return phys_addr; }