linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Alex Williamson <alex.williamson@redhat.com>
To: Bharat Bhushan <r65777@freescale.com>
Cc: linux-pci@vger.kernel.org, joro@8bytes.org, agraf@suse.de,
	stuart.yoder@freescale.com,
	Bharat Bhushan <bharat.bhushan@freescale.com>,
	scottwood@freescale.com, iommu@lists.linux-foundation.org,
	bhelgaas@google.com, linuxppc-dev@lists.ozlabs.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 0/9 v2] vfio-pci: add support for Freescale IOMMU (PAMU)
Date: Wed, 20 Nov 2013 11:47:23 -0700	[thread overview]
Message-ID: <1384973243.2879.361.camel@ul30vt.home> (raw)
In-Reply-To: <1384838233-24847-1-git-send-email-Bharat.Bhushan@freescale.com>

On Tue, 2013-11-19 at 10:47 +0530, Bharat Bhushan wrote:
> From: Bharat Bhushan <bharat.bhushan@freescale.com>
> 
> PAMU (FSL IOMMU) has a concept of primary window and subwindows.
> Primary window corresponds to the complete guest iova address space
> (including MSI space), with respect to IOMMU_API this is termed as
> geometry. IOVA Base of subwindow is determined from the number of
> subwindows (configurable using iommu API).
> MSI I/O page must be within the geometry and maximum supported
> subwindows, so MSI IO-page is setup just after guest memory iova space.
> 
> So patch 1/9-4/9(inclusive) are for defining the interface to get:
>   - Number of MSI regions (which is number of MSI banks for powerpc)
>   - MSI-region address range: Physical page which have the
>     address/addresses used for generating MSI interrupt
>     and size of the page.
> 
> Patch 5/9-7/9(inclusive) is defining the interface of setting up
> MSI iova-base for a msi region(bank) for a device. so that when
> msi-message will be composed then this configured iova will be used.
> Earlier we were using iommu interface for getting the configured iova
> which was not currect and Alex Williamson suggeested this type of interface.
> 
> patch 8/9 moves some common functions in a separate file so that these
> can be used by FSL_PAMU implementation (next patch uses this).
> These will be used later for iommu-none implementation. I believe we
> can do more of this but will take step by step.
> 
> Finally last patch actually adds the support for FSL-PAMU :)

Patches 1-3: msi_get_region needs to return an error an error (probably
-EINVAL) if called on a path where there's no backend implementation.
Otherwise the caller doesn't know that the data in the region pointer
isn't valid.

Patches 5&6: same as above for msi_set_iova, return an error if no
backend implementation.

Patch 7: Why does fsl_msi_del_iova_device bother to return anything if
it's always zero?  Return -ENODEV when not found?

Patch 9:

vfio_handle_get_attr() passes random kernel data back to userspace in
the event of iommu_domain_get_attr() error.

vfio_handle_set_attr(): I don't see any data validation happening, is
iommu_domain_set_attr() really that safe?

For both of those, drop the pr_err on unknown attribute, it's sufficient
to return error.

Is VFIO_IOMMU_PAMU_GET_MSI_BANK_COUNT per aperture (ie. each vfio user
has $COUNT regions at their disposal exclusively)?  Thanks,

Alex

> v1->v2
>  - Added interface for setting msi iova for a msi region for a device.
>    Earlier I added iommu interface for same but as per comment that is
>    removed and now created a direct interface between vfio and msi.
>  - Incorporated review comments (details is in individual patch)
> 
> Bharat Bhushan (9):
>   pci:msi: add weak function for returning msi region info
>   pci: msi: expose msi region information functions
>   powerpc: pci: Add arch specific msi region interface
>   powerpc: msi: Extend the msi region interface to get info from
>     fsl_msi
>   pci/msi: interface to set an iova for a msi region
>   powerpc: pci: Extend msi iova page setup to arch specific
>   pci: msi: Extend msi iova setting interface to powerpc arch
>   vfio: moving some functions in common file
>   vfio pci: Add vfio iommu implementation for FSL_PAMU
> 
>  arch/powerpc/include/asm/machdep.h |   10 +
>  arch/powerpc/kernel/msi.c          |   28 +
>  arch/powerpc/sysdev/fsl_msi.c      |  132 +++++-
>  arch/powerpc/sysdev/fsl_msi.h      |   25 +-
>  drivers/pci/msi.c                  |   35 ++
>  drivers/vfio/Kconfig               |    6 +
>  drivers/vfio/Makefile              |    5 +-
>  drivers/vfio/vfio_iommu_common.c   |  227 ++++++++
>  drivers/vfio/vfio_iommu_common.h   |   27 +
>  drivers/vfio/vfio_iommu_fsl_pamu.c | 1003 ++++++++++++++++++++++++++++++++++++
>  drivers/vfio/vfio_iommu_type1.c    |  206 +--------
>  include/linux/msi.h                |   14 +
>  include/linux/pci.h                |   21 +
>  include/uapi/linux/vfio.h          |  100 ++++
>  14 files changed, 1623 insertions(+), 216 deletions(-)
>  create mode 100644 drivers/vfio/vfio_iommu_common.c
>  create mode 100644 drivers/vfio/vfio_iommu_common.h
>  create mode 100644 drivers/vfio/vfio_iommu_fsl_pamu.c
> 
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/

  parent reply	other threads:[~2013-11-20 18:47 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-11-19  5:17 [PATCH 0/9 v2] vfio-pci: add support for Freescale IOMMU (PAMU) Bharat Bhushan
2013-11-19  5:17 ` [PATCH 1/9 v2] pci:msi: add weak function for returning msi region info Bharat Bhushan
2013-11-25 23:36   ` Bjorn Helgaas
2013-11-28 10:08     ` Bharat Bhushan
2013-11-19  5:17 ` [PATCH 2/9 v2] pci: msi: expose msi region information functions Bharat Bhushan
2013-11-19  5:17 ` [PATCH 3/9 v2] powerpc: pci: Add arch specific msi region interface Bharat Bhushan
2013-11-19  5:17 ` [PATCH 4/9 v2] powerpc: msi: Extend the msi region interface to get info from fsl_msi Bharat Bhushan
2013-11-19  5:17 ` [PATCH 5/9 v2] pci/msi: interface to set an iova for a msi region Bharat Bhushan
2013-11-19  5:17 ` [PATCH 6/9 v2] powerpc: pci: Extend msi iova page setup to arch specific Bharat Bhushan
2013-11-19  5:17 ` [PATCH 7/9 v2] pci: msi: Extend msi iova setting interface to powerpc arch Bharat Bhushan
2013-11-19  5:17 ` [PATCH 8/9 v2] vfio: moving some functions in common file Bharat Bhushan
2013-11-19  5:17 ` [PATCH 9/9 v2] vfio pci: Add vfio iommu implementation for FSL_PAMU Bharat Bhushan
2013-11-20 18:47 ` Alex Williamson [this message]
2013-11-21 11:20   ` [PATCH 0/9 v2] vfio-pci: add support for Freescale IOMMU (PAMU) Varun Sethi
2013-11-21 11:20   ` Bharat Bhushan
2013-11-21 20:43     ` Alex Williamson
2013-11-21 20:47       ` Scott Wood
2013-11-21 21:00         ` Alex Williamson
2013-11-25  5:33           ` Bharat Bhushan
2013-11-25 16:38             ` Alex Williamson
2013-11-27 16:08               ` Bharat Bhushan
2013-11-28  9:19               ` Bharat Bhushan
2013-12-06  0:21                 ` Scott Wood
2013-12-06  4:11                   ` Bharat Bhushan
2013-12-06 18:59                     ` Scott Wood
2013-12-06 19:30                       ` Alex Williamson
2013-12-07  0:22                         ` Scott Wood
2013-12-10  5:37                         ` Bharat.Bhushan
2013-12-10  5:53                           ` Alex Williamson
2013-12-10  9:09                             ` Bharat.Bhushan
2013-12-06  0:00             ` Scott Wood
2013-12-06  4:17               ` Bharat Bhushan
2013-12-06 19:25                 ` Scott Wood
2013-12-10  5:37                   ` Bharat.Bhushan
2013-12-10 20:29                     ` Scott Wood

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=1384973243.2879.361.camel@ul30vt.home \
    --to=alex.williamson@redhat.com \
    --cc=agraf@suse.de \
    --cc=bharat.bhushan@freescale.com \
    --cc=bhelgaas@google.com \
    --cc=iommu@lists.linux-foundation.org \
    --cc=joro@8bytes.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=r65777@freescale.com \
    --cc=scottwood@freescale.com \
    --cc=stuart.yoder@freescale.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).