Possible regression in cpuacct.stats system time
From: Nitesh Narayan Lal
Date: Mon Jan 04 2021 - 16:26:15 EST
Hi,
Last year I reported an issue of "suspicious RCU usage" [1] with the debug
kernel which was fixed with the patch:
87fa7f3e98 "x86/kvm: Move context tracking where it belongs"
Recently I have come across a possible regression because of this
patch in the cpuacct.stats system time.
With the latest upstream kernel (5.11-rc2) when we set up a VM and start
observing the system time value from cpuacct.stat then it is significantly
higher than value reported with the kernel that doesn't have the
previously mentioned patch.
For instance, the following are the values of cpuacct.stats right after the
VM bring up completion for two cases:
with a kernel that has the patch-
user 471
system 6094
with the patch reverted-
user 498
system 1873
FWIU the reason behind this increase is the moving of guest_exit_irqoff()
to its proper location (near vmexit). This leads to the accounting
of instructions that were previously accounted into the guest context as a
part of the system time.
IMO this should be an expected behavior after the previously mentioned
change. Is that a right conclusion or I am missing something here?
Another question that I have is about the patch
d7a08882a0 "KVM: x86: Unconditionally enable irqs in guest context"
considering we are enabling irqs early now in the code path, do we still
need this patch?
[1] https://lore.kernel.org/lkml/ece36eb1-253a-8ec6-c183-309c10bb35d5@xxxxxxxxxx/
--
Thanks
Nitesh