[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v8 08/13] iommu/ipmmu-vmsa: Implement suspend/resume callbacks
- To: Mykola Kvach <xakep.amatop@xxxxxxxxx>
- From: Luca Fancellu <Luca.Fancellu@xxxxxxx>
- Date: Fri, 24 Apr 2026 13:34:59 +0000
- Accept-language: en-GB, en-US
- Arc-authentication-results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 4.158.2.129) smtp.rcpttodomain=gmail.com smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com] dmarc=[1,1,header.from=arm.com])
- Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none
- Arc-message-signature: i=2; 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=bmy7HzYXvJ10sD3XGH84NxdNdHKo+kCSSsl5RHAIIog=; b=N7FNqlSdHvdq7RFcwq7A2e04VOCT5CV2VMYB+A2KSiBtaptUq2Mtd2wJ/x1Nt/EtNndLd77yYmWY6gfdcaeuY6erYXRp/6B03YVkrs7D9ctDw8vAL3l3xju034Xfz4YpGBJpY6JgFm9J5dZaoNaAYRdrJ6zohnCdMW+lneoHTJCR4bf34LiZd+n8UHmEvELGpuREy6Pj/HLL1disE8PWtUOUqyqQCNhzPtLPxzZXEEmMcPLK/Ftiv7IAxKsG7kMKXqnqXGxT5E0FJyIlkGKwqpT1MDxRG3NF6djaNJO45ncIi16HToyiHA/fJgKpQjrLKQ8Xj/KP1zXuXCiyb+4jQg==
- 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=bmy7HzYXvJ10sD3XGH84NxdNdHKo+kCSSsl5RHAIIog=; b=TZs7HNrvd7WCYeOo4gN6Hh92X+Akt9eH6/FkG3NFURUW5qOrW8wfIMr5ZujydyUgLgZq25fVNG7nyInF2fgnMbCnNasJ5B2OECeSR8sc7SgGR6J2WwKv9nQQMgXz+Y5mLSh+gDV3Q4MMvQKZLa8xHj54T5nw3cdOhw5vNR8V8Q1Kv47lAjRrvNdyvNIIJNQCsFcCQTGQQlre8dcHFoBvnw1zX5siEaj7RHTuzzk1fC/6BrrTW7Eus4m1O7/BAMtsP22pk6MVHfN1/Yqkeaot526vCaX+IOXkPfdB2aZZlWKJhUd2Z4MZUqoYz81AubysXQoICrMPioZhFq2LneTkTQ==
- Arc-seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=pCfx8Mw3Boe/sE1PCHtPeInu9ELWFJxG0FDiYKb+IECeAiPiMM3Ax/CnW2EvjyKTD96oLxjt3aARPQ1CrIkSfadkSUSB6R6mv7rqO0nzBdgeREgUzsxWH0NKFOA1mXD2AAvN4I+dl0di/X3UfrarjaPnKZwaZi7fb5ExIAejIZ6AyZn5YYxicILm5Igc2Ys2uZSjlSj1z2KYsKkK8pflxAOERVmPrpvZCG2mcH7pMb+Tj6kiN7yUwC/7UtISJDf3XkQ2kHN5Dbl45sI/QidAaoBOSzyjvFRybZJfIGad+JYQA1z88cyeZmBbmOwxBAfj8f1UnA8+9HObi5ItUnltmw==
- Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Faj4Z16snzJOt/egmzQYE8d6D20uF+3/dlEdQ0iX/kTkgY1uIu8MDZvFl87DoZAADkJ0cxS/OEUn/E8I5aCD0wVOZXliVBiGFOw1Ddc7JJb6RbpSWisnMhBi+WaveOuFAhoOyvNWdS5Z71ZHxExx8IS7ne6PZ2hZ+YRx60Bd4k5LCSh2+b71lcG1DTNGSpSAF9kNW/yS0YTrkz5YPBWH0qxAXx1yC3rI+PeFeqtpT3yS9Yaw09JqnS4xrvvhB2Bq6c1mruu7+QuE53v+PT2xsUp+onRrOqVjXgf02q/WiXX+AsTNR5dSC+jXEBsnQTVXxjRdDKIP0Nqn4prJ8zknHQ==
- Authentication-results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=arm.com header.i="@arm.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"; dkim=pass header.s=selector1 header.d=arm.com header.i="@arm.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
- Authentication-results-original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com;
- Cc: "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>, Mykola Kvach <mykola_kvach@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: Fri, 24 Apr 2026 13:36:23 +0000
- List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
- Nodisclaimer: true
- Thread-index: AQHc0+8l3+I00g5Ym0qFHM3WPj8anQ==
- Thread-topic: [PATCH v8 08/13] iommu/ipmmu-vmsa: Implement suspend/resume callbacks
Hi Mykola,
> On 2 Apr 2026, at 11:45, Mykola Kvach <xakep.amatop@xxxxxxxxx> wrote:
>
> From: Oleksandr Tyshchenko <oleksandr_tyshchenko@xxxxxxxx>
>
> Store and restore active context and micro-TLB registers.
>
> Tested on R-Car H3 Starter Kit.
>
> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@xxxxxxxx>
> Signed-off-by: Mykola Kvach <mykola_kvach@xxxxxxxx>
> ---
> Changes in V7:
> - moved suspend context allocation before pci stuff
> ---
> xen/drivers/passthrough/arm/ipmmu-vmsa.c | 305 ++++++++++++++++++++++-
> 1 file changed, 298 insertions(+), 7 deletions(-)
>
> diff --git a/xen/drivers/passthrough/arm/ipmmu-vmsa.c
> b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
> index ea9fa9ddf3..6765bd3083 100644
> --- a/xen/drivers/passthrough/arm/ipmmu-vmsa.c
> +++ b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
> @@ -71,6 +71,8 @@
> })
> #endif
>
> +#define dev_dbg(dev, fmt, ...) \
> + dev_print(dev, XENLOG_DEBUG, fmt, ## __VA_ARGS__)
> #define dev_info(dev, fmt, ...) \
> dev_print(dev, XENLOG_INFO, fmt, ## __VA_ARGS__)
> #define dev_warn(dev, fmt, ...) \
> @@ -130,6 +132,24 @@ struct ipmmu_features {
> unsigned int imuctr_ttsel_mask;
> };
>
> […]
>
> @@ -1340,10 +1608,11 @@ static int ipmmu_add_device(u8 devfn, struct device
> *dev)
> struct iommu_fwspec *fwspec;
>
> #ifdef CONFIG_HAS_PCI
> + int ret;
> +
> if ( dev_is_pci(dev) )
> {
> struct pci_dev *pdev = dev_to_pci(dev);
> - int ret;
>
> if ( devfn != pdev->devfn )
> return 0;
> @@ -1371,6 +1640,15 @@ static int ipmmu_add_device(u8 devfn, struct device
> *dev)
> /* Let Xen know that the master device is protected by an IOMMU. */
> dt_device_set_protected(dev_to_dt(dev));
> }
> +
> +#ifdef CONFIG_SYSTEM_SUSPEND
> + if ( ipmmu_alloc_ctx_suspend(dev) )
> + {
> + dev_err(dev, "Failed to allocate context for suspend\n");
> + return -ENOMEM;
> + }
> +#endif
If this fails the device will remain protected, I suggest we move this one
before `if ( !dev_is_pci(dev) ) { … }`
block
The rest looks ok to me, but I’m not an expert of this part.
Cheers,
Luca
|