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. > > But turbostat can get the information from sysfs, so what are these MSRs > used for? The sysfs is not accurate, the time which is accumulated in the function cpuidle_enter_state() is the expected cstate we hope to enter instead of the real cstate we finally enter. For example, we found several SKX/CLX models can't enter deeper cstates in non-root mode, Intel hardware team has been working on this according to our report recently. The bare-metal cstate residency msrs don't increase in non-root mode, however, the time under /sys/devices/system/cpu/cpux/cpuidle/statex/ increase gradually in the guest. Regards, Wanpeng Li