On Wed, May 06, 2026 at 01:09:07PM +0200, Jürgen Groß wrote:
> 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.
__read_msr() and friends look good to me.




Reply via email to