File xen.trc-ioreq_broadcast.patch of Package xen
From: Olaf Hering <olaf@aepfle.de>
Date: Thu, 15 Jun 2023 08:43:42 +0000
Subject: trc ioreq_broadcast
Signed-off-by: Olaf Hering <olaf@aepfle.de>
---
xen/common/ioreq.c | 9 +++++++++
1 file changed, 9 insertions(+)
--- a/xen/common/ioreq.c
+++ b/xen/common/ioreq.c
@@ -1559,24 +1559,33 @@ int ioreq_send(struct ioreq_server *s, ioreq_t *proto_p,
return IOREQ_STATUS_RETRY;
}
}
return IOREQ_STATUS_UNHANDLED;
}
unsigned int ioreq_broadcast(ioreq_t *p, bool buffered)
{
struct domain *d = current->domain;
struct ioreq_server *s;
unsigned int id, failed = 0;
+ trc_ioreq_broadcast_t trc = {
+ .d = d->domain_id,
+ .addr = p->addr,
+ .data = p->data,
+ .type = p->type,
+ .size = p->size,
+ .dir = p->dir,
+ };
+ TRACE_trc(TRC_IOREQ_ioreq_broadcast);
FOR_EACH_IOREQ_SERVER(d, id, s)
{
if ( !s->enabled ||
(buffered && s->bufioreq_handling == HVM_IOREQSRV_BUFIOREQ_OFF) )
continue;
if ( ioreq_send(s, p, buffered) == IOREQ_STATUS_UNHANDLED )
failed++;
}
return failed;