mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
xenalyze: Reduce warnings about leaving a vcpu in INIT
We warn when we see data for a vcpu moving into a non-RUNNING state, just so that people know why we're ignoring it. On full traces, this happens only once. However, if the trace was limited to a subset of pcpus, then this will happen every time the domain in question is woken on that pcpu. Add a 'delayed_init' flag to the vcpu struct to indicate when a vcpu has experienced a delayed init. Print a warning message once when entering the state, and once when leaving it. Signed-off-by: George Dunlap <george.dunlap@cloud.com> Release-acked-by: Henry Wang <Henry.Wang@arm.com> Acked-by: Anthony PERARD <anthony.perard@citrix.com>
This commit is contained in:
1 parent
b26a234135
commit
0ce2ee7a16
1 file changed
+10
-3
@@ -1625,7 +1625,7 @@ struct vlapic_struct {
|
||||
struct vcpu_data {
|
||||
int vid;
|
||||
struct domain_data *d; /* up-pointer */
|
||||
unsigned activated:1;
|
||||
unsigned activated:1, delayed_init:1;
|
||||
|
||||
int guest_paging_levels;
|
||||
|
||||
@@ -6979,10 +6979,17 @@ void vcpu_start(struct pcpu_info *p, struct vcpu_data *v,
|
||||
* bring a vcpu out of INIT until it's seen to be actually
|
||||
* running somewhere. */
|
||||
if ( new_runstate != RUNSTATE_RUNNING ) {
|
||||
fprintf(warn, "First schedule for d%dv%d doesn't take us into a running state; leaving INIT\n",
|
||||
v->d->did, v->vid);
|
||||
if ( !v->delayed_init ) {
|
||||
fprintf(warn, "First schedule for d%dv%d doesn't take us into a running state; leaving in INIT\n",
|
||||
v->d->did, v->vid);
|
||||
v->delayed_init = 1;
|
||||
}
|
||||
|
||||
return;
|
||||
} else if ( v->delayed_init ) {
|
||||
fprintf(warn, "d%dv%d RUNSTATE_RUNNING detected, leaving INIT",
|
||||
v->d->did, v->vid);
|
||||
v->delayed_init = 0;
|
||||
}
|
||||
|
||||
tsc = ri_tsc;
|
||||
|
||||