From nobody Mon Feb 9 08:10:00 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=reject dis=none) header.from=citrix.com ARC-Seal: i=1; a=rsa-sha256; t=1632159314; cv=none; d=zohomail.com; s=zohoarc; b=O3uoz9wRMauuLNk8QhAn0IV36muHEZrCHXarIulxuKMwO58TMqfnWLN6f5OzHYmnd1/+0mO77+sUYm1ATeGT+EpGmBx/TT8pZlVkVr8nGl6FtqYbhig/RMHr60LHSG+Yb1a0pd2CMErSy5KjncSe6lkqrs/wuRKjiDPi3rIb6DA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1632159314; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=5ACZEHvwFlCPilr4WDqWJmun623qRhsu2ZEH4PyTiRY=; b=a4R0+6o+JP2fvs9RyzyrSB8HNhwhWNxT+1USizHeVUVbh40OLaodPGbPA/UxPMw3NE4G79uUjiOKYDv4pbnoU9GclPHYYYSjy+BJBB3TUvhMZebVWUgXX0BRU8PxDTcpSlN7FJmt6G4c6K2RQnw6o554W1vntjedm9HGujfwHdE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1632159314762835.3748736213782; Mon, 20 Sep 2021 10:35:14 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.191095.341029 (Exim 4.92) (envelope-from ) id 1mSNC2-0003CF-R7; Mon, 20 Sep 2021 17:35:02 +0000 Received: by outflank-mailman (output) from mailman id 191095.341029; Mon, 20 Sep 2021 17:35:02 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1mSNC2-0003C8-ME; Mon, 20 Sep 2021 17:35:02 +0000 Received: by outflank-mailman (input) for mailman id 191095; Mon, 20 Sep 2021 17:35:01 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1mSNC1-0002pz-NW for xen-devel@lists.xenproject.org; Mon, 20 Sep 2021 17:35:01 +0000 Received: from esa5.hc3370-68.iphmx.com (unknown [216.71.155.168]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 119f6c43-1a39-11ec-b87a-12813bfff9fa; Mon, 20 Sep 2021 17:34:56 +0000 (UTC) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 119f6c43-1a39-11ec-b87a-12813bfff9fa DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1632159296; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=GcABwI8oWHgu530a+/KgqxWauKwNAPSdO5EboEi94Ao=; b=Yg74MBquc/o5k5Q+yVrZvcVvjRK6IaWTq3GXWJg/cxo700e/cQfaB535 qRKIzxVl1FmHmj4j7l+zh5Xz4mEubpEHGRaVggUNvsn53PBBSl4vor6yq unpP3XxHiS5qmtJXwUhJCvatk5daTcQ4bJkRxGjhxcjhiO/JNjG5v3ljb c=; Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none IronPort-SDR: P7famdpIYSd9Iat7FzhqXhX4HUaZbz0EeCQRaQ6rqyFmwr5Za3YaAPyV85GzKrtJQ9tu5bJl42 RWVeXfrsmVfZfnTu7+4KmVQ2weBwttctvKGxwvm8JsPlsch+c4pgYAi4Kfj46ORWsLxZT2SWXG 0XP/YPlEZ+z0Sh/xibisxBH9+J9OS2VSH93KzVr/acBK4a4l6A84U1zZJmLO8lxvCw8aExVx3C xI0WocMQ1MB1IhLy/QX/L0zYgZgNJ83cB/CziO4B4k1sDumXMDRtXm4qL8BpP5aZLB9Viore6k Wkzi1RxUY9KpossjblwH6mP/ X-SBRS: 5.1 X-MesageID: 52741880 X-Ironport-Server: esa5.hc3370-68.iphmx.com X-Remote-IP: 162.221.156.83 X-Policy: $RELAYED IronPort-Data: A9a23:/bhr6KxIECZE6TC6NVJ6t+cvwSrEfRIJ4+MujC+fZmUNrF6WrkUHz GVJX22BPfqJZWChedgna47noBwD7J6Gn9NrHgo+rCAxQypGp/SeCIXCJC8cHc8zwu4v7q5Dx 59DAjUVBJlsFhcwnvopW1TYhSEUOZugH9IQM8aZfHAsLeNYYH1500s7yrRh2tUAbeWRWGthh /uj+6UzB3f9s9JEGjp8B3Wr8U4HUFza4Vv0j3RmDRx5lAa2e0o9VfrzEZqZPXrgKrS4K8bhL wr1IBNVyUuCl/slIovNfr8W6STmSJaKVeSFoiI+t6RPHnGuD8H9u0o2HKN0VKtZt9mGt4tr5 8sWsKOgdSd3Br/JmuI6QgRpTRgraMWq+JefSZS+mcmazkmAeHrw2fR+SkoxOOX0+M4uXzsIr 6ZBbmlQMFbT3Ipaw5riIgVoru0lINPmI8U0vXZ4wCuCJf0nXYrCU+PB4towMDIY25oRQa+ON 5JxhTxHZwXcaRsRHnAtVYNjxtmUtmDVI21RkQfAzUYwyzeKl1EguFT3C/LKfvSaSMMTmVyXz krk1WnkBhARNPSE1CGItHmrg4fnjS79HY4fCrC83vprm0GIgHweDgUMUlm2quX/jVSxM++zM GRNpHBo9/JrshX2EJ+tBHVUvUJooDZHQfVOSOgF+D2tlJLG5gSfIXkZf2B4PYlOWNANedA66 rOYt4q3XmU/6+zEESj1GqS89mzpaHNMRYMWTWpdF1JUvYO7yG0mpk+XFr5e/LiJYsoZ8N0a6 wuDqjQ3z54XhNQCv0lQ1QGa22/wznQlowhc2+k2Yo5HxlgiDGJGT9bxgbQ+0RqnBNzCJmRtR FBex6CjABkmVPlhbhBhpdnh+5nyvZ643MD02wYzT/HNCRz0oyPLkX9sDMFWex4yb5dslc7BS 07PowJBjKK/z1PzNvQfXm5FMOxzlfKIPY28Dpj8N4MSCrAsJF7v1Hw/Pia4gjGy+HXAZIliY P93h+73Vi1EYUmmpRLrL9ogPUgDnHFmmTyLGsClkHxKE9O2PRaodFvMC3PWBshR0U9OiFS9H w93O5TYxhNBfvf5ZyWLo4cfIUpTdSowBIzsqtwRfemGe1I0FGYkAv7X4LUgZ406wPgFyraWp imwCh1C1V7ypXzbMgHWOHptX6ziAMRkpnUhMC1yYVvxgyo/YZyi5bs0focseeV17/RqyPN5F qFXe8iJDvlVZC7A/jARMcv0oIB4LUz5jgOSJSu1JjM4esc4FQDO/9bleCrp9TUPUXXr5Zdv/ eX421qCE5QZRglkAMLHU96Vzgu87SoHheZ/f0rUOd0PKk/ix5dndn7qhfgtLsBSdRianmmG1 xybCAszrPXWp9Nn68HAgK2Jotv7E+Z6GUYGTWDX4azvaHvf92unh4RBTPyJbXbWU2atoPeuY uBczvfdNvwbnQkV79ogQugzla9utcHyo7J6zxh/GCSZZlumPbpsP32a0JQdraZK3LJY5VO7V 0/nFgO24llV1BcJyGIsGTc= IronPort-HdrOrdr: A9a23:c5rIWqCFmITTuWvlHemU55DYdb4zR+YMi2TC1yhKJyC9Ffbo7v xG/c5rsyMc5wxwZJhNo7y90ey7MBbhHP1OkO4s1NWZLWrbUQKTRekIh+bfKn/baknDH4ZmpN 9dmsNFaeEYY2IUsS+D2njbL+od X-IronPort-AV: E=Sophos;i="5.85,309,1624334400"; d="scan'208";a="52741880" From: Andrew Cooper To: Xen-devel CC: Andrew Cooper , Jan Beulich , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , Wei Liu Subject: [PATCH v2 12/12] x86/trace: Clean up trace handling Date: Mon, 20 Sep 2021 18:25:29 +0100 Message-ID: <20210920172529.24932-13-andrew.cooper3@citrix.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20210920172529.24932-1-andrew.cooper3@citrix.com> References: <20210920172529.24932-1-andrew.cooper3@citrix.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @citrix.com) X-ZM-MESSAGEID: 1632159315887100001 Use more appropriate types. Signed-off-by: Andrew Cooper Reviewed-by: Jan Beulich --- CC: Jan Beulich CC: Roger Pau Monn=C3=A9 CC: Wei Liu v2: * New --- xen/arch/x86/irq.c | 4 +- xen/arch/x86/mm/p2m-pt.c | 6 +- xen/arch/x86/mm/shadow/multi.c | 2 +- xen/arch/x86/pv/trace.c | 159 +++++++++++++++++++------------------= ---- 4 files changed, 78 insertions(+), 93 deletions(-) diff --git a/xen/arch/x86/irq.c b/xen/arch/x86/irq.c index a1693f92dd92..67cbf6b979dc 100644 --- a/xen/arch/x86/irq.c +++ b/xen/arch/x86/irq.c @@ -130,8 +130,8 @@ static void _trace_irq_mask(uint32_t event, int irq, in= t vector, const cpumask_t *mask) { struct { - unsigned int irq:16, vec:16; - unsigned int mask[6]; + uint16_t irq, vec; + uint32_t mask[6]; } d =3D { .irq =3D irq, .vec =3D vector, diff --git a/xen/arch/x86/mm/p2m-pt.c b/xen/arch/x86/mm/p2m-pt.c index 5a0c0f5aceff..09c99d78aa40 100644 --- a/xen/arch/x86/mm/p2m-pt.c +++ b/xen/arch/x86/mm/p2m-pt.c @@ -609,9 +609,9 @@ p2m_pt_set_entry(struct p2m_domain *p2m, gfn_t gfn_, mf= n_t mfn, if ( tb_init_done ) { struct { - u64 gfn, mfn; - int p2mt; - int d:16,order:16; + uint64_t gfn, mfn; + uint32_t p2mt; + uint16_t d, order; } t; =20 t.gfn =3D gfn; diff --git a/xen/arch/x86/mm/shadow/multi.c b/xen/arch/x86/mm/shadow/multi.c index 8bb028c2e2fa..15265fc81dca 100644 --- a/xen/arch/x86/mm/shadow/multi.c +++ b/xen/arch/x86/mm/shadow/multi.c @@ -2118,7 +2118,7 @@ static inline void trace_shadow_emulate(guest_l1e_t g= l1e, unsigned long va) so put it first for alignment sake. */ guest_l1e_t gl1e, write_val; guest_va_t va; - unsigned flags:29, emulation_count:3; + uint32_t flags:29, emulation_count:3; } d; u32 event; =20 diff --git a/xen/arch/x86/pv/trace.c b/xen/arch/x86/pv/trace.c index 550c22765bae..a952fbc1eb0f 100644 --- a/xen/arch/x86/pv/trace.c +++ b/xen/arch/x86/pv/trace.c @@ -7,38 +7,35 @@ void __trace_pv_trap(int trapnr, unsigned long eip, { if ( is_pv_32bit_vcpu(current) ) { - struct __packed { - unsigned eip:32, - trapnr:15, - use_error_code:1, - error_code:16; - } d; - - d.eip =3D eip; - d.trapnr =3D trapnr; - d.error_code =3D error_code; - d.use_error_code=3D!!use_error_code; + struct { + uint32_t eip; + uint16_t trapnr:15; + bool use_error_code:1; + uint16_t error_code; + } d =3D { + .eip =3D eip, + .trapnr =3D trapnr, + .use_error_code =3D use_error_code, + .error_code =3D error_code, + }; =20 __trace_var(TRC_PV_TRAP, 1, sizeof(d), &d); } else { struct __packed { - unsigned long eip; - unsigned trapnr:15, - use_error_code:1, - error_code:16; - } d; - unsigned event; - - d.eip =3D eip; - d.trapnr =3D trapnr; - d.error_code =3D error_code; - d.use_error_code=3D!!use_error_code; - - event =3D TRC_PV_TRAP; - event |=3D TRC_64_FLAG; - __trace_var(event, 1, sizeof(d), &d); + uint64_t rip; + uint16_t trapnr:15; + bool use_error_code:1; + uint16_t error_code; + } d =3D { + .rip =3D eip, + .trapnr =3D trapnr, + .use_error_code =3D use_error_code, + .error_code =3D error_code, + }; + + __trace_var(TRC_PV_TRAP | TRC_64_FLAG, 1, sizeof(d), &d); } } =20 @@ -48,30 +45,28 @@ void __trace_pv_page_fault(unsigned long addr, unsigned= error_code) =20 if ( is_pv_32bit_vcpu(current) ) { - struct __packed { - u32 eip, addr, error_code; - } d; - - d.eip =3D eip; - d.addr =3D addr; - d.error_code =3D error_code; + struct { + uint32_t eip, addr, error_code; + } d =3D { + .eip =3D eip, + .addr =3D addr, + .error_code =3D error_code, + }; =20 __trace_var(TRC_PV_PAGE_FAULT, 1, sizeof(d), &d); } else { struct __packed { - unsigned long eip, addr; - u32 error_code; - } d; - unsigned event; - - d.eip =3D eip; - d.addr =3D addr; - d.error_code =3D error_code; - event =3D TRC_PV_PAGE_FAULT; - event |=3D TRC_64_FLAG; - __trace_var(event, 1, sizeof(d), &d); + uint64_t eip, addr; + uint32_t error_code; + } d =3D { + .eip =3D eip, + .addr =3D addr, + .error_code =3D error_code, + }; + + __trace_var(TRC_PV_PAGE_FAULT | TRC_64_FLAG, 1, sizeof(d), &d); } } =20 @@ -83,10 +78,7 @@ void __trace_trap_one_addr(unsigned event, unsigned long= va) __trace_var(event, 1, sizeof(d), &d); } else - { - event |=3D TRC_64_FLAG; - __trace_var(event, 1, sizeof(va), &va); - } + __trace_var(event | TRC_64_FLAG, 1, sizeof(va), &va); } =20 void __trace_trap_two_addr(unsigned event, unsigned long va1, @@ -94,22 +86,25 @@ void __trace_trap_two_addr(unsigned event, unsigned lon= g va1, { if ( is_pv_32bit_vcpu(current) ) { - struct __packed { - u32 va1, va2; - } d; - d.va1=3Dva1; - d.va2=3Dva2; + struct { + uint32_t va1, va2; + } d =3D { + .va1 =3D va1, + .va2 =3D va2, + }; + __trace_var(event, 1, sizeof(d), &d); } else { - struct __packed { - unsigned long va1, va2; - } d; - d.va1=3Dva1; - d.va2=3Dva2; - event |=3D TRC_64_FLAG; - __trace_var(event, 1, sizeof(d), &d); + struct { + uint64_t va1, va2; + } d =3D { + .va1 =3D va1, + .va2 =3D va2, + }; + + __trace_var(event | TRC_64_FLAG, 1, sizeof(d), &d); } } =20 @@ -117,40 +112,30 @@ void __trace_ptwr_emulation(unsigned long addr, l1_pg= entry_t npte) { unsigned long eip =3D guest_cpu_user_regs()->rip; =20 - /* We have a couple of different modes to worry about: - * - 32-on-32: 32-bit pte, 32-bit virtual addresses - * - pae-on-pae, pae-on-64: 64-bit pte, 32-bit virtual addresses - * - 64-on-64: 64-bit pte, 64-bit virtual addresses - * pae-on-64 is the only one that requires extra code; in all other - * cases, "unsigned long" is the size of a guest virtual address. - */ - if ( is_pv_32bit_vcpu(current) ) { - struct __packed { - l1_pgentry_t pte; - u32 addr, eip; - } d; - d.addr =3D addr; - d.eip =3D eip; - d.pte =3D npte; + struct { + uint64_t pte; + uint32_t addr, eip; + } d =3D { + .pte =3D l1e_get_intpte(npte), + .addr =3D addr, + .eip =3D eip, + }; =20 __trace_var(TRC_PV_PTWR_EMULATION_PAE, 1, sizeof(d), &d); } else { struct { - l1_pgentry_t pte; - unsigned long addr, eip; - } d; - unsigned event; - - d.addr =3D addr; - d.eip =3D eip; - d.pte =3D npte; - - event =3D TRC_PV_PTWR_EMULATION; - event |=3D TRC_64_FLAG; - __trace_var(event, 1/*tsc*/, sizeof(d), &d); + uint64_t pte; + uint64_t addr, rip; + } d =3D { + .pte =3D l1e_get_intpte(npte), + .addr =3D addr, + .rip =3D eip, + }; + + __trace_var(TRC_PV_PTWR_EMULATION | TRC_64_FLAG, 1, sizeof(d), &d); } } --=20 2.11.0