File xen.trc-get_pending_vcpu.patch of Package xen
From: Olaf Hering <olaf@aepfle.de>
Date: Thu, 15 Jun 2023 08:32:29 +0000
Subject: trc get_pending_vcpu
Signed-off-by: Olaf Hering <olaf@aepfle.de>
---
xen/common/ioreq.c | 7 +++++++
1 file changed, 7 insertions(+)
--- a/xen/common/ioreq.c
+++ b/xen/common/ioreq.c
@@ -152,42 +152,49 @@ bool domain_has_ioreq_server(const struct domain *d)
trc.has_ioreq = has_ioreq;
TRACE_trc(TRC_IOREQ_domain_has_ioreq_server);
return has_ioreq;
}
static struct ioreq_vcpu *get_pending_vcpu(const struct vcpu *v,
struct ioreq_server **srvp)
{
struct domain *d = v->domain;
struct ioreq_server *s;
unsigned int id;
+ trc_get_pending_vcpu_t trc = {
+ .v = v->vcpu_id,
+ };
FOR_EACH_IOREQ_SERVER(d, id, s)
{
struct ioreq_vcpu *sv;
list_for_each_entry ( sv,
&s->ioreq_vcpu_list,
list_entry )
{
if ( sv->vcpu == v && sv->pending )
{
if ( srvp )
*srvp = s;
+ trc.s = TRC_ePTR(s);
+ trc.sv = TRC_ePTR(sv);
+ TRACE_trc(TRC_IOREQ_get_pending_vcpu);
return sv;
}
}
}
+ TRACE_trc(TRC_IOREQ_get_pending_vcpu);
return NULL;
}
bool vcpu_ioreq_pending(struct vcpu *v)
{
return get_pending_vcpu(v, NULL);
}
static bool wait_for_io(struct ioreq_vcpu *sv, ioreq_t *p)
{
unsigned int prev_state = STATE_IOREQ_NONE;
unsigned int state = p->state;