qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Alexander Graf <agraf@suse.de>
To: Eric Auger <eric.auger@linaro.org>,
	eric.auger@st.com, christoffer.dall@linaro.org,
	qemu-devel@nongnu.org, kim.phillips@freescale.com,
	a.rigo@virtualopensystems.com
Cc: peter.maydell@linaro.org, patches@linaro.org,
	Kim Phillips <kim.phillips@linaro.org>,
	stuart.yoder@freescale.com, alex.williamson@redhat.com,
	christophe.barnichon@st.com, a.motakis@virtualopensystems.com,
	kvmarm@lists.cs.columbia.edu
Subject: Re: [Qemu-devel] [RFC v3 03/10] vfio: add vfio-platform support
Date: Wed, 25 Jun 2014 23:21:25 +0200	[thread overview]
Message-ID: <53AB3D55.2000802@suse.de> (raw)
In-Reply-To: <1401695374-4287-4-git-send-email-eric.auger@linaro.org>


On 02.06.14 09:49, Eric Auger wrote:
> From: Kim Phillips <kim.phillips@linaro.org>
>
> Functions for which PCI and platform device support share are moved
> into common.c.  The common vfio_{get,put}_group() get an additional
> argument, a pointer to a vfio_reset_handler(), for which to pass on
> to qemu_register_reset, but only if it exists (the platform device
> code currently passes a NULL as its reset_handler).
>
> For the platform device code, we basically use SysBusDevice
> instead of PCIDevice.  Since realize() returns void, unlike
> PCIDevice's initfn, error codes are moved into the
> error message text with %m.
>
> Currently only MMIO access is supported at this time.
>
> The perceived path for future QEMU development is:
>
> - add support for interrupts
> - verify and test platform dev unmap path
> - test existing PCI path for any regressions
> - add support for creating platform devices on the qemu command line
>    - currently device address specification is hardcoded for test
>      development on Calxeda Midway's fff51000.ethernet device
> - reset is not supported and registration of reset functions is
>    bypassed for platform devices.
>    - there is no standard means of resetting a platform device,
>      unsure if it suffices to be handled at device--VFIO binding time
>
> [1] http://www.spinics.net/lists/kvm-arm/msg08195.html
>
> Changes (v2 -> v3):
> [work done by Eric Auger]
>
> This new version introduces 2 separate VFIO Device objects:
> - VFIOPCIDevice
> - VFIOPlatformDevice
>
> Both objects share a VFIODevice struct.
>
> Also a VFIORegion shared struct was created. It is embedded in
> VFIOBAR struct. VFIOPlatformDevice uses VFIORegion directly.
>
> Introducing those base classes induced quite a lot of tiny
> changes in the PCI code. Theoretically PCI and platform
> devices can be supported simultaneously. PCI modifications
> currently are not tested.
>
> The VFIODevice is not a QOM object due to the single inheritance
> model limitation.
>
> The VFIODevice struct embeds an ops structure which is
> specialized in each VFIO leaf device. This makes possible to call
> device specific functions in common parts, hence achieving better
> factorization.
>
> Reset handling typically is handled that way where a unique
> generic ResetHandler (in common.c) is used for both derived
> classes. It calls device specific methods.
>
> As in the original contribution, only MMIO is supported in that
> patch file (in mmap mode). IRQ support comes in a subsequent patch.
>
> Signed-off-by: Kim Phillips <kim.phillips@linaro.org>
> Signed-off-by: Eric Auger <eric.auger@linaro.org>
> ---
>   hw/vfio/Makefile.objs      |    2 +
>   hw/vfio/common.c           |  849 ++++++++++++++++++++++++++++
>   hw/vfio/pci.c              | 1316 ++++++++++----------------------------------
>   hw/vfio/platform.c         |  267 +++++++++
>   hw/vfio/vfio-common.h      |  143 +++++
>   linux-headers/linux/vfio.h |    1 +
>   6 files changed, 1565 insertions(+), 1013 deletions(-)

This patch is impossible to review. Please split it out into a part (or 
maybe even multiple patches) that separate pci specific VFIO support 
into its own file and then another set of patches implementing platform 
support.


Alex

  reply	other threads:[~2014-06-25 21:21 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-02  7:49 [Qemu-devel] [RFC v3 00/10] KVM platform device passthrough Eric Auger
2014-06-02  7:49 ` [Qemu-devel] [RFC v3 01/10] hw/arm/virt: add a xgmac device Eric Auger
2014-06-02  7:49 ` [Qemu-devel] [RFC v3 02/10] vfio: move hw/misc/vfio.c to hw/vfio/pci.c Eric Auger
2014-06-02  7:49 ` [Qemu-devel] [RFC v3 03/10] vfio: add vfio-platform support Eric Auger
2014-06-25 21:21   ` Alexander Graf [this message]
2014-06-26  7:47     ` Eric Auger
2014-06-26  9:56       ` Alexander Graf
2014-06-02  7:49 ` [Qemu-devel] [RFC v3 04/10] vfio: simplifed DPRINTF calls using device name Eric Auger
2014-06-25 21:22   ` Alexander Graf
2014-06-02  7:49 ` [Qemu-devel] [RFC v3 05/10] vfio: Add initial IRQ support in platform device Eric Auger
2014-06-25 21:28   ` Alexander Graf
2014-06-25 21:40     ` Alex Williamson
2014-06-26  8:41       ` Eric Auger
2014-06-02  7:49 ` [Qemu-devel] [RFC v3 06/10] virt: Assign a VFIO platform device with -device option Eric Auger
2014-06-25 21:30   ` Alexander Graf
2014-06-26  8:53     ` Eric Auger
2014-06-26  9:25       ` Alexander Graf
2014-06-26  9:30         ` Eric Auger
2014-06-25 22:28   ` Peter Maydell
2014-06-25 22:28     ` Alexander Graf
2014-06-26  7:39       ` Eric Auger
2014-06-02  7:49 ` [Qemu-devel] [RFC v3 07/10] Add EXEC_FLAG to VFIO DMA mappings Eric Auger
2014-06-02  7:49 ` [Qemu-devel] [RFC v3 08/10] Add AMBA devices support to VFIO Eric Auger
2014-06-02  7:49 ` [Qemu-devel] [RFC v3 09/10] Always use eventfd as notifying mechanism Eric Auger
2014-06-02  7:49 ` [Qemu-devel] [RFC v3 10/10] vfio: Add irqfd support in platform device Eric Auger
2014-06-25 21:35   ` Alexander Graf
2014-06-25 21:54     ` Alex Williamson
2014-06-25 22:02       ` Alexander Graf

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=53AB3D55.2000802@suse.de \
    --to=agraf@suse.de \
    --cc=a.motakis@virtualopensystems.com \
    --cc=a.rigo@virtualopensystems.com \
    --cc=alex.williamson@redhat.com \
    --cc=christoffer.dall@linaro.org \
    --cc=christophe.barnichon@st.com \
    --cc=eric.auger@linaro.org \
    --cc=eric.auger@st.com \
    --cc=kim.phillips@freescale.com \
    --cc=kim.phillips@linaro.org \
    --cc=kvmarm@lists.cs.columbia.edu \
    --cc=patches@linaro.org \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --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).