On 4/22/2025 4:12 AM, Jürgen Groß wrote:
+
+static __always_inline bool __rdmsrq(u32 msr, u64 *val, int type)
+{
+ bool ret;
+
+#ifdef CONFIG_XEN_PV
+ if (cpu_feature_enabled(X86_FEATURE_XENPV))
+ return __xenpv_rdmsrq(msr, val, type);
I don't think this will work for the Xen PV case.
Well, I have been testing the code on xen-4.17 coming with Ubuntu
24.04.2 LTS :)
X86_FEATURE_XENPV is set only after the first MSR is being read.
No matter whether the code works or not, good catch!
This can be fixed by setting the feature earlier, but it shows that the
paravirt feature has its benefits in such cases.
See my other reply to let Xen handle all the details.
Plus the code actually works, I would actually argue the opposite :-P