From: Juergen Gross <jgross@suse.com>
To: linux-kernel@vger.kernel.org, x86@kernel.org,
virtualization@lists.linux.dev, linux-ide@vger.kernel.org,
dri-devel@lists.freedesktop.org, linux-fbdev@vger.kernel.org,
linux-crypto@vger.kernel.org, linux-gpio@vger.kernel.org,
linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
kvm@vger.kernel.org, linux-edac@vger.kernel.org,
linux-pci@vger.kernel.org, linux-pm@vger.kernel.org,
linux-coco@lists.linux.dev, linux-acpi@vger.kernel.org,
linux-hwmon@vger.kernel.org, linux-mtd@lists.infradead.org,
platform-driver-x86@vger.kernel.org,
Ingo Molnar <mingo@redhat.com>
Cc: "Thomas Gleixner" <tglx@kernel.org>,
"Borislav Petkov" <bp@alien8.de>,
"Dave Hansen" <dave.hansen@linux.intel.com>,
"H. Peter Anvin" <hpa@zytor.com>,
"Ajay Kaher" <ajay.kaher@broadcom.com>,
"Alexey Makhalov" <alexey.makhalov@broadcom.com>,
"Broadcom internal kernel review list"
<bcm-kernel-feedback-list@broadcom.com>,
"Damien Le Moal" <dlemoal@kernel.org>,
"Niklas Cassel" <cassel@kernel.org>,
"David Airlie" <airlied@redhat.com>,
"Helge Deller" <deller@gmx.de>,
linux-geode@lists.infradead.org,
"Olivia Mackall" <olivia@selenic.com>,
"Herbert Xu" <herbert@gondor.apana.org.au>,
"Linus Walleij" <linusw@kernel.org>,
"Bartosz Golaszewski" <brgl@kernel.org>,
"Arnd Bergmann" <arnd@arndb.de>,
"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
"Peter Zijlstra" <peterz@infradead.org>,
"Arnaldo Carvalho de Melo" <acme@kernel.org>,
"Namhyung Kim" <namhyung@kernel.org>,
"Mark Rutland" <mark.rutland@arm.com>,
"Alexander Shishkin" <alexander.shishkin@linux.intel.com>,
"Jiri Olsa" <jolsa@kernel.org>, "Ian Rogers" <irogers@google.com>,
"Adrian Hunter" <adrian.hunter@intel.com>,
"James Clark" <james.clark@linaro.org>,
"K. Y. Srinivasan" <kys@microsoft.com>,
"Haiyang Zhang" <haiyangz@microsoft.com>,
"Wei Liu" <wei.liu@kernel.org>,
"Dexuan Cui" <decui@microsoft.com>,
"Long Li" <longli@microsoft.com>,
"Sean Christopherson" <seanjc@google.com>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Josh Poimboeuf" <jpoimboe@kernel.org>,
"Pawan Gupta" <pawan.kumar.gupta@linux.intel.com>,
"Pu Wen" <puwen@hygon.cn>, "Tony Luck" <tony.luck@intel.com>,
"Reinette Chatre" <reinette.chatre@intel.com>,
"Dave Martin" <Dave.Martin@arm.com>,
"James Morse" <james.morse@arm.com>,
"Babu Moger" <babu.moger@amd.com>,
"Tony W Wang-oc" <TonyWWang-oc@zhaoxin.com>,
"Vitaly Kuznetsov" <vkuznets@redhat.com>,
"Andy Lutomirski" <luto@kernel.org>,
"Bjorn Helgaas" <bhelgaas@google.com>,
"Rafael J. Wysocki" <rafael@kernel.org>,
"Pavel Machek" <pavel@kernel.org>,
"Kiryl Shutsemau" <kas@kernel.org>,
"Rick Edgecombe" <rick.p.edgecombe@intel.com>,
"Boris Ostrovsky" <boris.ostrovsky@oracle.com>,
"Len Brown" <lenb@kernel.org>,
"Viresh Kumar" <viresh.kumar@linaro.org>,
"Huang Rui" <ray.huang@amd.com>,
"Mario Limonciello" <mario.limonciello@amd.com>,
"Perry Yuan" <perry.yuan@amd.com>,
"K Prateek Nayak" <kprateek.nayak@amd.com>,
"Srinivas Pandruvada" <srinivas.pandruvada@linux.intel.com>,
"Yazen Ghannam" <yazen.ghannam@amd.com>,
"Guenter Roeck" <linux@roeck-us.net>,
"Artem Bityutskiy" <artem.bityutskiy@linux.intel.com>,
"Artem Bityutskiy" <dedekind1@gmail.com>,
"Miquel Raynal" <miquel.raynal@bootlin.com>,
"Richard Weinberger" <richard@nod.at>,
"Vignesh Raghavendra" <vigneshr@ti.com>,
"Ashok Raj" <ashok.raj.linux@gmail.com>,
"Hans de Goede" <hansg@kernel.org>,
"Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>,
"Rajneesh Bhardwaj" <irenic.rajneesh@gmail.com>,
"Xi Pardee" <xi.pardee@linux.intel.com>,
"Daniel Lezcano" <daniel.lezcano@kernel.org>,
"Zhang Rui" <rui.zhang@intel.com>,
"Lukasz Luba" <lukasz.luba@arm.com>,
xen-devel@lists.xenproject.org
Subject: Re: [PATCH v3 00/13] x86/msr: Drop 32-bit MSR interfaces
Date: Mon, 21 Sep 2026 17:23:41 +0200 [thread overview]
Message-ID: <6df2617a-5bee-4bac-822d-a4ca09c47e76@suse.com> (raw)
In-Reply-To: <20260911074530.3140830-1-jgross@suse.com>
[-- Attachment #1.1.1: Type: text/plain, Size: 10813 bytes --]
Ingo,
On 11.09.26 09:45, Juergen Gross wrote:
> For accessing the MSR registers on the local CPU, there are 2 types of
> interfaces: the "modern" 64-bit ones (rdmsrq() etc.) and the 32-bit
> ones (rdmsr() etc.) which are using the upper and lower 32-bit halves
> of the 64-bit wide MSR register values.
>
> The 32-bit interfaces are not optimal for 3 reasons:
>
> - They are based on primitives using 64-bit sized values anyway.
>
> - Modern x86 CPUs have added support for MSR access instructions using
> an immediate value instead of a register for addressing the MSR,
> while the value is in a 64-bit register.
>
> - rdmsr() is a macro storing the upper and lower 32-bit halves in
> variables specified as macro parameters. This is obscuring variable
> assignment through a macro. Additionally rdmsrq() is mimicking this
> pattern by being a macro, too, with the target variable specified as
> a parameter as well.
>
> For those reasons drop the 32-bit interfaces for accessing the x86 MSR
> registers completely and only use the 64-bit variants.
>
> This allows to switch all "high-level" MSR access macros to inline
> functions in the end.
>
> This series will be used as the base for further reorganisation of the
> MSR access functions, especially for completely inlining the MSR
> access instructions even with paravirtualization being active.
>
> Based on kernel 7.3 as of 2026-09-11.
>
> Changes in V2:
> - dropped already applied patches
> - added patch 1
> - rebased
>
> Changes in V3:
> - small fixes in patches 4 and 13
> - rebased
>
> Juergen Gross (13):
> x86/cpu: Fix coding style violation
> x86/msr: Remove wrmsr_safe()
> x86/msr: Remove rdmsr_safe()
> drivers/ata: Stop using 32-bit MSR interfaces
> agp/nvidia: Stop using 32-bit MSR interfaces
> fbdev/geode: Stop using 32-bit MSR interfaces
> hw_random/via-rng: Stop using 32-bit MSR interfaces
> drivers/gpio: Stop using 32-bit MSR interfaces
> drivers/misc: Stop using 32-bit MSR interfaces
> x86/msr: Remove wrmsr()
> x86/msr: Remove rdmsr()
> treewide: convert rdmsrq() from a macro to an inline function
> x86/msr: Simplify some rdmsrq() use cases
>
> arch/x86/coco/sev/core.c | 2 +-
> arch/x86/events/amd/brs.c | 4 +-
> arch/x86/events/amd/core.c | 8 +--
> arch/x86/events/amd/ibs.c | 18 +++----
> arch/x86/events/amd/lbr.c | 16 ++----
> arch/x86/events/amd/power.c | 8 +--
> arch/x86/events/amd/uncore.c | 4 +-
> arch/x86/events/core.c | 20 ++++----
> arch/x86/events/intel/core.c | 15 ++----
> arch/x86/events/intel/cstate.c | 5 +-
> arch/x86/events/intel/ds.c | 2 +-
> arch/x86/events/intel/knc.c | 10 ++--
> arch/x86/events/intel/lbr.c | 25 +++-------
> arch/x86/events/intel/p4.c | 6 +--
> arch/x86/events/intel/p6.c | 4 +-
> arch/x86/events/intel/pt.c | 12 ++---
> arch/x86/events/intel/uncore.c | 6 +--
> arch/x86/events/intel/uncore_nhmex.c | 4 +-
> arch/x86/events/intel/uncore_snb.c | 2 +-
> arch/x86/events/intel/uncore_snbep.c | 6 +--
> arch/x86/events/msr.c | 2 +-
> arch/x86/events/perf_event.h | 6 +--
> arch/x86/events/rapl.c | 6 +--
> arch/x86/events/zhaoxin/core.c | 10 ++--
> arch/x86/hyperv/hv_apic.c | 9 ++--
> arch/x86/hyperv/hv_init.c | 26 +++++-----
> arch/x86/hyperv/hv_spinlock.c | 2 +-
> arch/x86/include/asm/apic.h | 7 +--
> arch/x86/include/asm/debugreg.h | 6 +--
> arch/x86/include/asm/fsgsbase.h | 2 +-
> arch/x86/include/asm/kvm_host.h | 10 ----
> arch/x86/include/asm/msr.h | 39 ++-------------
> arch/x86/include/asm/paravirt.h | 26 +---------
> arch/x86/kernel/apic/apic.c | 14 +++---
> arch/x86/kernel/apic/apic_numachip.c | 6 +--
> arch/x86/kernel/cet.c | 2 +-
> arch/x86/kernel/cpu/amd.c | 14 +++---
> arch/x86/kernel/cpu/aperfmperf.c | 8 +--
> arch/x86/kernel/cpu/bugs.c | 12 ++---
> arch/x86/kernel/cpu/bus_lock.c | 8 +--
> arch/x86/kernel/cpu/centaur.c | 8 +--
> arch/x86/kernel/cpu/common.c | 12 ++---
> arch/x86/kernel/cpu/feat_ctl.c | 4 +-
> arch/x86/kernel/cpu/hygon.c | 4 +-
> arch/x86/kernel/cpu/intel.c | 6 +--
> arch/x86/kernel/cpu/intel_epb.c | 4 +-
> arch/x86/kernel/cpu/mce/amd.c | 4 +-
> arch/x86/kernel/cpu/mce/core.c | 8 +--
> arch/x86/kernel/cpu/mce/inject.c | 2 +-
> arch/x86/kernel/cpu/mce/intel.c | 18 +++----
> arch/x86/kernel/cpu/mce/p5.c | 8 +--
> arch/x86/kernel/cpu/mce/winchip.c | 2 +-
> arch/x86/kernel/cpu/microcode/intel.c | 2 +-
> arch/x86/kernel/cpu/mshyperv.c | 6 +--
> arch/x86/kernel/cpu/mtrr/amd.c | 4 +-
> arch/x86/kernel/cpu/mtrr/cleanup.c | 4 +-
> arch/x86/kernel/cpu/mtrr/generic.c | 32 ++++++------
> arch/x86/kernel/cpu/mtrr/mtrr.c | 2 +-
> arch/x86/kernel/cpu/resctrl/core.c | 2 +-
> arch/x86/kernel/cpu/resctrl/monitor.c | 4 +-
> arch/x86/kernel/cpu/resctrl/pseudo_lock.c | 4 +-
> arch/x86/kernel/cpu/resctrl/rdtgroup.c | 2 +-
> arch/x86/kernel/cpu/topology.c | 2 +-
> arch/x86/kernel/cpu/topology_amd.c | 4 +-
> arch/x86/kernel/cpu/transmeta.c | 8 +--
> arch/x86/kernel/cpu/tsx.c | 10 ++--
> arch/x86/kernel/cpu/umwait.c | 2 +-
> arch/x86/kernel/cpu/zhaoxin.c | 4 +-
> arch/x86/kernel/fpu/core.c | 2 +-
> arch/x86/kernel/hpet.c | 2 +-
> arch/x86/kernel/kvm.c | 2 +-
> arch/x86/kernel/mmconf-fam10h_64.c | 6 +--
> arch/x86/kernel/process.c | 4 +-
> arch/x86/kernel/process_64.c | 14 +++---
> arch/x86/kernel/shstk.c | 8 +--
> arch/x86/kernel/traps.c | 4 +-
> arch/x86/kernel/tsc.c | 2 +-
> arch/x86/kernel/tsc_msr.c | 6 +--
> arch/x86/kernel/tsc_sync.c | 6 +--
> arch/x86/kvm/msrs.c | 2 +-
> arch/x86/kvm/svm/pmu.c | 4 +-
> arch/x86/kvm/svm/svm.c | 4 +-
> arch/x86/kvm/vmx/nested.c | 4 +-
> arch/x86/kvm/vmx/pmu_intel.c | 8 +--
> arch/x86/kvm/vmx/sgx.c | 6 +--
> arch/x86/kvm/vmx/tdx.c | 2 +-
> arch/x86/kvm/vmx/vmx.c | 42 ++++++++--------
> arch/x86/kvm/x86.c | 6 +--
> arch/x86/lib/insn-eval.c | 6 +--
> arch/x86/lib/msr-smp.c | 2 +-
> arch/x86/mm/pat/memtype.c | 2 +-
> arch/x86/pci/amd_bus.c | 8 +--
> arch/x86/platform/olpc/olpc-xo1-rtc.c | 6 +--
> arch/x86/platform/olpc/olpc-xo1-sci.c | 2 +-
> arch/x86/power/cpu.c | 10 ++--
> arch/x86/realmode/init.c | 2 +-
> arch/x86/virt/hw.c | 8 +--
> arch/x86/virt/svm/sev.c | 18 +++----
> arch/x86/virt/vmx/tdx/tdx.c | 2 +-
> arch/x86/xen/suspend.c | 2 +-
> drivers/acpi/processor_perflib.c | 2 +-
> drivers/ata/pata_cs5535.c | 24 ++++-----
> drivers/ata/pata_cs5536.c | 17 +++----
> drivers/char/agp/nvidia-agp.c | 32 ++++++------
> drivers/char/hw_random/via-rng.c | 29 +++++------
> drivers/cpufreq/acpi-cpufreq.c | 8 +--
> drivers/cpufreq/amd-pstate.c | 4 +-
> drivers/cpufreq/e_powersaver.c | 20 ++++----
> drivers/cpufreq/intel_pstate.c | 28 +++++------
> drivers/cpufreq/longhaul.c | 12 ++---
> drivers/cpufreq/longrun.c | 16 +++---
> drivers/cpufreq/powernow-k7.c | 10 ++--
> drivers/cpufreq/powernow-k8.c | 8 +--
> drivers/cpufreq/speedstep-centrino.c | 4 +-
> drivers/cpufreq/speedstep-lib.c | 14 +++---
> drivers/edac/amd64_edac.c | 6 +--
> drivers/gpio/gpio-cs5535.c | 10 ++--
> drivers/hv/mshv_vtl_main.c | 2 +-
> drivers/hwmon/hwmon-vid.c | 4 +-
> drivers/idle/intel_idle.c | 26 +++++-----
> drivers/misc/cs5535-mfgpt.c | 33 ++++++------
> drivers/mtd/nand/raw/cs553x_nand.c | 6 +--
> drivers/platform/x86/intel/ifs/load.c | 10 ++--
> drivers/platform/x86/intel/ifs/runtest.c | 8 +--
> drivers/platform/x86/intel/pmc/cnp.c | 2 +-
> .../intel/speed_select_if/isst_if_mbox_msr.c | 6 +--
> .../intel/speed_select_if/isst_tpmi_core.c | 2 +-
> drivers/platform/x86/intel_ips.c | 20 ++++----
> drivers/powercap/intel_rapl_msr.c | 2 +-
> drivers/thermal/intel/intel_hfi.c | 8 +--
> drivers/thermal/intel/therm_throt.c | 22 ++++----
> drivers/thermal/intel/x86_pkg_temp_thermal.c | 6 +--
> drivers/video/fbdev/geode/display_gx.c | 8 +--
> drivers/video/fbdev/geode/gxfb_core.c | 2 +-
> drivers/video/fbdev/geode/lxfb_ops.c | 50 +++++++++----------
> drivers/video/fbdev/geode/suspend_gx.c | 24 +++++----
> drivers/video/fbdev/geode/video_gx.c | 8 +--
> include/linux/cs5535.h | 10 ++--
> 138 files changed, 575 insertions(+), 694 deletions(-)
>
anything you need from me to get this series into 7.4?
Juergen
[-- Attachment #1.1.2: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 3743 bytes --]
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 495 bytes --]
prev parent reply other threads:[~2026-09-21 15:23 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-11 7:45 Juergen Gross
2026-09-11 7:45 ` [PATCH v3 01/13] x86/cpu: Fix coding style violation Juergen Gross
2026-09-11 7:45 ` [PATCH v3 02/13] x86/msr: Remove wrmsr_safe() Juergen Gross
2026-09-11 7:45 ` [PATCH v3 03/13] x86/msr: Remove rdmsr_safe() Juergen Gross
2026-09-11 7:45 ` [PATCH v3 04/13] drivers/ata: Stop using 32-bit MSR interfaces Juergen Gross
2026-09-11 7:45 ` [PATCH v3 05/13] agp/nvidia: " Juergen Gross
2026-09-11 7:45 ` [PATCH v3 06/13] fbdev/geode: " Juergen Gross
2026-09-11 7:45 ` [PATCH v3 07/13] hw_random/via-rng: " Juergen Gross
2026-09-11 7:45 ` [PATCH v3 08/13] drivers/gpio: " Juergen Gross
2026-09-11 7:45 ` [PATCH v3 09/13] drivers/misc: " Juergen Gross
2026-09-11 7:45 ` [PATCH v3 10/13] x86/msr: Remove wrmsr() Juergen Gross
2026-09-11 7:45 ` [PATCH v3 11/13] x86/msr: Remove rdmsr() Juergen Gross
2026-09-11 7:45 ` [PATCH v3 12/13] treewide: convert rdmsrq() from a macro to an inline function Juergen Gross
2026-09-11 9:37 ` Ilpo Järvinen
2026-09-13 5:36 ` Jürgen Groß
2026-09-11 10:11 ` Rafael J. Wysocki (Intel)
2026-09-11 13:22 ` Sean Christopherson
2026-09-14 15:54 ` Reinette Chatre
2026-09-22 13:59 ` Zhongqiu Han
2026-09-11 7:45 ` [PATCH v3 13/13] x86/msr: Simplify some rdmsrq() use cases Juergen Gross
2026-09-11 13:20 ` Sean Christopherson
2026-09-21 15:23 ` Juergen Gross [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=6df2617a-5bee-4bac-822d-a4ca09c47e76@suse.com \
--to=jgross@suse.com \
--cc=Dave.Martin@arm.com \
--cc=TonyWWang-oc@zhaoxin.com \
--cc=acme@kernel.org \
--cc=adrian.hunter@intel.com \
--cc=airlied@redhat.com \
--cc=ajay.kaher@broadcom.com \
--cc=alexander.shishkin@linux.intel.com \
--cc=alexey.makhalov@broadcom.com \
--cc=arnd@arndb.de \
--cc=artem.bityutskiy@linux.intel.com \
--cc=ashok.raj.linux@gmail.com \
--cc=babu.moger@amd.com \
--cc=bcm-kernel-feedback-list@broadcom.com \
--cc=bhelgaas@google.com \
--cc=boris.ostrovsky@oracle.com \
--cc=bp@alien8.de \
--cc=brgl@kernel.org \
--cc=cassel@kernel.org \
--cc=daniel.lezcano@kernel.org \
--cc=dave.hansen@linux.intel.com \
--cc=decui@microsoft.com \
--cc=dedekind1@gmail.com \
--cc=deller@gmx.de \
--cc=dlemoal@kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=gregkh@linuxfoundation.org \
--cc=haiyangz@microsoft.com \
--cc=hansg@kernel.org \
--cc=herbert@gondor.apana.org.au \
--cc=hpa@zytor.com \
--cc=ilpo.jarvinen@linux.intel.com \
--cc=irenic.rajneesh@gmail.com \
--cc=irogers@google.com \
--cc=james.clark@linaro.org \
--cc=james.morse@arm.com \
--cc=jolsa@kernel.org \
--cc=jpoimboe@kernel.org \
--cc=kas@kernel.org \
--cc=kprateek.nayak@amd.com \
--cc=kvm@vger.kernel.org \
--cc=kys@microsoft.com \
--cc=lenb@kernel.org \
--cc=linusw@kernel.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-coco@lists.linux.dev \
--cc=linux-crypto@vger.kernel.org \
--cc=linux-edac@vger.kernel.org \
--cc=linux-fbdev@vger.kernel.org \
--cc=linux-geode@lists.infradead.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-hwmon@vger.kernel.org \
--cc=linux-hyperv@vger.kernel.org \
--cc=linux-ide@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mtd@lists.infradead.org \
--cc=linux-pci@vger.kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=linux@roeck-us.net \
--cc=longli@microsoft.com \
--cc=lukasz.luba@arm.com \
--cc=luto@kernel.org \
--cc=mario.limonciello@amd.com \
--cc=mark.rutland@arm.com \
--cc=mingo@redhat.com \
--cc=miquel.raynal@bootlin.com \
--cc=namhyung@kernel.org \
--cc=olivia@selenic.com \
--cc=pavel@kernel.org \
--cc=pawan.kumar.gupta@linux.intel.com \
--cc=pbonzini@redhat.com \
--cc=perry.yuan@amd.com \
--cc=peterz@infradead.org \
--cc=platform-driver-x86@vger.kernel.org \
--cc=puwen@hygon.cn \
--cc=rafael@kernel.org \
--cc=ray.huang@amd.com \
--cc=reinette.chatre@intel.com \
--cc=richard@nod.at \
--cc=rick.p.edgecombe@intel.com \
--cc=rui.zhang@intel.com \
--cc=seanjc@google.com \
--cc=srinivas.pandruvada@linux.intel.com \
--cc=tglx@kernel.org \
--cc=tony.luck@intel.com \
--cc=vigneshr@ti.com \
--cc=viresh.kumar@linaro.org \
--cc=virtualization@lists.linux.dev \
--cc=vkuznets@redhat.com \
--cc=wei.liu@kernel.org \
--cc=x86@kernel.org \
--cc=xen-devel@lists.xenproject.org \
--cc=xi.pardee@linux.intel.com \
--cc=yazen.ghannam@amd.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®