From: Shameerali Kolothum Thodi <shameerali.kolothum.thodi@huawei.com>
To: Jason Gunthorpe <jgg@nvidia.com>
Cc: "iommu@lists.linux.dev" <iommu@lists.linux.dev>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"robin.murphy@arm.com" <robin.murphy@arm.com>,
"will@kernel.org" <will@kernel.org>,
"joro@8bytes.org" <joro@8bytes.org>,
"kevin.tian@intel.com" <kevin.tian@intel.com>,
"nicolinc@nvidia.com" <nicolinc@nvidia.com>,
"mshavit@google.com" <mshavit@google.com>,
"eric.auger@redhat.com" <eric.auger@redhat.com>,
"joao.m.martins@oracle.com" <joao.m.martins@oracle.com>,
jiangkunkun <jiangkunkun@huawei.com>,
zhukeqian <zhukeqian1@huawei.com>, Linuxarm <linuxarm@huawei.com>
Subject: RE: [PATCH 5/5] iommu/arm-smmu-v3: Enforce dirty tracking in domain attach/alloc
Date: Thu, 30 Nov 2023 09:01:29 +0000 [thread overview]
Message-ID: <eea35935ad164a9cb65d0c0cbda5d464@huawei.com> (raw)
In-Reply-To: <20231129194850.GD436702@nvidia.com>
> -----Original Message-----
> From: Jason Gunthorpe <jgg@nvidia.com>
> Sent: Wednesday, November 29, 2023 7:49 PM
> To: Shameerali Kolothum Thodi <shameerali.kolothum.thodi@huawei.com>
> Cc: iommu@lists.linux.dev; linux-arm-kernel@lists.infradead.org;
> robin.murphy@arm.com; will@kernel.org; joro@8bytes.org;
> kevin.tian@intel.com; nicolinc@nvidia.com; mshavit@google.com;
> eric.auger@redhat.com; joao.m.martins@oracle.com; jiangkunkun
> <jiangkunkun@huawei.com>; zhukeqian <zhukeqian1@huawei.com>; Linuxarm
> <linuxarm@huawei.com>
> Subject: Re: [PATCH 5/5] iommu/arm-smmu-v3: Enforce dirty tracking in domain
> attach/alloc
>
> On Tue, Nov 28, 2023 at 09:49:40AM +0000, Shameer Kolothum wrote:
> > @@ -2701,6 +2703,9 @@ static int arm_smmu_attach_dev(struct
> iommu_domain *domain, struct device *dev)
> > master = dev_iommu_priv_get(dev);
> > smmu = master->smmu;
> >
> > + if (domain->dirty_ops && !arm_smmu_dbm_capable(smmu))
> > + return -EINVAL;
> > +
>
> This is not necessary, a domain can be attached to a single smmu and
> finalize was run on that smmu already. So dirty ops should only be set
> if this is a S1 domain finalized ona smmu that was dbm capable.
>
> Otherwise none of this makes any sense.
>
> > @@ -3104,6 +3115,9 @@ arm_smmu_domain_alloc_user(struct device *dev,
> u32 flags,
> >
> > smmu_domain->domain.type = IOMMU_DOMAIN_UNMANAGED;
> > smmu_domain->domain.ops = arm_smmu_ops.default_domain_ops;
> > + if (enforce_dirty)
> > + smmu_domain->domain.dirty_ops = &arm_smmu_dirty_ops;
>
> Ah, this seems in the wrong place, perhaps that is the confusion
> everywhere?
>
> If the finalize actually enables dirty tracking in the pgtbl_ops then
> it should set the diryty_ops, they should not be set in alloc_user.
>
> Specifically, a S2 domain should never have dirty_ops set.
>
> IOW if domain.dirty_ops != NULL then pgtbl_ops != NULL && pgtbl_ops-
> >read_and_clear_dirty
>
> Thus no need to have all the other prints/etc then.
>
> So I'd move this into finalize.
Ok. Make sense. I will move it.
>
> > @@ -4152,11 +4166,13 @@ static void arm_smmu_get_httu(struct
> arm_smmu_device *smmu, u32 reg)
> >
> > if (smmu->dev->of_node)
> > smmu->features |= features;
> > - else if (features != fw_features)
> > + else if (features != fw_features) {
> > /* ACPI IORT sets the HTTU bits */
> > dev_warn(smmu->dev,
> > - "IDR0.HTTU overridden by FW configuration (0x%x)\n",
> > + "IDR0.HTTU not overridden by FW configuration
> (0x%x)\n",
> > fw_features);
> > + smmu->features |= features;
> > + }
> > }
>
> Is this hunk misplaced?
Oops... My bad. Added for testing.
Thanks,
Shameer
WARNING: multiple messages have this Message-ID (diff)
From: Shameerali Kolothum Thodi <shameerali.kolothum.thodi@huawei.com>
To: Jason Gunthorpe <jgg@nvidia.com>
Cc: "iommu@lists.linux.dev" <iommu@lists.linux.dev>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"robin.murphy@arm.com" <robin.murphy@arm.com>,
"will@kernel.org" <will@kernel.org>,
"joro@8bytes.org" <joro@8bytes.org>,
"kevin.tian@intel.com" <kevin.tian@intel.com>,
"nicolinc@nvidia.com" <nicolinc@nvidia.com>,
"mshavit@google.com" <mshavit@google.com>,
"eric.auger@redhat.com" <eric.auger@redhat.com>,
"joao.m.martins@oracle.com" <joao.m.martins@oracle.com>,
jiangkunkun <jiangkunkun@huawei.com>,
zhukeqian <zhukeqian1@huawei.com>, Linuxarm <linuxarm@huawei.com>
Subject: RE: [PATCH 5/5] iommu/arm-smmu-v3: Enforce dirty tracking in domain attach/alloc
Date: Thu, 30 Nov 2023 09:01:29 +0000 [thread overview]
Message-ID: <eea35935ad164a9cb65d0c0cbda5d464@huawei.com> (raw)
In-Reply-To: <20231129194850.GD436702@nvidia.com>
> -----Original Message-----
> From: Jason Gunthorpe <jgg@nvidia.com>
> Sent: Wednesday, November 29, 2023 7:49 PM
> To: Shameerali Kolothum Thodi <shameerali.kolothum.thodi@huawei.com>
> Cc: iommu@lists.linux.dev; linux-arm-kernel@lists.infradead.org;
> robin.murphy@arm.com; will@kernel.org; joro@8bytes.org;
> kevin.tian@intel.com; nicolinc@nvidia.com; mshavit@google.com;
> eric.auger@redhat.com; joao.m.martins@oracle.com; jiangkunkun
> <jiangkunkun@huawei.com>; zhukeqian <zhukeqian1@huawei.com>; Linuxarm
> <linuxarm@huawei.com>
> Subject: Re: [PATCH 5/5] iommu/arm-smmu-v3: Enforce dirty tracking in domain
> attach/alloc
>
> On Tue, Nov 28, 2023 at 09:49:40AM +0000, Shameer Kolothum wrote:
> > @@ -2701,6 +2703,9 @@ static int arm_smmu_attach_dev(struct
> iommu_domain *domain, struct device *dev)
> > master = dev_iommu_priv_get(dev);
> > smmu = master->smmu;
> >
> > + if (domain->dirty_ops && !arm_smmu_dbm_capable(smmu))
> > + return -EINVAL;
> > +
>
> This is not necessary, a domain can be attached to a single smmu and
> finalize was run on that smmu already. So dirty ops should only be set
> if this is a S1 domain finalized ona smmu that was dbm capable.
>
> Otherwise none of this makes any sense.
>
> > @@ -3104,6 +3115,9 @@ arm_smmu_domain_alloc_user(struct device *dev,
> u32 flags,
> >
> > smmu_domain->domain.type = IOMMU_DOMAIN_UNMANAGED;
> > smmu_domain->domain.ops = arm_smmu_ops.default_domain_ops;
> > + if (enforce_dirty)
> > + smmu_domain->domain.dirty_ops = &arm_smmu_dirty_ops;
>
> Ah, this seems in the wrong place, perhaps that is the confusion
> everywhere?
>
> If the finalize actually enables dirty tracking in the pgtbl_ops then
> it should set the diryty_ops, they should not be set in alloc_user.
>
> Specifically, a S2 domain should never have dirty_ops set.
>
> IOW if domain.dirty_ops != NULL then pgtbl_ops != NULL && pgtbl_ops-
> >read_and_clear_dirty
>
> Thus no need to have all the other prints/etc then.
>
> So I'd move this into finalize.
Ok. Make sense. I will move it.
>
> > @@ -4152,11 +4166,13 @@ static void arm_smmu_get_httu(struct
> arm_smmu_device *smmu, u32 reg)
> >
> > if (smmu->dev->of_node)
> > smmu->features |= features;
> > - else if (features != fw_features)
> > + else if (features != fw_features) {
> > /* ACPI IORT sets the HTTU bits */
> > dev_warn(smmu->dev,
> > - "IDR0.HTTU overridden by FW configuration (0x%x)\n",
> > + "IDR0.HTTU not overridden by FW configuration
> (0x%x)\n",
> > fw_features);
> > + smmu->features |= features;
> > + }
> > }
>
> Is this hunk misplaced?
Oops... My bad. Added for testing.
Thanks,
Shameer
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2023-11-30 9:20 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-28 9:49 [PATCH 0/5] iommu/smmuv3: Add IOMMUFD dirty tracking support for SMMUv3 Shameer Kolothum
2023-11-28 9:49 ` Shameer Kolothum
2023-11-28 9:49 ` [PATCH 1/5] iommu/arm-smmu-v3: Add feature detection for HTTU Shameer Kolothum
2023-11-28 9:49 ` Shameer Kolothum
2023-11-29 19:49 ` Jason Gunthorpe
2023-11-29 19:49 ` Jason Gunthorpe
2023-11-28 9:49 ` [PATCH 2/5] iommu/arm-smmu-v3: Enable HTTU for stage1 with io-pgtable mapping Shameer Kolothum
2023-11-28 9:49 ` Shameer Kolothum
2023-11-29 19:30 ` Jason Gunthorpe
2023-11-29 19:30 ` Jason Gunthorpe
2023-11-30 9:17 ` Shameerali Kolothum Thodi
2023-11-30 9:17 ` Shameerali Kolothum Thodi
2023-11-28 9:49 ` [PATCH 3/5] iommu/arm-smmu-v3: Add read_and_clear_dirty() support Shameer Kolothum
2023-11-28 9:49 ` Shameer Kolothum
2023-11-29 19:35 ` Jason Gunthorpe
2023-11-29 19:35 ` Jason Gunthorpe
2023-11-30 9:05 ` Shameerali Kolothum Thodi
2023-11-30 9:05 ` Shameerali Kolothum Thodi
2023-11-28 9:49 ` [PATCH 4/5] iommu/arm-smmu-v3: Add set_dirty_tracking() support Shameer Kolothum
2023-11-28 9:49 ` Shameer Kolothum
2023-11-29 19:42 ` Jason Gunthorpe
2023-11-29 19:42 ` Jason Gunthorpe
2023-11-30 8:56 ` Shameerali Kolothum Thodi
2023-11-30 8:56 ` Shameerali Kolothum Thodi
2023-11-30 12:54 ` Jason Gunthorpe
2023-11-30 12:54 ` Jason Gunthorpe
2023-11-30 14:04 ` Shameerali Kolothum Thodi
2023-11-30 14:04 ` Shameerali Kolothum Thodi
2023-12-14 16:23 ` Joao Martins
2023-12-14 16:23 ` Joao Martins
2023-11-28 9:49 ` [PATCH 5/5] iommu/arm-smmu-v3: Enforce dirty tracking in domain attach/alloc Shameer Kolothum
2023-11-28 9:49 ` Shameer Kolothum
2023-11-29 19:48 ` Jason Gunthorpe
2023-11-29 19:48 ` Jason Gunthorpe
2023-11-30 9:01 ` Shameerali Kolothum Thodi [this message]
2023-11-30 9:01 ` Shameerali Kolothum Thodi
2023-12-14 16:29 ` Joao Martins
2023-12-14 16:29 ` Joao Martins
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=eea35935ad164a9cb65d0c0cbda5d464@huawei.com \
--to=shameerali.kolothum.thodi@huawei.com \
--cc=eric.auger@redhat.com \
--cc=iommu@lists.linux.dev \
--cc=jgg@nvidia.com \
--cc=jiangkunkun@huawei.com \
--cc=joao.m.martins@oracle.com \
--cc=joro@8bytes.org \
--cc=kevin.tian@intel.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linuxarm@huawei.com \
--cc=mshavit@google.com \
--cc=nicolinc@nvidia.com \
--cc=robin.murphy@arm.com \
--cc=will@kernel.org \
--cc=zhukeqian1@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.