All of lore.kernel.org
 help / color / mirror / Atom feed
From: Avi Kivity <avi@qumranet.com>
To: Ben-Ami Yassour <benami@il.ibm.com>
Cc: amit.shah@qumranet.com, kvm@vger.kernel.org,
	Muli Ben-Yehuda <muli@il.ibm.com>,
	weidong.han@intel.com, anthony@codemonkey.ws
Subject: Re: [PATCH 3/8] KVM: Handle device assignment to guests
Date: Thu, 17 Jul 2008 21:04:30 +0300	[thread overview]
Message-ID: <487F89AE.2090807@qumranet.com> (raw)
In-Reply-To: <1216316443.31546.355.camel@cluwyn.haifa.ibm.com>

Ben-Ami Yassour wrote:
> On Thu, 2008-07-17 at 12:50 +0300, Avi Kivity wrote:
>   
>> Ben-Ami Yassour wrote:
>>     
>>> On Wed, 2008-07-16 at 18:04 +0300, Avi Kivity wrote:
>>>   
>>>       
>> If a level triggered interrupt remains active after the eoi, the ioapic 
>> has to inject it.  This is used to support shared interrupts, or when 
>> the device has re-raised the line by the time the ack arrives.
>>
>> I don't see why it should behave differently for assigned devices.
>>
>>     
>
> The difference is that for emulated devices, qemu is resetting the irr
> bit. For assigned devices it does not, and that's the difference.
> The first chance that we can clear the irr bit for real devices is the
> eoi function, and actually this is what the ack notify handler is doing
> (by calling pci_set_irq(kvm,irq,0) ).
> I was able to remove the code in ioapic by calling the ack notify
> handler before the irr check, and it seems to work fine.
>   

Okay.

> (to make it work, I also had to remove the queuing of the ack handler
> which was not necessary, as you mentioned in earlier comment)
>
> The eoi function now looks like this:
> static void __kvm_ioapic_update_eoi(struct kvm_ioapic *ioapic, int gsi)
> {
> 	union ioapic_redir_entry *ent;
>
> 	ent = &ioapic->redirtbl[gsi];
> 	ASSERT(ent->fields.trig_mode == IOAPIC_LEVEL_TRIG);
>
> 	ent->fields.remote_irr = 0;
>
> 	if (ioapic->ack_notifier)
> 		ioapic->ack_notifier(ioapic->kvm, gsi);
>
> 	if (!ent->fields.mask && (ioapic->irr & (1 << gsi)))
> 		ioapic_service(ioapic, gsi);
> }
>
> Any comments on such an approach?
>
>   

I think it's fine.  The point where the ack notifier is called is 
between the end of service of the old interrupt, and the beginning of 
service of a potential new interrupt (from the same device or some other 
device on the same guest line).


-- 
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.


  reply	other threads:[~2008-07-17 18:04 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-07-16 13:16 PCI passthrough with VT-d - native performance Ben-Ami Yassour
2008-07-16 13:16 ` [PATCH 1/8] KVM: Introduce a callback routine for IOAPIC ack handling Ben-Ami Yassour
2008-07-16 13:16   ` [PATCH 2/8] KVM: Introduce a callback routine for PIC " Ben-Ami Yassour
2008-07-16 13:17     ` [PATCH 3/8] KVM: Handle device assignment to guests Ben-Ami Yassour
2008-07-16 13:17       ` [PATCH 4/8] KVM: PCIPT: fix interrupt handling Ben-Ami Yassour
2008-07-16 13:17         ` [PATCH 5/8] KVM: PCIPT: change order of device release Ben-Ami Yassour
2008-07-16 13:17           ` [PATCH 6/8] VT-d: changes to support KVM Ben-Ami Yassour
2008-07-16 13:17             ` [PATCH 7/8] KVM: PCIPT: VT-d support Ben-Ami Yassour
2008-07-16 13:17               ` [PATCH 8/8] KVM: PCIPT: VT-d: dont map mmio memory slots Ben-Ami Yassour
2008-07-16 13:21                 ` PCI passthrough with VT-d - native performance Ben-Ami Yassour
2008-07-16 13:21                   ` [PATCH 1/2] KVM/userspace: Support for assigning PCI devices to guest Ben-Ami Yassour
2008-07-16 13:21                     ` [PATCH 2/2] PCIPT: direct mmio Ben-Ami Yassour
2008-07-17  7:52                     ` [PATCH 1/2] KVM/userspace: Support for assigning PCI devices to guest Han, Weidong
2008-07-22 12:28                       ` Ben-Ami Yassour
2008-07-22 12:44                         ` [PATCH 1/2] KVM/userspace: Support for assigning PCI devicesto guest Han, Weidong
2008-07-16 15:06           ` [PATCH 5/8] KVM: PCIPT: change order of device release Avi Kivity
2008-07-16 15:06         ` [PATCH 4/8] KVM: PCIPT: fix interrupt handling Avi Kivity
2008-07-23 13:37         ` Amit Shah
2008-07-24 11:28           ` Ben-Ami Yassour
2008-07-24 13:31             ` Amit Shah
2008-07-24 14:24               ` Ben-Ami Yassour
2008-07-16 15:04       ` [PATCH 3/8] KVM: Handle device assignment to guests Avi Kivity
2008-07-17  2:09         ` Han, Weidong
2008-07-17  2:29           ` Yang, Sheng
2008-07-17  6:02           ` Avi Kivity
2008-07-17  8:23             ` Ben-Ami Yassour
2008-07-17  8:31               ` Avi Kivity
2008-07-17 18:01                 ` Ben-Ami Yassour
2008-07-17 18:07                   ` Avi Kivity
2008-07-17  9:34         ` Ben-Ami Yassour
2008-07-17  9:50           ` Avi Kivity
2008-07-17 17:40             ` Ben-Ami Yassour
2008-07-17 18:04               ` Avi Kivity [this message]
2008-07-16 14:36 ` PCI passthrough with VT-d - native performance Avi Kivity
2008-07-16 15:18   ` Ben-Ami Yassour
2008-07-16 15:22     ` Avi Kivity
2008-07-16 15:23     ` Anthony Liguori
2008-07-16 16:13       ` Ben-Ami Yassour
2008-07-16 16:57         ` Avi Kivity
2008-07-17  6:24           ` Ben-Ami Yassour
2008-07-17  3:20       ` Han, Weidong

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=487F89AE.2090807@qumranet.com \
    --to=avi@qumranet.com \
    --cc=amit.shah@qumranet.com \
    --cc=anthony@codemonkey.ws \
    --cc=benami@il.ibm.com \
    --cc=kvm@vger.kernel.org \
    --cc=muli@il.ibm.com \
    --cc=weidong.han@intel.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 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.