On Tue, 11 Jun 2019 at 19:09, Paolo Bonzini <pbonzini@xxxxxxxxxx> wrote: > > On 11/06/19 09:38, Wanpeng Li wrote: > > MSR_CORE_C1_RES is unreadable except for ATOM platform, so I think we > > can avoid the complex logic to handle C1 now. :) > > I disagree. Linux uses it on all platforms is available, and virtual > machines that don't pass mwait through _only_ have C1, so it would be > less useful to have deep C-state residency MSRs and not C1 residency. Your design heavily depends on read host MSR_CORE_C1_RES for C1 residency msr emulation, however, the host MSR_CORE_C1_RES is unreadable. #rdmsr 0x660 rdmsr: CPU 0 cannot read MSR 0x00000660 Refer to turbostat codes, https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/tools/power/x86/turbostat/turbostat.c#n1335 C1 is derivated from other parameters. use_c1_residency_msr is true just for ATOM platform. Regards, Wanpeng Li