All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@lst.de>
To: Lu Baolu <baolu.lu@linux.intel.com>
Cc: alan.cox@intel.com, Christoph Hellwig <hch@lst.de>,
	Stefano Stabellini <sstabellini@kernel.org>,
	ashok.raj@intel.com, Jonathan Corbet <corbet@lwn.net>,
	pengfei.xu@intel.com, Ingo Molnar <mingo@redhat.com>,
	David Woodhouse <dwmw2@infradead.org>,
	kevin.tian@intel.com,
	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
	Steven Rostedt <rostedt@goodmis.org>,
	Bjorn Helgaas <bhelgaas@google.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	mika.westerberg@linux.intel.com, Juergen Gross <jgross@suse.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	linux-kernel@vger.kernel.org, iommu@lists.linux-foundation.org,
	jacob.jun.pan@intel.com, Robin Murphy <robin.murphy@arm.com>
Subject: Re: [PATCH v5 02/10] iommu/vt-d: Use per-device dma_ops
Date: Thu, 14 Nov 2019 09:14:23 +0100	[thread overview]
Message-ID: <20191114081423.GA27407@lst.de> (raw)
In-Reply-To: <0ddc8aff-783a-97b9-f5cc-9e27990de278@linux.intel.com>

On Thu, Nov 14, 2019 at 01:14:11PM +0800, Lu Baolu wrote:
> Could you please educate me what dma_supported() is exactly for? Will
> it always get called during boot? When will it be called?

->dma_supported is set when setting either the dma_mask or
dma_coherent_mask. These days it serves too primary purposes: reject
too small masks that can't be addressed, and provide any hooks needed
in the driver based on the mask.

> In above implementation, why do we need to check dma_direct_supported()
> at the beginning? And why

Because the existing driver called dma_direct_supported, which I added
based on x86 arch overrides doings the same a while ago.  I suspect
it is related to addressing for tiny dma masks, but I'm not entirely
sure.  The longer term intel-iommu maintainers or x86 maintainers might
be able to shed more light how this was supposed to work and/or how
systems with the Intel IOMMU deal with e.g. ISA devices with 24-bit
addressing.

>
> 	if (!info || info == DUMMY_DEVICE_DOMAIN_INFO ||
> 			info == DEFER_DEVICE_DOMAIN_INFO) {
> 		dev->dma_ops_bypass = true;

This was supposed to transform the checks from iommu_dummy and
identity_mapping.  But I think it actually isn't entirely correct and
already went bad in the patch to remove identity_mapping.  Pleae check 
the branch I just re-pushed, which should be correct now.
_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

WARNING: multiple messages have this Message-ID (diff)
From: Christoph Hellwig <hch@lst.de>
To: Lu Baolu <baolu.lu@linux.intel.com>
Cc: Christoph Hellwig <hch@lst.de>,
	David Woodhouse <dwmw2@infradead.org>,
	Joerg Roedel <joro@8bytes.org>,
	Bjorn Helgaas <bhelgaas@google.com>,
	ashok.raj@intel.com, jacob.jun.pan@intel.com, alan.cox@intel.com,
	kevin.tian@intel.com, mika.westerberg@linux.intel.com,
	Ingo Molnar <mingo@redhat.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	pengfei.xu@intel.com,
	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
	Marek Szyprowski <m.szyprowski@samsung.com>,
	Robin Murphy <robin.murphy@arm.com>,
	Jonathan Corbet <corbet@lwn.net>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	iommu@lists.linux-foundation.org, linux-kernel@vger.kernel.org,
	Jacob Pan <jacob.jun.pan@linux.intel.com>
Subject: Re: [PATCH v5 02/10] iommu/vt-d: Use per-device dma_ops
Date: Thu, 14 Nov 2019 09:14:23 +0100	[thread overview]
Message-ID: <20191114081423.GA27407@lst.de> (raw)
In-Reply-To: <0ddc8aff-783a-97b9-f5cc-9e27990de278@linux.intel.com>

On Thu, Nov 14, 2019 at 01:14:11PM +0800, Lu Baolu wrote:
> Could you please educate me what dma_supported() is exactly for? Will
> it always get called during boot? When will it be called?

->dma_supported is set when setting either the dma_mask or
dma_coherent_mask. These days it serves too primary purposes: reject
too small masks that can't be addressed, and provide any hooks needed
in the driver based on the mask.

> In above implementation, why do we need to check dma_direct_supported()
> at the beginning? And why

Because the existing driver called dma_direct_supported, which I added
based on x86 arch overrides doings the same a while ago.  I suspect
it is related to addressing for tiny dma masks, but I'm not entirely
sure.  The longer term intel-iommu maintainers or x86 maintainers might
be able to shed more light how this was supposed to work and/or how
systems with the Intel IOMMU deal with e.g. ISA devices with 24-bit
addressing.

>
> 	if (!info || info == DUMMY_DEVICE_DOMAIN_INFO ||
> 			info == DEFER_DEVICE_DOMAIN_INFO) {
> 		dev->dma_ops_bypass = true;

This was supposed to transform the checks from iommu_dummy and
identity_mapping.  But I think it actually isn't entirely correct and
already went bad in the patch to remove identity_mapping.  Pleae check 
the branch I just re-pushed, which should be correct now.

  reply	other threads:[~2019-11-14  8:14 UTC|newest]

Thread overview: 58+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-07-25  3:17 [PATCH v5 00/10] iommu: Bounce page for untrusted devices Lu Baolu
2019-07-25  3:17 ` Lu Baolu
2019-07-25  3:17 ` [PATCH v5 01/10] iommu/vt-d: Don't switch off swiotlb if use direct dma Lu Baolu
2019-07-25  3:17   ` Lu Baolu
2019-07-25  5:41   ` Christoph Hellwig
2019-07-25  5:41     ` Christoph Hellwig
2019-07-25  3:17 ` [PATCH v5 02/10] iommu/vt-d: Use per-device dma_ops Lu Baolu
2019-07-25  3:17   ` Lu Baolu
2019-07-25  5:44   ` Christoph Hellwig
2019-07-25  5:44     ` Christoph Hellwig
2019-07-25  7:18     ` Lu Baolu
2019-07-25  7:18       ` Lu Baolu
2019-07-25 11:43       ` Christoph Hellwig
2019-07-25 11:43         ` Christoph Hellwig
2019-07-26  1:56         ` Lu Baolu
2019-07-26  1:56           ` Lu Baolu
2019-11-12  7:16           ` Christoph Hellwig
2019-11-12  7:16             ` Christoph Hellwig
2019-11-13  2:50             ` Lu Baolu
2019-11-13  2:50               ` Lu Baolu
2019-11-13  7:03               ` Christoph Hellwig
2019-11-13  7:03                 ` Christoph Hellwig
2019-11-13  9:53                 ` Christoph Hellwig
2019-11-13  9:53                   ` Christoph Hellwig
2019-11-14  5:14                   ` Lu Baolu
2019-11-14  5:14                     ` Lu Baolu
2019-11-14  8:14                     ` Christoph Hellwig [this message]
2019-11-14  8:14                       ` Christoph Hellwig
2019-11-15  0:57                       ` Lu Baolu
2019-11-20 10:44                         ` Christoph Hellwig
2019-07-25  3:17 ` [PATCH v5 03/10] iommu/vt-d: Cleanup after use per-device dma ops Lu Baolu
2019-07-25  3:17   ` Lu Baolu
2019-07-25  3:17 ` [PATCH v5 04/10] PCI: Add dev_is_untrusted helper Lu Baolu
2019-07-25  3:17   ` Lu Baolu
2019-07-25  5:44   ` Christoph Hellwig
2019-07-25  5:44     ` Christoph Hellwig
2019-07-25  3:17 ` [PATCH v5 05/10] swiotlb: Split size parameter to map/unmap APIs Lu Baolu
2019-07-25  3:17   ` Lu Baolu
2019-07-25 11:47   ` Christoph Hellwig
2019-07-25 11:47     ` Christoph Hellwig
2019-07-25  3:17 ` [PATCH v5 06/10] swiotlb: Zero out bounce buffer for untrusted device Lu Baolu
2019-07-25  3:17   ` Lu Baolu
2019-07-25 11:49   ` Christoph Hellwig
2019-07-25 11:49     ` Christoph Hellwig
2019-07-26  2:21     ` Lu Baolu
2019-07-26  2:21       ` Lu Baolu
2019-07-25  3:17 ` [PATCH v5 07/10] iommu: Add bounce page APIs Lu Baolu
2019-07-25  3:17   ` Lu Baolu
2019-07-25  3:17 ` [PATCH v5 08/10] iommu/vt-d: Check whether device requires bounce buffer Lu Baolu
2019-07-25  3:17   ` Lu Baolu
2019-07-25  3:17 ` [PATCH v5 09/10] iommu/vt-d: Add trace events for device dma map/unmap Lu Baolu
2019-07-25  3:17   ` Lu Baolu
2019-07-25 12:26   ` Steven Rostedt
2019-07-25 12:26     ` Steven Rostedt
2019-07-26  2:24     ` Lu Baolu
2019-07-26  2:24       ` Lu Baolu
2019-07-25  3:17 ` [PATCH v5 10/10] iommu/vt-d: Use bounce buffer for untrusted devices Lu Baolu
2019-07-25  3:17   ` Lu Baolu

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=20191114081423.GA27407@lst.de \
    --to=hch@lst.de \
    --cc=alan.cox@intel.com \
    --cc=ashok.raj@intel.com \
    --cc=baolu.lu@linux.intel.com \
    --cc=bhelgaas@google.com \
    --cc=boris.ostrovsky@oracle.com \
    --cc=corbet@lwn.net \
    --cc=dwmw2@infradead.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=iommu@lists.linux-foundation.org \
    --cc=jacob.jun.pan@intel.com \
    --cc=jgross@suse.com \
    --cc=kevin.tian@intel.com \
    --cc=konrad.wilk@oracle.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mika.westerberg@linux.intel.com \
    --cc=mingo@redhat.com \
    --cc=pengfei.xu@intel.com \
    --cc=robin.murphy@arm.com \
    --cc=rostedt@goodmis.org \
    --cc=sstabellini@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.