All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jason Gunthorpe via iommu <iommu@lists.linux-foundation.org>
To: Lu Baolu <baolu.lu@linux.intel.com>
Cc: "Tian, Kevin" <kevin.tian@intel.com>,
	"kvm@vger.kernel.org" <kvm@vger.kernel.org>,
	Will Deacon <will@kernel.org>, Cornelia Huck <cohuck@redhat.com>,
	"iommu@lists.linux-foundation.org"
	<iommu@lists.linux-foundation.org>,
	Alex Williamson <alex.williamson@redhat.com>,
	David Woodhouse <dwmw2@infradead.org>,
	Christoph Hellwig <hch@lst.de>,
	Robin Murphy <robin.murphy@arm.com>
Subject: Re: [PATCH v2 2/4] vfio: Move the Intel no-snoop control off of IOMMU_CACHE
Date: Tue, 12 Apr 2022 10:20:59 -0300	[thread overview]
Message-ID: <20220412132059.GG2120790@nvidia.com> (raw)
In-Reply-To: <a3b9d7f0-b7b9-ffdf-90c3-b216e1e19b35@linux.intel.com>

On Tue, Apr 12, 2022 at 09:13:27PM +0800, Lu Baolu wrote:

> > > > btw as discussed in last version it is not necessarily to recalculate
> > > > snoop control globally with this new approach. Will follow up to
> > > > clean it up after this series is merged.
> > > Agreed. But it also requires the enforce_cache_coherency() to be called
> > > only after domain being attached to a device just as VFIO is doing.
> > that actually makes sense, right? w/o device attached it's pointless to
> > call that interface on a domain...
> 
> Agreed. Return -EOPNOTSUPP or -EINVAL to tell the caller that this
> operation is invalid before any device attachment.

That is backwards. enforce_cache_coherency() succeeds on an empty
domain and attach of an incompatible device must fail.

Meaning you check the force_snoop flag in the domain when attaching
and refuse to attach the device if it cannot support it. This will
trigger vfio to create a new iommu_domain for that device and then
enforce_cache_coherency() will fail on that domain due to the
incompatible attached device.

Same scenario if it is the Nth device to be attached to a domain.

Jason
_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

WARNING: multiple messages have this Message-ID (diff)
From: Jason Gunthorpe <jgg@nvidia.com>
To: Lu Baolu <baolu.lu@linux.intel.com>
Cc: "Tian, Kevin" <kevin.tian@intel.com>,
	Alex Williamson <alex.williamson@redhat.com>,
	Cornelia Huck <cohuck@redhat.com>,
	David Woodhouse <dwmw2@infradead.org>,
	"iommu@lists.linux-foundation.org"
	<iommu@lists.linux-foundation.org>,
	Joerg Roedel <joro@8bytes.org>,
	"kvm@vger.kernel.org" <kvm@vger.kernel.org>,
	Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>,
	Will Deacon <will@kernel.org>, Christoph Hellwig <hch@lst.de>,
	Robin Murphy <robin.murphy@arm.com>
Subject: Re: [PATCH v2 2/4] vfio: Move the Intel no-snoop control off of IOMMU_CACHE
Date: Tue, 12 Apr 2022 10:20:59 -0300	[thread overview]
Message-ID: <20220412132059.GG2120790@nvidia.com> (raw)
In-Reply-To: <a3b9d7f0-b7b9-ffdf-90c3-b216e1e19b35@linux.intel.com>

On Tue, Apr 12, 2022 at 09:13:27PM +0800, Lu Baolu wrote:

> > > > btw as discussed in last version it is not necessarily to recalculate
> > > > snoop control globally with this new approach. Will follow up to
> > > > clean it up after this series is merged.
> > > Agreed. But it also requires the enforce_cache_coherency() to be called
> > > only after domain being attached to a device just as VFIO is doing.
> > that actually makes sense, right? w/o device attached it's pointless to
> > call that interface on a domain...
> 
> Agreed. Return -EOPNOTSUPP or -EINVAL to tell the caller that this
> operation is invalid before any device attachment.

That is backwards. enforce_cache_coherency() succeeds on an empty
domain and attach of an incompatible device must fail.

Meaning you check the force_snoop flag in the domain when attaching
and refuse to attach the device if it cannot support it. This will
trigger vfio to create a new iommu_domain for that device and then
enforce_cache_coherency() will fail on that domain due to the
incompatible attached device.

Same scenario if it is the Nth device to be attached to a domain.

Jason

  reply	other threads:[~2022-04-12 13:21 UTC|newest]

Thread overview: 84+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-07 15:23 [PATCH v2 0/4] Make the iommu driver no-snoop block feature consistent Jason Gunthorpe via iommu
2022-04-07 15:23 ` Jason Gunthorpe
2022-04-07 15:23 ` [PATCH v2 1/4] iommu: Introduce the domain op enforce_cache_coherency() Jason Gunthorpe via iommu
2022-04-07 15:23   ` Jason Gunthorpe
2022-04-08  8:05   ` Tian, Kevin
2022-04-08  8:05     ` Tian, Kevin
2022-04-09 12:44     ` Lu Baolu
2022-04-09 12:44       ` Lu Baolu
2022-04-11 14:11     ` Jason Gunthorpe via iommu
2022-04-11 14:11       ` Jason Gunthorpe
2022-04-08  8:27   ` Tian, Kevin
2022-04-08  8:27     ` Tian, Kevin
2022-04-07 15:23 ` [PATCH v2 2/4] vfio: Move the Intel no-snoop control off of IOMMU_CACHE Jason Gunthorpe via iommu
2022-04-07 15:23   ` Jason Gunthorpe
2022-04-08  8:16   ` Tian, Kevin
2022-04-08  8:16     ` Tian, Kevin
2022-04-09 12:50     ` Lu Baolu
2022-04-09 12:50       ` Lu Baolu
2022-04-12  7:44       ` Tian, Kevin
2022-04-12  7:44         ` Tian, Kevin
2022-04-12 13:13         ` Lu Baolu
2022-04-12 13:13           ` Lu Baolu
2022-04-12 13:20           ` Jason Gunthorpe via iommu [this message]
2022-04-12 13:20             ` Jason Gunthorpe
2022-04-12 23:04             ` Tian, Kevin
2022-04-12 23:04               ` Tian, Kevin
2022-04-13 11:37               ` Lu Baolu
2022-04-13 11:37                 ` Lu Baolu
2022-04-08 15:47   ` Alex Williamson
2022-04-08 15:47     ` Alex Williamson
2022-04-11 14:13     ` Jason Gunthorpe via iommu
2022-04-11 14:13       ` Jason Gunthorpe
2022-04-07 15:23 ` [PATCH v2 3/4] iommu: Redefine IOMMU_CAP_CACHE_COHERENCY as the cap flag for IOMMU_CACHE Jason Gunthorpe via iommu
2022-04-07 15:23   ` Jason Gunthorpe
2022-04-08  8:21   ` Tian, Kevin
2022-04-08  8:21     ` Tian, Kevin
2022-04-08 12:21     ` Jason Gunthorpe via iommu
2022-04-08 12:21       ` Jason Gunthorpe
2022-04-09 12:51   ` Lu Baolu
2022-04-09 12:51     ` Lu Baolu
2022-04-07 15:23 ` [PATCH v2 4/4] vfio: Require that devices support DMA cache coherence Jason Gunthorpe via iommu
2022-04-07 15:23   ` Jason Gunthorpe
2022-04-08  8:26   ` Tian, Kevin
2022-04-08  8:26     ` Tian, Kevin
2022-04-08 12:22     ` Jason Gunthorpe via iommu
2022-04-08 12:22       ` Jason Gunthorpe
2022-04-08 13:28       ` Robin Murphy
2022-04-08 13:28         ` Robin Murphy
2022-04-08 13:37         ` Jason Gunthorpe via iommu
2022-04-08 13:37           ` Jason Gunthorpe
2022-04-08 15:48   ` Alex Williamson
2022-04-08 15:48     ` Alex Williamson
2022-07-01  4:57   ` Alexey Kardashevskiy
2022-07-01  4:57     ` Alexey Kardashevskiy
2022-07-01  6:07     ` Tian, Kevin
2022-07-01  6:07       ` Tian, Kevin
2022-07-01  6:24       ` Alexey Kardashevskiy
2022-07-01  6:24         ` Alexey Kardashevskiy
2022-04-07 17:03 ` [PATCH v2 0/4] Make the iommu driver no-snoop block feature consistent Robin Murphy
2022-04-07 17:03   ` Robin Murphy
2022-04-07 17:43   ` Jason Gunthorpe via iommu
2022-04-07 17:43     ` Jason Gunthorpe
2022-04-07 18:02     ` Robin Murphy
2022-04-07 18:02       ` Robin Murphy
2022-04-07 19:08       ` Jason Gunthorpe via iommu
2022-04-07 19:08         ` Jason Gunthorpe
2022-04-07 19:27         ` Robin Murphy
2022-04-07 19:27           ` Robin Murphy
2022-04-08 12:18           ` Jason Gunthorpe via iommu
2022-04-08 12:18             ` Jason Gunthorpe
2022-04-08 13:11             ` Robin Murphy
2022-04-08 13:11               ` Robin Murphy
2022-04-08 13:35               ` Jason Gunthorpe via iommu
2022-04-08 13:35                 ` Jason Gunthorpe
2022-04-08 17:44                 ` Robin Murphy
2022-04-08 17:44                   ` Robin Murphy
2022-04-12  2:51                   ` Tian, Kevin
2022-04-12  2:51                     ` Tian, Kevin
2022-04-08  9:08         ` Tian, Kevin
2022-04-08  9:08           ` Tian, Kevin
2022-04-08 10:11           ` Robin Murphy
2022-04-08 10:11             ` Robin Murphy
2022-04-12  2:49             ` Tian, Kevin
2022-04-12  2:49               ` Tian, Kevin

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=20220412132059.GG2120790@nvidia.com \
    --to=iommu@lists.linux-foundation.org \
    --cc=alex.williamson@redhat.com \
    --cc=baolu.lu@linux.intel.com \
    --cc=cohuck@redhat.com \
    --cc=dwmw2@infradead.org \
    --cc=hch@lst.de \
    --cc=jgg@nvidia.com \
    --cc=kevin.tian@intel.com \
    --cc=kvm@vger.kernel.org \
    --cc=robin.murphy@arm.com \
    --cc=will@kernel.org \
    /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.