[RFC PATCH] VFIO: Add a parameter to force nonthread IRQ

2015-10-26 Thread Yunhong Jiang
in kernel irq_chip is enabled. It provides more flexibility but is more complex, not sure if we need go through that way. Signed-off-by: Yunhong Jiang --- drivers/vfio/pci/vfio_pci_intrs.c | 10 +- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/drivers/vfio/pci

Re: [RFC PATCH] VFIO: Add a parameter to force nonthread IRQ

2015-10-26 Thread Yunhong Jiang
On Mon, Oct 26, 2015 at 09:37:14PM -0600, Alex Williamson wrote: > On Mon, 2015-10-26 at 18:20 -0700, Yunhong Jiang wrote: > > An option to force VFIO PCI MSI/MSI-X handler as non-threaded IRQ, > > even when CONFIG_IRQ_FORCED_THREADING=y. This is uselful when > > assigning a d

Re: [RFC PATCH] VFIO: Add a parameter to force nonthread IRQ

2015-10-27 Thread Yunhong Jiang
On Tue, Oct 27, 2015 at 10:29:28AM +0100, Paolo Bonzini wrote: > > > On 27/10/2015 07:35, Yunhong Jiang wrote: > > On Mon, Oct 26, 2015 at 09:37:14PM -0600, Alex Williamson wrote: > >> On Mon, 2015-10-26 at 18:20 -0700, Yunhong Jiang wrote: > >>> An option to

Re: [RFC PATCH] VFIO: Add a parameter to force nonthread IRQ

2015-10-28 Thread Yunhong Jiang
On Wed, Oct 28, 2015 at 01:44:55AM +0100, Paolo Bonzini wrote: > > > On 27/10/2015 22:26, Yunhong Jiang wrote: > >> > On RT kernels however can you call eventfd_signal from interrupt > >> > context? You cannot call spin_lock_irqsave (which can sleep) from a >

Re: [RFC PATCH] VFIO: Add a parameter to force nonthread IRQ

2015-10-28 Thread Yunhong Jiang
On Wed, Oct 28, 2015 at 12:18:48PM -0600, Alex Williamson wrote: > On Wed, 2015-10-28 at 10:50 -0700, Yunhong Jiang wrote: > > On Wed, Oct 28, 2015 at 01:44:55AM +0100, Paolo Bonzini wrote: > > It's in linux-next via the kvm.git next branch: > > git://git.kernel.or

Re: [RFC PATCH] VFIO: Add a parameter to force nonthread IRQ

2015-10-29 Thread Yunhong Jiang
On Thu, Oct 29, 2015 at 10:45:44AM +0100, Paolo Bonzini wrote: > > > On 29/10/2015 04:11, Alex Williamson wrote: > > > The irqfd is already able to schedule a work item, because it runs with > > > interrupts disabled, so I think we can always return IRQ_HANDLED. > > > > I'm confused by this. The

[PATCH 5/5] KVM: Expose x86 kvm_arch_set_irq_inatomic()

2015-12-03 Thread Yunhong Jiang
The x86 support setting irq in atomic, expose it to vfio driver. Signed-off-by: Yunhong Jiang --- arch/x86/kvm/Kconfig | 1 + include/linux/kvm_host.h | 19 --- virt/kvm/Kconfig | 3 +++ virt/kvm/eventfd.c | 9 - 4 files changed, 20 insertions(+), 12

[PATCH 0/5] Threaded MSI interrupt for VFIO PCI device

2015-12-03 Thread Yunhong Jiang
interrupt at hard interrupt context. The producer will invoke the consumer's handler then. Yunhong Jiang (5): Extract the irqfd_wakeup_pollin/irqfd_wakeup_pollup Support runtime irq_bypass consumer Support threaded interrupt handling on VFIO Add the irq handling consumer Expos

[PATCH 4/5] KVM: Add the irq handling consumer

2015-12-03 Thread Yunhong Jiang
Add an irq_bypass consumer to the KVM eventfd, so that when a MSI interrupt happens and triggerred from VFIO, it can be handled fast. Signed-off-by: Yunhong Jiang --- include/linux/kvm_irqfd.h | 1 + virt/kvm/eventfd.c| 42 ++ 2 files changed, 43

[PATCH 2/5] VIRT: Support runtime irq_bypass consumer

2015-12-03 Thread Yunhong Jiang
updated to support both static consumer (like for Posted Interrupt consumer) and runtime consumer. Signed-off-by: Yunhong Jiang --- include/linux/irqbypass.h | 8 + virt/lib/irqbypass.c | 82 +++ 2 files changed, 69 insertions(+), 21 deletion

[PATCH 1/5] KVM: Extract the irqfd_wakeup_pollin/irqfd_wakeup_pollup

2015-12-03 Thread Yunhong Jiang
Separate the irqfd_wakeup_pollin/irqfd_wakeup_pollup from the irqfd_wakeup, so that we can reuse the logic for MSI fastpath injection. Signed-off-by: Yunhong Jiang --- virt/kvm/eventfd.c | 86 -- 1 file changed, 51 insertions(+), 35 deletions

[PATCH 3/5] VFIO: Support threaded interrupt handling on VFIO

2015-12-03 Thread Yunhong Jiang
For VFIO device with MSI interrupt type, it's possible to handle the interrupt on hard interrupt context without invoking the interrupt thread. Handling the interrupt on hard interrupt context reduce the interrupt latency. Signed-off-by: Yunhong Jiang --- drivers/vfio/pci/vfio_pci_intrs.c

Re: [PATCH 0/5] Threaded MSI interrupt for VFIO PCI device

2015-12-03 Thread Yunhong Jiang
On Thu, Dec 03, 2015 at 11:55:53AM -0700, Alex Williamson wrote: > On Thu, 2015-12-03 at 10:22 -0800, Yunhong Jiang wrote: > > When assigning a VFIO device to a KVM guest with low latency requirement, > > it > > is better to handle the interrupt in the hard interrupt contex

Re: [PATCH 0/5] Threaded MSI interrupt for VFIO PCI device

2016-01-05 Thread Yunhong Jiang
fast_IRQ. Thanks --jyh > still need the srcu code added here to protect against registration and > irq_handler() races.  Thanks, > > Alex > > > On 03/12/2015 19:22, Yunhong Jiang wrote: > > > When assigning a VFIO device to a KVM guest with low latency > > > requi

Re: [PATCH 0/5] Threaded MSI interrupt for VFIO PCI device

2016-01-05 Thread Yunhong Jiang
On Wed, Dec 16, 2015 at 10:55:12PM +0100, Paolo Bonzini wrote: > > > On 16/12/2015 20:15, Alex Williamson wrote: > > The consumers would be, for instance, Intel PI + the threaded handler > > added in this series. These run independently, the PI bypass simply > > makes the interrupt disappear fro