From patchwork Mon Jun 5 14:43:30 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Andrew Cooper X-Patchwork-Id: 13267418 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id C56C3C7EE2F for ; Mon, 5 Jun 2023 14:44:05 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.543741.848976 (Exim 4.92) (envelope-from ) id 1q6BQu-0005hd-65; Mon, 05 Jun 2023 14:43:44 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 543741.848976; Mon, 05 Jun 2023 14:43:44 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1q6BQu-0005hW-2k; Mon, 05 Jun 2023 14:43:44 +0000 Received: by outflank-mailman (input) for mailman id 543741; Mon, 05 Jun 2023 14:43:42 +0000 Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50] helo=se1-gles-flk1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1q6BQs-0005DU-Ft for xen-devel@lists.xenproject.org; Mon, 05 Jun 2023 14:43:42 +0000 Received: from esa3.hc3370-68.iphmx.com (esa3.hc3370-68.iphmx.com [216.71.145.155]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 5bf5652d-03af-11ee-8611-37d641c3527e; Mon, 05 Jun 2023 16:43:40 +0200 (CEST) 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: 5bf5652d-03af-11ee-8611-37d641c3527e DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1685976220; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=TqlnqsCULSQSOWgQEboaiyXvqCorlsa/KM/6ZxmZms0=; b=IxzM6j9UCUbQ5G6EA/pf3lpLcdpiu8whnoUNUXQavFQIrMHU2MiYbOrc 2CHDmERt3cACWAyQY7n7a/i48TsgkbSrqMHpHPEDLm0kuq4fAW11ghrFu jH9kYs1d5wpQOxPOlOa5JsKC9daPIGRCzPBBbfDvKNB9fi1UX94k2+xVc E=; Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none X-SBRS: 4.0 X-MesageID: 111652724 X-Ironport-Server: esa3.hc3370-68.iphmx.com X-Remote-IP: 162.221.156.123 X-Policy: $RELAYED IronPort-Data: A9a23:bq1a6aBlqIyCPxVW/6Djw5YqxClBgxIJ4kV8jS/XYbTApD12hWNTx msdWTyAPP6LazOnKY1wPN7k9xxVu5fUx9JiQQY4rX1jcSlH+JHPbTi7wuUcHAvJd5GeExg3h yk6QoOdRCzhZiaE/n9BCpC48T8nk/nOHuGmYAL9EngZbRd+Tys8gg5Ulec8g4p56fC0GArIs t7pyyHlEAbNNwVcbCRMs8pvlDs15K6p4G1A4gRnDRx2lAS2e0c9Xcp3yZ6ZdxMUcqEMdsamS uDKyq2O/2+x13/B3fv8z94X2mVTKlLjFVDmZkh+AsBOsTAbzsAG6Y4pNeJ0VKtio27hc+ada jl6ncfYpQ8BZsUgkQmGOvVSO3kW0aZuoNcrLZUj2CA6IoKvn3bEmp1T4E8K0YIw8OIqAF1As r8hFzkwUj+mrtyTkJW7Y7w57igjBJGD0II3v3hhyXfSDOo8QICFSKLPjTNa9G5u3IYUR6+YP pdHL2M1N3wsYDUWUrsTILs4kP2lmT/UdDpApUjOjaE2/3LS3Ep6172F3N/9I4XTG5gPwRzEz o7A10a+GzI8KdCe8CaczEuzt7DNnSXfRKtHQdVU8dY12QbOlwT/EiY+RVa95PW0lEO6c9ZeM FAPvDojq7Ao806mRcW7WAe3yFamlBMBX9tbE8Uh9RqAjKHT5m6xHXMYRzRMbNgnss4eRjEw0 FKN2dTzClRHr7m9WX+bsLCOoluaOzURLGIETT8JS00C+daLiL80ihXDX9NyCpmfh9f+GSzz6 z2SpS14jLIW5eYB2r+n51nBj3Spr4LQUw8uzgzNWySu6QYRTIyoYZfu9lnY6f9GIIuDZl2Au nEenI6Z9u9mMH2WvHXTGqNXRujvvqvbdmSG2jaDAqXN6Ryn/yOiQY4XowhBLXpVHeMtRxq5R 0/67FY5CIBoAFOmaqp+YoSUAssszLT9GdmNas04fuaicbAqKlbZoXgGiVq4mjm0zRNyyf1X1 YKzK57EMJoMNUhwINNarc852KRj+C0xzHi7qXvTn0X+iur2iJJ4pN443LqyggIRtvjsTOb9q Yw32y62J/J3DoXDjtH/q9J7ELzzBSFT6WrKg8JWbPWfBQFtBXssDfTcqZt4Jdw4zvwOy7eUo C7jMqO99LYYrSeeQThml1g5MO+/NXqBhSxT0dMQ0aaAhCF4PNfHAFY3fJorZ7g3nNGPPtYtJ 8Tpj/6oW6wVIhyeomR1UHUIhNA6HPhdrV7UbnXNjflWV8IIejElDfe9IlO2pHhWUnvu3Sb8y pX5vj7mrVM4b1wKJK7rhDiHljtdYVB1dDpOYnb1 IronPort-HdrOrdr: A9a23:tIaBOqieQGqNgu18zrpnzRCRKXBQXgoji2hC6mlwRA09TyX+rb HUoB17726NtN91YhpLpTnuAsS9qAznlaKdjbN/AV7aZniFhILKFvAa0WKB+Vzd8nbFh4tgPM 5bGsBD4bbLY2SS4/yX3OCzKadC/PC3tICun/rXyH1gJDsaDZ2JkmpCe2Gm+0RNNXN7LKt8Lp aa+455pzLIQwVyUviG X-Talos-CUID: 9a23:/MXP9Wwm+0vjbTbL9VFqBgUeHp0kTnOaj07vKnKEJkNAdpjFbl+5rfY= X-Talos-MUID: 9a23:3fdArwlZQuE8i5UbS79ddnpAc95LxbmiCXkRiKs/pPjbNyx2Hyu02WE= X-IronPort-AV: E=Sophos;i="6.00,217,1681185600"; d="scan'208";a="111652724" From: Andrew Cooper To: Xen-devel CC: Andrew Cooper , Jan Beulich , =?utf-8?q?Roger_Pau_Monn=C3=A9?= , Wei Liu , Stefano Stabellini , Julien Grall , Volodymyr Babchuk , Bertrand Marquis , Jens Wiklander Subject: [PATCH 1/2] x86: Introduce arch_domain_teardown() Date: Mon, 5 Jun 2023 15:43:30 +0100 Message-ID: <20230605144331.1819452-2-andrew.cooper3@citrix.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20230605144331.1819452-1-andrew.cooper3@citrix.com> References: <20230605144331.1819452-1-andrew.cooper3@citrix.com> MIME-Version: 1.0 Plumb it into domain_teardown(). Provide arch_val in the teardown continuation information for use by arch_domain_teardown(). No practical change. Signed-off-by: Andrew Cooper Acked-by: Jan Beulich --- CC: Jan Beulich CC: Roger Pau Monné CC: Wei Liu CC: Stefano Stabellini CC: Julien Grall CC: Volodymyr Babchuk CC: Bertrand Marquis CC: Jens Wiklander --- xen/arch/arm/domain.c | 5 +++++ xen/arch/x86/domain.c | 5 +++++ xen/common/domain.c | 6 ++++++ xen/include/xen/domain.h | 1 + xen/include/xen/sched.h | 1 + 5 files changed, 18 insertions(+) diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c index d8ef6501ff8e..b3981d70a442 100644 --- a/xen/arch/arm/domain.c +++ b/xen/arch/arm/domain.c @@ -750,6 +750,11 @@ int arch_domain_create(struct domain *d, return rc; } +int arch_domain_teardown(struct domain *d) +{ + return 0; +} + void arch_domain_destroy(struct domain *d) { /* IOMMU page table is shared with P2M, always call diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c index 39c215316546..5f66c2ae33d7 100644 --- a/xen/arch/x86/domain.c +++ b/xen/arch/x86/domain.c @@ -888,6 +888,11 @@ int arch_domain_create(struct domain *d, return rc; } +int arch_domain_teardown(struct domain *d) +{ + return 0; +} + void arch_domain_destroy(struct domain *d) { if ( is_hvm_domain(d) ) diff --git a/xen/common/domain.c b/xen/common/domain.c index 6a440590fe2a..b0d850e3595b 100644 --- a/xen/common/domain.c +++ b/xen/common/domain.c @@ -416,6 +416,7 @@ static int domain_teardown(struct domain *d) PROG_none, PROG_gnttab_mappings, PROG_vcpu_teardown, + PROG_arch_teardown, PROG_done, }; @@ -436,6 +437,11 @@ static int domain_teardown(struct domain *d) return rc; } + PROGRESS(arch_teardown): + rc = arch_domain_teardown(d); + if ( rc ) + return rc; + PROGRESS(done): break; diff --git a/xen/include/xen/domain.h b/xen/include/xen/domain.h index 26f9c4f6dd5b..c3348c90748f 100644 --- a/xen/include/xen/domain.h +++ b/xen/include/xen/domain.h @@ -80,6 +80,7 @@ int arch_domain_create(struct domain *d, struct xen_domctl_createdomain *config, unsigned int flags); +int arch_domain_teardown(struct domain *d); void arch_domain_destroy(struct domain *d); void arch_domain_shutdown(struct domain *d); diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h index 85242a73d374..854f3e32c00e 100644 --- a/xen/include/xen/sched.h +++ b/xen/include/xen/sched.h @@ -589,6 +589,7 @@ struct domain */ struct { unsigned int val; + unsigned int arch_val; struct vcpu *vcpu; } teardown; From patchwork Mon Jun 5 14:43:31 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Cooper X-Patchwork-Id: 13267419 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id DAEB0C77B73 for ; Mon, 5 Jun 2023 14:44:06 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.543740.848966 (Exim 4.92) (envelope-from ) id 1q6BQs-0005Sb-Ub; Mon, 05 Jun 2023 14:43:42 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 543740.848966; Mon, 05 Jun 2023 14:43:42 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1q6BQs-0005SU-RX; Mon, 05 Jun 2023 14:43:42 +0000 Received: by outflank-mailman (input) for mailman id 543740; Mon, 05 Jun 2023 14:43:41 +0000 Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50] helo=se1-gles-flk1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1q6BQr-0005DU-4z for xen-devel@lists.xenproject.org; Mon, 05 Jun 2023 14:43:41 +0000 Received: from esa3.hc3370-68.iphmx.com (esa3.hc3370-68.iphmx.com [216.71.145.155]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 5bddc795-03af-11ee-8611-37d641c3527e; Mon, 05 Jun 2023 16:43:39 +0200 (CEST) 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: 5bddc795-03af-11ee-8611-37d641c3527e DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1685976219; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=jGBoLlQik/DdUsmblsNJ1iLT3fecu+Jt0ccxIilExLg=; b=JXSp2pvlJIgbLamxHtaENRUvs+Y9qnptAa/IyubpEgzF0LpEaGt3LfUG WpUpIc92BBWHOONW+kJPn7zILfiXss1BJWPlaqvJksoASDisSlOjlEL5o pAJZnva4lY4WAUTtpKoyKlg4A7ZnSME+qs9Vjd9WVd5kEe1EmJTIMNHH6 Q=; Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none X-SBRS: 4.0 X-MesageID: 111652720 X-Ironport-Server: esa3.hc3370-68.iphmx.com X-Remote-IP: 162.221.156.123 X-Policy: $RELAYED IronPort-Data: A9a23:6ihxxKP22eyT3jjvrR1Nl8FynXyQoLVcMsEvi/4bfWQNrUoggT0Cm 2BLD26OaPrfMDGmc9h0b9638kMEsZWGzN5nHgto+SlhQUwRpJueD7x1DKtS0wC6dZSfER09v 63yTvGacajYm1eF/k/F3oDJ9CU6jufQAOKnUoYoAwgpLSd8UiAtlBl/rOAwh49skLCRDhiE/ Nj/uKUzAnf8s9JPGjxSs/rrRC9H5qyo42tG5gBmPJingXeF/5UrJMNHTU2OByOQrrl8RoaSW +vFxbelyWLVlz9F5gSNy+uTnuUiG9Y+DCDW4pZkc/HKbitq/0Te5p0TJvsEAXq7vh3S9zxHJ HehgrTrIeshFvWkdO3wyHC0GQkmVUFN0OevzXRSLaV/ZqAJGpfh66wGMa04AWEX0uxzXGBy+ 7tbEQ8EUyysosuI5eKcSsA506zPLOGzVG8eknRpzDWfBvc6W5HTBa7N4Le03h9p2JoIR6yHI ZNEN3w2Nk+ojx5nYz/7DLoXmuuyi2a5WDpfsF+P/oI84nTJzRw327/oWDbQUoXTHJsIxBnC/ goq+Uz+WU5GMdO58QGDsWK3gN6S2i/cXrArQejQGvlC3wTImz175ActfUu2p7y1h1CzX/pbK lcI4Ww+oK4q7kupQ9LhGRqirxaspQUAUtBdF+k77gClyafO5QudQG8eQVZpasEitcIwbSwn0 BmOhdyBLQJotLqZWHeM7IC+pDm5OTUWBWIabCpCRgwAi/HprZsvlBvJQpBmGbSsk9zuMTjqx naBqy1Wr7cei9VNyKS4+VnBjz+2jpzISAcv4UPQRG3N0+9iTNf7PcryswGdtKseat/DFTFto UToheCU6L0PMZ/K1xWySdgxM5SA2dPVFz311AsH84Yayxyh/HuqfIZ16T54JVt0PstsRQIFc HM/qisKusYNYSLCgbtfJtvoVp90lfSI+cHNDKi8UzZYXnRmmOZrFglKbFXY4W3imVNEfUoXa cbCKpbE4Zr35M1aINuKqwU1i+RDKsMWnzm7qXXHI/OPj9KjiIa9E+ttDbd3RrlRAFm4iAvU6 c1DEMCB1g9SVubzCgGOr95OfAhRcChnW8+owyCySgJkClA/cFzN9teLme9xE2Cbt/o9ehj0E oGVBRYDlQuXaYzvIgSWcHFzAI4Drr4mxU/XyRcEZA7ys1B6ONbH0UvqX8dvFVXR3LA5nKEco jhsU5noP8mjvRyep2xEPcil8N07HPlp7CrXVxeYjPEEV8YIb2T0FhXMJ2MDKAFm4vKLiPYD IronPort-HdrOrdr: A9a23:MmAZR6CyPNHqgF/lHel855DYdb4zR+YMi2TDsHoBMiC9E/bo7/ xG+c5xvyMc5wx9ZJheo7C90cW7Lk80jKQFg7X5Xo3SJTUO2lHIEGg41/qG/9SIIUSXygc378 ldmsZFZOEYB2IK7vrS0U2ZFMw8yN6M/MmT9IHjJwoBd3AMV0ho1XYCNi+rVnd7QxQDOpowfa DsgvZ6mw== X-Talos-CUID: 9a23:f09GgG7kEr0wUFQ3Mdss/kpJG/wrNT7k837tH2CdIFhMGJqVYArF X-Talos-MUID: 9a23:nt0oXgyATgB5ptY9uSPA5s5WgG+aqKP1VxwInrM+gM/HJTd2CmragBOxcLZyfw== X-IronPort-AV: E=Sophos;i="6.00,217,1681185600"; d="scan'208";a="111652720" From: Andrew Cooper To: Xen-devel CC: Andrew Cooper , Stefano Stabellini , Julien Grall , Volodymyr Babchuk , Bertrand Marquis , Jens Wiklander Subject: [PATCH 2/2] arm: Boilerpate arch_domain_teardown() Date: Mon, 5 Jun 2023 15:43:31 +0100 Message-ID: <20230605144331.1819452-3-andrew.cooper3@citrix.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20230605144331.1819452-1-andrew.cooper3@citrix.com> References: <20230605144331.1819452-1-andrew.cooper3@citrix.com> MIME-Version: 1.0 XXX to be filled in with TEE teardown. Signed-off-by: Andrew Cooper --- CC: Stefano Stabellini CC: Julien Grall CC: Volodymyr Babchuk CC: Bertrand Marquis CC: Jens Wiklander Jens: In the same was as the previous patch in the common path, you want to add a PROG_tee(?) here, and rearrange the right function(s). --- xen/arch/arm/domain.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c index b3981d70a442..b00d0e4f30b7 100644 --- a/xen/arch/arm/domain.c +++ b/xen/arch/arm/domain.c @@ -752,6 +752,33 @@ int arch_domain_create(struct domain *d, int arch_domain_teardown(struct domain *d) { + BUG_ON(!d->is_dying); + + /* See domain_teardown() for an explanation of all of this magic. */ + switch ( d->teardown.arch_val ) + { +#define PROGRESS(x) \ + d->teardown.arch_val = PROG_ ## x; \ + fallthrough; \ + case PROG_ ## x + + enum { + PROG_none, + PROG_done, + }; + + case PROG_none: + BUILD_BUG_ON(PROG_none != 0); + + PROGRESS(done): + break; + +#undef PROGRESS + + default: + BUG(); + } + return 0; }