On 08/16/2018 09:29 AM, Pu Wen wrote: > On 2018/8/12 21:26, Boris Ostrovsky wrote: >> On 08/12/2018 04:55 AM, Juergen Gross wrote: >>> On 11/08/18 16:34, Boris Ostrovsky wrote: >>>> On 08/11/2018 09:29 AM, Pu Wen wrote: >>>>> bool pmu_msr_read(unsigned int msr, uint64_t *val, int *err) >>>>> { >>>>> - if (boot_cpu_data.x86_vendor == X86_VENDOR_AMD) { >>>>> + if (boot_cpu_data.x86_vendor == X86_VENDOR_AMD || >>>>> + boot_cpu_data.x86_vendor == X86_VENDOR_HYGON) { >>>> >>>> 'if (boot_cpu_data.x86_vendor != X86_VENDOR_INTEL)' please. >>> Really? Xen supports Centaur, too. >> >> VPMU doesn't --- hypervisor will not initialize it. Besides, the >> existing code will steer non-AMD execution to Intel, which is not right >> either. >> >> I'll add a check to bail if VPMU is not initialized properly, we seem to >> ignore xen_pmu_init() failures. Which, BTW, makes this patch rather >> pointless until there is support for Hygon Xen. > > So should it still need to test vendor Hygon here or wait for your check > done? I'd prefer checking for !Intel, as I suggested above. Centaur will fail either way, but because we use safe versions of MSR access I now think we don't need any extra checks for xen_pmu_init() result. -boris