All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: Alex Williamson <alex.williamson@redhat.com>,
	Joerg Roedel <joro@8bytes.org>
Cc: Eric Auger <eric.auger@linaro.org>,
	eric.auger@st.com, linux-arm-kernel@lists.infradead.org,
	kvmarm@lists.cs.columbia.edu, kvm@vger.kernel.org,
	christoffer.dall@linaro.org, marc.zyngier@arm.com,
	avi.kivity@gmail.com, mtosatti@redhat.com, feng.wu@intel.com,
	b.reynal@virtualopensystems.com, linux-kernel@vger.kernel.org,
	patches@linaro.org
Subject: Re: [RFC v2 0/6] IRQ bypass manager and irqfd consumer
Date: Thu, 9 Jul 2015 16:38:41 +0200	[thread overview]
Message-ID: <559E8771.9010401@redhat.com> (raw)
In-Reply-To: <1436451223.1391.219.camel@redhat.com>



On 09/07/2015 16:13, Alex Williamson wrote:
> On Thu, 2015-07-09 at 14:28 +0200, Joerg Roedel wrote:
>> On Tue, Jul 07, 2015 at 11:17:48AM -0600, Alex Williamson wrote:
>>> Hosting the bypass manager in kernel/irq seemed appropriate, but really
>>> it could be anywhere.  Does anyone have a different preference or
>>> specifically want it under their scope?  We had originally thought of
>>> this as an IOMMU service, but I think we've generalized it beyond that.
>>> I expect we should also add the necessary hooks to turn it into a
>>> loadable module to keep the tinification folks happy, I'll incorporate
>>> the current working changes and post a version with that.
>>
>> Yeah, this is only an IOMMU service on x86, afaik. So drivers/iommu is
>> probably the wrong place to host it.
>>
>> Will there be any other producers than VFIO or any other consumers than
>> KVM? If not, it should live in one of these spaces. KVM is probably the
>> best choice, as any hardware feature that uses this targets
>> virtualization, so there will hardly ever be another consumer than KVM.
> 
> If we think that it's *only* a kvm-vfio interaction then we could add it
> to virt/kvm/vfio.c.  vfio could use symbol_get to avoid a module
> dependency and effectively disable the code path when not used with kvm.
> The reverse model of hosting it in vfio and using symbol_get from
> kvm-vfio would also work.  Do we really want to declare it to be
> kvm-vfio specific though?  Another option would be to simply host it
> under virt/lib with module dependencies for both vfio and kvm.

I wonder if in the future we may have some kind of driver-mediated
passthrough, e.g. for network drivers.  They might use the bypass
mechanism too.  So I think drivers/vfio is too restrictive.

virt/ right now only hosts KVM, but it could for example host lguest
too.  virt/lib/ is okay with me.

Paolo

WARNING: multiple messages have this Message-ID (diff)
From: pbonzini@redhat.com (Paolo Bonzini)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC v2 0/6] IRQ bypass manager and irqfd consumer
Date: Thu, 9 Jul 2015 16:38:41 +0200	[thread overview]
Message-ID: <559E8771.9010401@redhat.com> (raw)
In-Reply-To: <1436451223.1391.219.camel@redhat.com>



On 09/07/2015 16:13, Alex Williamson wrote:
> On Thu, 2015-07-09 at 14:28 +0200, Joerg Roedel wrote:
>> On Tue, Jul 07, 2015 at 11:17:48AM -0600, Alex Williamson wrote:
>>> Hosting the bypass manager in kernel/irq seemed appropriate, but really
>>> it could be anywhere.  Does anyone have a different preference or
>>> specifically want it under their scope?  We had originally thought of
>>> this as an IOMMU service, but I think we've generalized it beyond that.
>>> I expect we should also add the necessary hooks to turn it into a
>>> loadable module to keep the tinification folks happy, I'll incorporate
>>> the current working changes and post a version with that.
>>
>> Yeah, this is only an IOMMU service on x86, afaik. So drivers/iommu is
>> probably the wrong place to host it.
>>
>> Will there be any other producers than VFIO or any other consumers than
>> KVM? If not, it should live in one of these spaces. KVM is probably the
>> best choice, as any hardware feature that uses this targets
>> virtualization, so there will hardly ever be another consumer than KVM.
> 
> If we think that it's *only* a kvm-vfio interaction then we could add it
> to virt/kvm/vfio.c.  vfio could use symbol_get to avoid a module
> dependency and effectively disable the code path when not used with kvm.
> The reverse model of hosting it in vfio and using symbol_get from
> kvm-vfio would also work.  Do we really want to declare it to be
> kvm-vfio specific though?  Another option would be to simply host it
> under virt/lib with module dependencies for both vfio and kvm.

I wonder if in the future we may have some kind of driver-mediated
passthrough, e.g. for network drivers.  They might use the bypass
mechanism too.  So I think drivers/vfio is too restrictive.

virt/ right now only hosts KVM, but it could for example host lguest
too.  virt/lib/ is okay with me.

Paolo

  reply	other threads:[~2015-07-09 14:38 UTC|newest]

Thread overview: 72+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-07-06 12:11 [RFC v2 0/6] IRQ bypass manager and irqfd consumer Eric Auger
2015-07-06 12:11 ` Eric Auger
2015-07-06 12:11 ` [RFC v2 1/6] KVM: arm/arm64: select IRQ_BYPASS_MANAGER Eric Auger
2015-07-06 12:11   ` Eric Auger
2015-07-06 12:24   ` Paolo Bonzini
2015-07-06 12:24     ` Paolo Bonzini
2015-07-06 12:11 ` [RFC v2 2/6] VFIO: platform: " Eric Auger
2015-07-06 12:11   ` Eric Auger
2015-07-06 12:11 ` [RFC v2 3/6] irq: bypass: Extend skeleton for ARM forwarding control Eric Auger
2015-07-06 12:11   ` Eric Auger
2015-07-06 12:27   ` Paolo Bonzini
2015-07-06 12:27     ` Paolo Bonzini
2015-07-06 15:35     ` Eric Auger
2015-07-06 15:35       ` Eric Auger
2015-07-06 15:57       ` Paolo Bonzini
2015-07-06 15:57         ` Paolo Bonzini
2015-07-06 17:09         ` Eric Auger
2015-07-06 17:09           ` Eric Auger
2015-07-06 17:41           ` Paolo Bonzini
2015-07-06 17:41             ` Paolo Bonzini
2015-07-07  7:10             ` Eric Auger
2015-07-07  7:10               ` Eric Auger
2015-07-07  8:58               ` Paolo Bonzini
2015-07-07  8:58                 ` Paolo Bonzini
2015-07-07 10:58   ` Wu, Feng
2015-07-07 10:58     ` Wu, Feng
2015-07-07 11:00     ` Paolo Bonzini
2015-07-07 11:00       ` Paolo Bonzini
2015-07-07 11:13       ` Wu, Feng
2015-07-07 11:13         ` Wu, Feng
2015-07-07 11:13         ` Wu, Feng
2015-07-07 11:13         ` Paolo Bonzini
2015-07-07 11:13           ` Paolo Bonzini
2015-07-07 11:18           ` Wu, Feng
2015-07-07 11:18             ` Wu, Feng
2015-07-07 11:21             ` Paolo Bonzini
2015-07-07 11:21               ` Paolo Bonzini
2015-07-07 11:24               ` Wu, Feng
2015-07-07 11:24                 ` Wu, Feng
2015-07-07 11:33                 ` Wu, Feng
2015-07-07 11:33                   ` Wu, Feng
2015-07-07 13:22                   ` Paolo Bonzini
2015-07-07 13:22                     ` Paolo Bonzini
2015-07-06 12:11 ` [RFC v2 4/6] KVM: create kvm_irqfd.h Eric Auger
2015-07-06 12:11   ` Eric Auger
2015-07-06 12:11 ` [RFC v2 5/6] KVM: introduce kvm_arch functions for IRQ bypass Eric Auger
2015-07-06 12:11   ` Eric Auger
2015-07-06 12:11 ` [RFC v2 6/6] KVM: eventfd: add irq bypass consumer management Eric Auger
2015-07-06 12:11   ` Eric Auger
2015-07-07  8:47   ` Wu, Feng
2015-07-07  8:47     ` Wu, Feng
2015-07-07  9:05     ` Eric Auger
2015-07-07  9:05       ` Eric Auger
2015-07-07  9:13       ` Wu, Feng
2015-07-07  9:13         ` Wu, Feng
2015-07-07 17:17 ` [RFC v2 0/6] IRQ bypass manager and irqfd consumer Alex Williamson
2015-07-07 17:17   ` Alex Williamson
2015-07-07 17:17   ` Alex Williamson
2015-07-09 12:28   ` Joerg Roedel
2015-07-09 12:28     ` Joerg Roedel
2015-07-09 14:13     ` Alex Williamson
2015-07-09 14:13       ` Alex Williamson
2015-07-09 14:38       ` Paolo Bonzini [this message]
2015-07-09 14:38         ` Paolo Bonzini
2015-07-09 15:34         ` Joerg Roedel
2015-07-09 15:34           ` Joerg Roedel
2015-07-09 15:34           ` Joerg Roedel
2015-07-09 16:06           ` Alex Williamson
2015-07-09 16:06             ` Alex Williamson
2015-07-09 16:06             ` Alex Williamson
2015-07-24  1:27 ` Wu, Feng
2015-07-24  1:27   ` Wu, Feng

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=559E8771.9010401@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=alex.williamson@redhat.com \
    --cc=avi.kivity@gmail.com \
    --cc=b.reynal@virtualopensystems.com \
    --cc=christoffer.dall@linaro.org \
    --cc=eric.auger@linaro.org \
    --cc=eric.auger@st.com \
    --cc=feng.wu@intel.com \
    --cc=joro@8bytes.org \
    --cc=kvm@vger.kernel.org \
    --cc=kvmarm@lists.cs.columbia.edu \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=marc.zyngier@arm.com \
    --cc=mtosatti@redhat.com \
    --cc=patches@linaro.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.