[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[RFC PATCH 01/19] arm/gicv4 add management structure definitions


  • To: "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Mykyta Poturai <Mykyta_Poturai@xxxxxxxx>
  • Date: Mon, 2 Feb 2026 16:14:37 +0000
  • Accept-language: en-US
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com; dkim=pass header.d=epam.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=o0wKswGnoqukjZ6Pa85VgI1m2PSff7ggRLxjCuUhdmA=; b=VGEaOUC+Eyr/6RdIkDlNuD+HKSO0Pzzco4l3haLWCDldN4qeZBxT0ysqTREAkl8IlAekrkrP01+KPps3mrna5r/k+U+PbOXIHyQCT3+Gwn+c5Jvpp+rozNjvAXyVrrWZdL3GRvT2ohBs8GpwW46PuuMeWfXmZ0mUGZ/Tij1WC08K0q2g7eWRXQKP35Wyl1X4cXZ1iHlPMRDFtEMxAuAtRY4o/1lHA5VWFTapdx1vQGM9xS3ZXqQ4zdvJk4kUEpwjB+X9mEHsjzwRoskRvPZ/xFxqLznTCbJX3EqDEl2DjPbZy+u8N1VeNHUpvw7p0VFEN8q8QtOPmh1ZPPSxB9dh2w==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=uqJ+2fVAfmgl/Yee3BRylpSLhYoDZmb7++aMxscyIL1fPvF3XYWW4dFtdKXjufGjbsU+derlhfHHQ+MUN+wGAhEU2vqKWeL6ESVNUOpXVbyUbRbbz8j1i4FOvQihBmHe6OSEoBoJQMRFdnsgeF3q8TmphH6XoWZQWkq8zVMgl4Je9hNNoKw/yQ1Yb/NW+B8ym5mo7HwO29/QNFDZVH1Ao902f3Hgj04DVlZAH0+tj0oA81tZr/DlqCAbMRJWbV9E5bx6WIDmrXsGEyt/bp0hvop6k7aQGiBGFHTsahxKW/jFU6E7URw8qgn3nlNXHMOPU7YN2kQ2nqexfHdPPVI2nA==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=epam.com;
  • Cc: "xakep.amatop@xxxxxxxxx" <xakep.amatop@xxxxxxxxx>, Mykyta Poturai <Mykyta_Poturai@xxxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Julien Grall <julien@xxxxxxx>, Bertrand Marquis <bertrand.marquis@xxxxxxx>, Michal Orzel <michal.orzel@xxxxxxx>, Volodymyr Babchuk <Volodymyr_Babchuk@xxxxxxxx>
  • Delivery-date: Mon, 02 Feb 2026 16:14:43 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Thread-index: AQHclF8HJLYhUOMDJ0SUd+oWyr6vSg==
  • Thread-topic: [RFC PATCH 01/19] arm/gicv4 add management structure definitions

Add GICv4 specific structures to be used in later patches.

Signed-off-by: Mykyta Poturai <mykyta_poturai@xxxxxxxx>
---
 xen/arch/arm/include/asm/vgic.h | 43 +++++++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)

diff --git a/xen/arch/arm/include/asm/vgic.h b/xen/arch/arm/include/asm/vgic.h
index 6f9ab1c98c..a874a02d70 100644
--- a/xen/arch/arm/include/asm/vgic.h
+++ b/xen/arch/arm/include/asm/vgic.h
@@ -127,6 +127,42 @@ struct vgic_irq_rank {
     uint8_t vcpu[32];
 };
 
+#ifdef CONFIG_GICV4
+struct its_vm {
+    struct its_vpe **vpes;
+    /* Number of VPE. */
+    unsigned int nr_vpes;
+    uint32_t *db_lpi_bases;
+    unsigned int nr_db_lpis;
+    /* Property table per VM. */
+    void *vproptable;
+};
+
+struct its_vpe {
+    rwlock_t lock;
+    uint32_t vpe_id;
+    /* Pending table per VCPU. */
+    void *vpendtable;
+    uint32_t vpe_db_lpi;
+    struct its_vm *its_vm;
+    unsigned int col_idx;
+    bool resident;
+    /* Pending VLPIs on schedule out? */
+    bool            pending_last;
+    struct {
+        /* Implementation Defined Area Invalid */
+        bool idai;
+        /* VPE proxy mapping */
+        int vpe_proxy_event;
+    };
+    /*
+     * Ensure mutual exclusion between affinity setting of the vPE
+     * and vLPI operations using vpe->col_idx.
+     */
+    spinlock_t vpe_lock;
+};
+#endif
+
 struct vgic_dist {
     /* Version of the vGIC */
     enum gic_version version;
@@ -193,6 +229,10 @@ struct vgic_dist {
      */
     bool rdists_enabled;                /* Is any redistributor enabled? */
     bool has_its;
+#ifdef CONFIG_GICV4
+    struct its_vm *its_vm;
+#endif
+    bool nassgireq;
 #endif
 };
 
@@ -227,6 +267,9 @@ struct vgic_cpu {
 #define VGIC_V3_RDIST_LAST      (1 << 0)        /* last vCPU of the rdist */
 #define VGIC_V3_LPIS_ENABLED    (1 << 1)
     uint8_t flags;
+#ifdef CONFIG_GICV4
+    struct its_vpe *its_vpe;
+#endif
 };
 
 struct sgi_target {
-- 
2.51.2



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.