Re: [RFC][PATCH 0/2] Fix guest shared interrupt with in-kernel irqchip

2008-10-10 Thread Amit Shah
* On Friday 03 Oct 2008 16:07:54 Sheng Yang wrote: @@ -319,15 +319,23 @@ static int kvm_vm_ioctl_assign_device(struct kvm *kvm, list_add(match-list, kvm-arch.assigned_dev_head); + r = kvm_request_irq_source_id(kvm); This should be done in the kvm_vm_ioctl_assign_irq call, just

Re: [RFC][PATCH 0/2] Fix guest shared interrupt with in-kernel irqchip

2008-10-08 Thread Sheng Yang
On Friday 03 October 2008 15:36:53 Amit Shah wrote: * On Thursday 02 Oct 2008 22:15:59 Sheng Yang wrote: /* This should be called with the kvm-lock mutex held */ -void kvm_set_irq(struct kvm *kvm, int irq, int level) +void kvm_set_irq(struct kvm *kvm, int irq, int level, int irq_source_id)

Re: [RFC][PATCH 0/2] Fix guest shared interrupt with in-kernel irqchip

2008-10-06 Thread Sheng Yang
On Sat, 2008-10-04 at 11:47 +0300, Avi Kivity wrote: Sheng Yang wrote: Derived from Avi's suggestion, now every call of kvm_set_irq() should offer a irq_source_id, which is allocated by kvm_allocate_irq_sources(). We based on irq_source_id to identify irq source and implement logical OR for

Re: [RFC][PATCH 0/2] Fix guest shared interrupt with in-kernel irqchip

2008-10-06 Thread Sheng Yang
On Mon, 2008-10-06 at 14:23 +0800, Sheng Yang wrote: On Sat, 2008-10-04 at 11:47 +0300, Avi Kivity wrote: Sheng Yang wrote: Derived from Avi's suggestion, now every call of kvm_set_irq() should offer a irq_source_id, which is allocated by kvm_allocate_irq_sources(). We based on

Re: [RFC][PATCH 0/2] Fix guest shared interrupt with in-kernel irqchip

2008-10-04 Thread Avi Kivity
Sheng Yang wrote: Derived from Avi's suggestion, now every call of kvm_set_irq() should offer a irq_source_id, which is allocated by kvm_allocate_irq_sources(). We based on irq_source_id to identify irq source and implement logical OR for shared level interrupts. The allocated irq_source_id can

Re: [RFC][PATCH 0/2] Fix guest shared interrupt with in-kernel irqchip

2008-10-03 Thread Amit Shah
* On Thursday 02 Oct 2008 22:15:59 Sheng Yang wrote: /* This should be called with the kvm-lock mutex held */ -void kvm_set_irq(struct kvm *kvm, int irq, int level) +void kvm_set_irq(struct kvm *kvm, int irq, int level, int irq_source_id) Just one thing: can you make the irq_source_id

Re: [RFC][PATCH 0/2] Fix guest shared interrupt with in-kernel irqchip

2008-10-03 Thread Sheng Yang
On Fri, Oct 03, 2008 at 01:06:53PM +0530, Amit Shah wrote: * On Thursday 02 Oct 2008 22:15:59 Sheng Yang wrote: /* This should be called with the kvm-lock mutex held */ -void kvm_set_irq(struct kvm *kvm, int irq, int level) +void kvm_set_irq(struct kvm *kvm, int irq, int level, int

[RFC][PATCH 0/2] Fix guest shared interrupt with in-kernel irqchip

2008-10-02 Thread Yang, Sheng
To deal with guest shared interrupt bug in in-kernel irqchip, we should: 1. Identify each level trig interrupt source. 2. Implement logical OR on the same IRQ line for each interrupt source. Here I chose a simple method: the caller of kvm_set_irq() has responsiblity to identify interrupt

Re: [RFC][PATCH 0/2] Fix guest shared interrupt with in-kernel irqchip

2008-10-02 Thread Avi Kivity
Yang, Sheng wrote: To deal with guest shared interrupt bug in in-kernel irqchip, we should: 1. Identify each level trig interrupt source. 2. Implement logical OR on the same IRQ line for each interrupt source. Here I chose a simple method: the caller of kvm_set_irq() has responsiblity to

Re: [RFC][PATCH 0/2] Fix guest shared interrupt with in-kernel irqchip

2008-10-02 Thread Sheng Yang
On Thu, Oct 02, 2008 at 04:27:18PM +0300, Avi Kivity wrote: Yang, Sheng wrote: To deal with guest shared interrupt bug in in-kernel irqchip, we should: 1. Identify each level trig interrupt source. 2. Implement logical OR on the same IRQ line for each interrupt source. Here I chose a simple

Re: [RFC][PATCH 0/2] Fix guest shared interrupt with in-kernel irqchip

2008-10-02 Thread Sheng Yang
How about this one? Still untested. -- From: Sheng Yang [EMAIL PROTECTED] Date: Fri, 3 Oct 2008 00:07:20 +0800 Subject: [PATCH 1/1] KVM: Fix guest shared interrupt with in-kernel irqchip Derived from Avi's suggestion, now every call of kvm_set_irq() should offer a irq_source_id, which is