On 06.05.26 12:25, Yan Zhao wrote:
On Wed, May 06, 2026 at 10:03:26AM +0800, Yan Zhao wrote:On Wed, Apr 29, 2026 at 11:45:21AM -0700, Dave Hansen wrote:+/* + * Common paravirt and native helpers: + */ +#define rdmsr(msr, low, high) \ +do { \ + u64 __val = paravirt_read_msr((msr)); \ + (void)((low) = (u32)__val); \ + (void)((high) = (u32)(__val >> 32)); \ +} while (0)Rather than direct all (paravirt and native) invocations of rdmsr() to paravirt_*(), does it make sense to first introduce the common version of helpers and direct the common version of helpers to paravirt_* or native_*? So, we can have+/* + * Common paravirt and native helpers: + */ +#define rdmsr(msr, low, high) \ +do { \ + u64 __val = common_read_msr((msr)); \ + (void)((low) = (u32)__val); \ + (void)((high) = (u32)(__val >> 32)); \ +} while (0)Or maybe s/common/trampoline ?
I'd suggest __read_msr() and friends. Juergen
OpenPGP_0xB0DE9DD628BF132F.asc
Description: OpenPGP public key
OpenPGP_signature.asc
Description: OpenPGP digital signature

