From patchwork Tue Apr 22 08:21:50 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Xin Li \(Intel\)" X-Patchwork-Id: 884233 Received: from mail.zytor.com (terminus.zytor.com [198.137.202.136]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8C217253F35; Tue, 22 Apr 2025 08:23:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.137.202.136 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745310231; cv=none; b=PPjq3zW4N4q5k8SwPCCq2dqEwBgtDce6O3JqvYUjQ4acNw2xZ/5aYebRkv5JF20nslhGRezRr2JWHKKvpj/YZ6Em01tYhpZRv5A+ATKMGtwEtVyKYyS5DBbOXWnC3RXwA6WvwODIa/xe0KMQKpxJt1AebCPIkCWwC6YJsUy0ahE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745310231; c=relaxed/simple; bh=F2BF+VfUWJL523jlXGBK3fiDqXpmKVr2DcHjvkC3KSE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=BuToxPHnyafjIYaB25hGCSNjLS6X8iaEPqavOqsSlC8M+kcOyTLepOLerRHpE8k4x/4tA/giJckxY/N6yhJeVxPt2wtBzopg4pAoQjqIWuV7pLjljAolFPyXk6m0l8bpKFfEScqFUNauOVRfmFgFkv0iGBVu5NbnlATyPHhizR4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=zytor.com; spf=pass smtp.mailfrom=zytor.com; dkim=pass (2048-bit key) header.d=zytor.com header.i=@zytor.com header.b=fz4KTPrF; arc=none smtp.client-ip=198.137.202.136 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=zytor.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=zytor.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=zytor.com header.i=@zytor.com header.b="fz4KTPrF" Received: from terminus.zytor.com (terminus.zytor.com [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0) by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53M8MG9N1954391 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Tue, 22 Apr 2025 01:22:38 -0700 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53M8MG9N1954391 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com; s=2025042001; t=1745310160; bh=fbJnWtTq9obtgTU/Lma7WAz0yq4D3lVBsvZaY+1Z5fs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=fz4KTPrFlZOPu7Ad1BierSmHsj97cJ3HwU46GfU9c4zQ48NxZGpjLX6slUlsokCO0 4xlliWRpPkfsUMMPkXBb9GNHLmUgduGYR/Rskic9b7sZP/p+LxzbEtOw78olSobs9G ORuOuj0McqrDPuInHQiYwxmYbrWzgJHRXc14cHQPd4zY/g9yqoofBYiNjiEHxF2NkY dj7DAY0zNt0U+sXlItRhYuyJBQXg/acXr7I7rBcL0tJaAfipwl1y3rcyW5x0mLyP3C Xno7ixoagmmS2q3B8Ytaw5MjR7mKGnndC8HIp5PyTF5TP+uK53eLtVcRLBIM8cpWUk 6dCZLOATluRuQ== From: "Xin Li (Intel)" To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org, linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev, linux-pm@vger.kernel.org, linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org, netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com, peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com, alexander.shishkin@linux.intel.com, jolsa@kernel.org, irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com, wei.liu@kernel.org, ajay.kaher@broadcom.com, bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com, pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com, luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com, haiyangz@microsoft.com, decui@microsoft.com Subject: [RFC PATCH v2 09/34] x86/msr: Add the native_rdmsrq() helper Date: Tue, 22 Apr 2025 01:21:50 -0700 Message-ID: <20250422082216.1954310-10-xin@zytor.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250422082216.1954310-1-xin@zytor.com> References: <20250422082216.1954310-1-xin@zytor.com> Precedence: bulk X-Mailing-List: linux-pm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 __rdmsr() is the lowest-level primitive MSR read API, implemented in assembly code and returning an MSR value in a u64 integer, on top of which a convenience wrapper native_rdmsr() is defined to return an MSR value in two u32 integers. For some reason, native_rdmsrq() is not defined and __rdmsr() is directly used when it needs to return an MSR value in a u64 integer. Add the native_rdmsrq() helper, which is simply an alias of __rdmsr(), to make native_rdmsr() and native_rdmsrq() a pair of MSR read APIs. Signed-off-by: Xin Li (Intel) --- Change in v2: * Split into two changes and add the native_rdmsrl() helper in the first one with a proper explanation (Ingo). --- arch/x86/include/asm/msr.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/arch/x86/include/asm/msr.h b/arch/x86/include/asm/msr.h index b50cbd3299b3..2ab8effea4cd 100644 --- a/arch/x86/include/asm/msr.h +++ b/arch/x86/include/asm/msr.h @@ -112,6 +112,11 @@ do { \ (void)((val2) = (u32)(__val >> 32)); \ } while (0) +static __always_inline u64 native_rdmsrq(u32 msr) +{ + return __rdmsr(msr); +} + #define native_wrmsr(msr, low, high) \ __wrmsr(msr, low, high)