credit2: fix credit reset happening too few times
authorDario Faggioli <dfaggioli@suse.com>
Thu, 9 Apr 2020 08:18:58 +0000 (10:18 +0200)
committerJan Beulich <jbeulich@suse.com>
Thu, 9 Apr 2020 08:18:58 +0000 (10:18 +0200)
commitaffb032b9b2624b67ffc7fb246a915dd08074b3f
tree7e9a004d43f5aec42603dbbcbcb424a001464322
parent5adb81ae7b26288851c825f62b50d34acb803839
credit2: fix credit reset happening too few times

There is a bug in commit 5e4b4199667b9 ("xen: credit2: only reset
credit on reset condition"). In fact, the aim of that commit was to
make sure that we do not perform too many credit reset operations
(which are not super cheap, and in an hot-path). But the check used
to determine whether a reset is necessary was the wrong one.

In fact, knowing just that some vCPUs have been skipped, while
traversing the runqueue (in runq_candidate()), is not enough. We
need to check explicitly whether the first vCPU in the runqueue
has a negative amount of credit.

Since a trace record is changed, this patch updates xentrace format file
and xenalyze as well

This should be backported.

Signed-off-by: Dario Faggioli <dfaggioli@suse.com>
Acked-by: George Dunlap <george.dunlap@citrix.com>
master commit: dae7b62e976b28af9c8efa150618c25501bf1650
master date: 2020-04-03 10:46:53 +0200
tools/xentrace/formats
tools/xentrace/xenalyze.c
xen/common/sched_credit2.c