All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jan Kiszka <jan.kiszka@web.de>
To: Abel Gordon <ABELG@il.ibm.com>
Cc: Alex Landau <LALEX@il.ibm.com>,
	Dan Tsafrir <dan.tsafrir@gmail.com>,
	sheng qiu <herbert1984106@gmail.com>, kvm <kvm@vger.kernel.org>,
	kvm-owner@vger.kernel.org,
	Muli Ben-Yehuda <muli@cs.technion.ac.il>,
	Nadav Har'El <NYH@il.ibm.com>, Nadav Amit <nadav.amit@gmail.com>
Subject: Re: KVM handling external interrupts
Date: Sun, 10 Jun 2012 14:16:11 +0200	[thread overview]
Message-ID: <4FD4900B.6030306@web.de> (raw)
In-Reply-To: <OFECF3B06C.63C5D5A5-ONC2257A19.00394C3B-C2257A19.003AEB24@il.ibm.com>

[-- Attachment #1: Type: text/plain, Size: 2044 bytes --]

On 2012-06-10 12:43, Abel Gordon wrote:
> 
> 
> kvm-owner@vger.kernel.org wrote on 10/06/2012 13:16:01:
> 
>>> Yep, these are corner cases we should deal with but they are not part
>>> of the common case/critical path.
>>>
>>>> I'm wondering if redirecting (to different cores) or masking (at
>>>> device/IOAPIC/LAPIC level) of non-guest interrupts and only relying on
>>>> preemption timer/NMI isn't simpler. Then you wouldn't have to shadow
> the
>>>> IDT.
>>>
>>> Yep, as we suggested in the paper, that could be also an alternative.
>>> Is it really simpler ? Again, depends who you ask and what you need to
>>> change.
>>> All the alternatives have a set of pros and cons.
>>>
>> For sure. But avoiding the shadow IDT would likely mean avoiding
>> userspace changes for KVM. And that means simplification. And avoid PCI
>> dependencies.
> 
> But you lose flexibility. Remember that if you don't shadow the IDT
> you need at least one dedicated core that never uses ELI to handle
> all the physical interrupts. With the shadow IDT, you could enable
> ELI in all the cores.

You need to program the preemption timer anyway. Once you leave some
guest due to its expiry, you will re-enable the host IRQs and process them.

> In addition, if you don't use the shadow IDT, host interrupts will not
> be balanced across all the ELI cores. Thus, if you run many VMs/VCPU, you
> might experience higher latency/bottlenecks or have scalability
> problems unless you use a shadow IDT (depending on the workload,
> offcourse).

That might be an issue.

My feeling is software-based ELI could be a transitional feature (until
hardware supports it properly) and may focus more on static setups where
you have dedicated cores for guests and separated I/O processing.

In any case, I would suggest to start small, mostly self-contained, ie.
with changes that stay within KVM as far as possible. If that is
accepted, you could suggest more sophisticated mechanisms on top,
addressing more use cases.

Jan


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 262 bytes --]

  reply	other threads:[~2012-06-10 12:16 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-07  0:12 KVM handling external interrupts sheng qiu
2012-06-07  7:51 ` Abel Gordon
2012-06-07  8:13   ` Jan Kiszka
2012-06-07  9:02     ` Jan Kiszka
2012-06-07 10:47       ` Abel Gordon
2012-06-07 10:51         ` Jan Kiszka
2012-06-07 11:05           ` Abel Gordon
2012-06-07 11:13             ` Jan Kiszka
2012-06-07 11:51               ` Abel Gordon
2012-06-07 11:54                 ` Jan Kiszka
2012-06-07 12:02                   ` Abel Gordon
2012-06-07 11:10           ` Jan Kiszka
2012-06-07 11:49             ` Abel Gordon
2012-06-07 12:11               ` Jan Kiszka
2012-06-07 12:25                 ` Abel Gordon
2012-06-07 15:05                   ` Jan Kiszka
2012-06-10  8:41                     ` Abel Gordon
2012-06-10 10:16                       ` Jan Kiszka
2012-06-10 10:43                         ` Abel Gordon
2012-06-10 12:16                           ` Jan Kiszka [this message]
2012-06-10 13:30                             ` Abel Gordon
2012-06-07  9:55     ` Abel Gordon
2012-06-07 10:23       ` Jan Kiszka
2012-06-07 10:34         ` Nadav Har'El
2012-06-07 10:48           ` Jan Kiszka
2012-06-07 11:40       ` Jan Kiszka
2012-06-07 12:17         ` Abel Gordon
2012-06-07 12:19           ` Jan Kiszka
2012-06-07 12:32             ` Abel Gordon
2012-06-07 15:07               ` Jan Kiszka
2012-06-10 10:12                 ` Abel Gordon

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=4FD4900B.6030306@web.de \
    --to=jan.kiszka@web.de \
    --cc=ABELG@il.ibm.com \
    --cc=LALEX@il.ibm.com \
    --cc=NYH@il.ibm.com \
    --cc=dan.tsafrir@gmail.com \
    --cc=herbert1984106@gmail.com \
    --cc=kvm-owner@vger.kernel.org \
    --cc=kvm@vger.kernel.org \
    --cc=muli@cs.technion.ac.il \
    --cc=nadav.amit@gmail.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.