File xen.trc-get_ioreq.patch of Package xen

From: Olaf Hering <olaf@aepfle.de>
Date: Thu, 15 Jun 2023 08:31:23 +0000
Subject: trc get_ioreq

Signed-off-by: Olaf Hering <olaf@aepfle.de>
---
 xen/common/ioreq.c | 6 ++++++
 1 file changed, 6 insertions(+)

--- a/xen/common/ioreq.c
+++ b/xen/common/ioreq.c
@@ -108,24 +108,30 @@ static struct ioreq_server *get_ioreq_server(const struct domain *d,
  *       This is a semantic that previously existed when ioreq servers
  *       were held in a linked list.
  */
 #define FOR_EACH_IOREQ_SERVER(d, id, s) \
     for ( (id) = MAX_NR_IOREQ_SERVERS; (id) != 0; ) \
         if ( !(s = GET_IOREQ_SERVER(d, --(id))) ) \
             continue; \
         else
 
 static ioreq_t *get_ioreq(struct ioreq_server *s, struct vcpu *v)
 {
     shared_iopage_t *p = s->ioreq.va;
+    trc_get_ioreq_t trc = {
+        .d = v->domain->domain_id,
+        .v = v->vcpu_id,
+        .s = TRC_ePTR(s),
+    };
+    TRACE_trc(TRC_IOREQ_get_ioreq);
 
     ASSERT((v == current) || !vcpu_runnable(v));
     ASSERT(p != NULL);
 
     return &p->vcpu_ioreq[v->vcpu_id];
 }
 
 /*
  * This should only be used when d == current->domain or when they're
  * distinct and d is paused. Otherwise the result is stale before
  * the caller can inspect it.
  */
openSUSE Build Service is sponsored by