From: Avi Kivity <avi@redhat.com>
To: Peter Maydell <peter.maydell@linaro.org>
Cc: Jan Kiszka <jan.kiszka@web.de>,
qemu-devel@nongnu.org, Marcelo Tosatti <mtosatti@redhat.com>,
patches@linaro.org, kvm <kvm@vger.kernel.org>,
Alexander Graf <agraf@suse.de>
Subject: Re: [PATCH] kvm: Move kvm_allows_irq0_override() to target-i386
Date: Mon, 23 Jul 2012 16:09:38 +0300 [thread overview]
Message-ID: <500D4D12.1060603@redhat.com> (raw)
In-Reply-To: <CAFEAcA82QQeo1isiQce478wMqURZugoaKQN5cdsR16oRSmVZ4Q@mail.gmail.com>
On 07/23/2012 03:58 PM, Peter Maydell wrote:
> On 23 July 2012 13:26, Avi Kivity <avi@redhat.com> wrote:
>> Really, "irqchip in kernel" means asynchronous interrupts - you can
>> inject an interrupt from outside the vcpu thread. Obviously if the vcpu
>> is sleeping you need to wake it up and that pulls in idle management.
>>
>> "irqchip" for x86 really means the local APIC, which has a synchronous
>> interface with the cpu core. "local APIC in kernel" really is
>> equivalent to "kernel idle management", "KVM_IRQ_LINE", and irqfd. The
>> ioapic and pit, on the other hand, don't contribute anything to this
>> (just performance).
>
>> So yes, ARM with and without GIC are irqchip_in_kernel, since the
>> ARM<->GIC interface is asynchronous. Whether to emulate the GIC or not
>> is just a performance question.
>
> So should we be using something other than KVM_CREATE_IRQCHIP to
> ask the kernel to create a GIC model for us (and leave KVM_CREATE_IRQCHIP
> as a dummy "always succeed" ioctl)?
Some time ago I suggested using the parameter to KVM_CREATE_IRQCHIP to
select the "irqchip type".
>
>> So my view is that ARM with and without kernel GIC are
>> irqchip_in_kernel, since whatever is the local APIC in ARM is always
>> emulated in the kernel.
>
> I'm not sure ARM has any equivalent to the local APIC -- the GIC
> deals with everything and we don't have any equivalent division
> of labour to the x86 LAPIC-IOAPIC one.
It's probably a tiny part of the core with no name. The point is that
the x86<->lapic interface is synchronous and bidirectional, while the
lapic<->ioapic interface is asynchronous (it is still bidirectional, but
not in a stop-the-vcpu way). I assume the ARM<->GIC interface is
unidirectional?
--
error compiling committee.c: too many arguments to function
WARNING: multiple messages have this Message-ID (diff)
From: Avi Kivity <avi@redhat.com>
To: Peter Maydell <peter.maydell@linaro.org>
Cc: kvm <kvm@vger.kernel.org>,
patches@linaro.org, Marcelo Tosatti <mtosatti@redhat.com>,
Alexander Graf <agraf@suse.de>,
qemu-devel@nongnu.org, Jan Kiszka <jan.kiszka@web.de>
Subject: Re: [Qemu-devel] [PATCH] kvm: Move kvm_allows_irq0_override() to target-i386
Date: Mon, 23 Jul 2012 16:09:38 +0300 [thread overview]
Message-ID: <500D4D12.1060603@redhat.com> (raw)
In-Reply-To: <CAFEAcA82QQeo1isiQce478wMqURZugoaKQN5cdsR16oRSmVZ4Q@mail.gmail.com>
On 07/23/2012 03:58 PM, Peter Maydell wrote:
> On 23 July 2012 13:26, Avi Kivity <avi@redhat.com> wrote:
>> Really, "irqchip in kernel" means asynchronous interrupts - you can
>> inject an interrupt from outside the vcpu thread. Obviously if the vcpu
>> is sleeping you need to wake it up and that pulls in idle management.
>>
>> "irqchip" for x86 really means the local APIC, which has a synchronous
>> interface with the cpu core. "local APIC in kernel" really is
>> equivalent to "kernel idle management", "KVM_IRQ_LINE", and irqfd. The
>> ioapic and pit, on the other hand, don't contribute anything to this
>> (just performance).
>
>> So yes, ARM with and without GIC are irqchip_in_kernel, since the
>> ARM<->GIC interface is asynchronous. Whether to emulate the GIC or not
>> is just a performance question.
>
> So should we be using something other than KVM_CREATE_IRQCHIP to
> ask the kernel to create a GIC model for us (and leave KVM_CREATE_IRQCHIP
> as a dummy "always succeed" ioctl)?
Some time ago I suggested using the parameter to KVM_CREATE_IRQCHIP to
select the "irqchip type".
>
>> So my view is that ARM with and without kernel GIC are
>> irqchip_in_kernel, since whatever is the local APIC in ARM is always
>> emulated in the kernel.
>
> I'm not sure ARM has any equivalent to the local APIC -- the GIC
> deals with everything and we don't have any equivalent division
> of labour to the x86 LAPIC-IOAPIC one.
It's probably a tiny part of the core with no name. The point is that
the x86<->lapic interface is synchronous and bidirectional, while the
lapic<->ioapic interface is asynchronous (it is still bidirectional, but
not in a stop-the-vcpu way). I assume the ARM<->GIC interface is
unidirectional?
--
error compiling committee.c: too many arguments to function
next prev parent reply other threads:[~2012-07-23 13:09 UTC|newest]
Thread overview: 79+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-20 19:14 [Qemu-devel] [PATCH] kvm: Move kvm_allows_irq0_override() to target-i386 Peter Maydell
2012-07-21 6:57 ` Jan Kiszka
2012-07-21 6:57 ` [Qemu-devel] " Jan Kiszka
2012-07-21 8:54 ` Peter Maydell
2012-07-21 8:54 ` [Qemu-devel] " Peter Maydell
2012-07-21 9:14 ` Jan Kiszka
2012-07-21 9:14 ` [Qemu-devel] " Jan Kiszka
2012-07-21 9:30 ` Peter Maydell
2012-07-21 9:30 ` [Qemu-devel] " Peter Maydell
2012-07-21 9:44 ` Jan Kiszka
2012-07-21 9:44 ` [Qemu-devel] " Jan Kiszka
2012-07-21 9:56 ` Peter Maydell
2012-07-21 9:56 ` [Qemu-devel] " Peter Maydell
2012-07-21 10:22 ` Jan Kiszka
2012-07-21 10:22 ` [Qemu-devel] " Jan Kiszka
2012-07-21 10:53 ` Peter Maydell
2012-07-21 10:53 ` [Qemu-devel] " Peter Maydell
2012-07-21 11:08 ` Jan Kiszka
2012-07-21 11:08 ` [Qemu-devel] " Jan Kiszka
2012-07-21 12:17 ` Peter Maydell
2012-07-21 12:17 ` [Qemu-devel] " Peter Maydell
2012-07-21 12:35 ` Jan Kiszka
2012-07-21 12:35 ` [Qemu-devel] " Jan Kiszka
2012-07-21 12:57 ` Peter Maydell
2012-07-21 12:57 ` [Qemu-devel] " Peter Maydell
2012-07-21 13:16 ` Jan Kiszka
2012-07-21 13:16 ` [Qemu-devel] " Jan Kiszka
2012-07-23 12:04 ` Cornelia Huck
2012-07-23 12:04 ` [Qemu-devel] " Cornelia Huck
2012-07-23 12:18 ` Avi Kivity
2012-07-23 12:18 ` [Qemu-devel] " Avi Kivity
2012-07-23 12:25 ` Peter Maydell
2012-07-23 12:25 ` [Qemu-devel] " Peter Maydell
2012-07-23 12:31 ` Avi Kivity
2012-07-23 12:31 ` [Qemu-devel] " Avi Kivity
2012-07-23 12:34 ` Avi Kivity
2012-07-23 12:34 ` [Qemu-devel] " Avi Kivity
2012-07-23 13:06 ` Cornelia Huck
2012-07-23 13:06 ` [Qemu-devel] " Cornelia Huck
2012-07-23 13:14 ` Avi Kivity
2012-07-23 13:14 ` [Qemu-devel] " Avi Kivity
2012-07-23 13:55 ` Cornelia Huck
2012-07-23 13:55 ` [Qemu-devel] " Cornelia Huck
2012-07-23 14:27 ` Avi Kivity
2012-07-23 14:27 ` [Qemu-devel] " Avi Kivity
2012-07-23 15:01 ` Cornelia Huck
2012-07-23 15:01 ` [Qemu-devel] " Cornelia Huck
2012-07-23 12:26 ` Avi Kivity
2012-07-23 12:26 ` [Qemu-devel] " Avi Kivity
2012-07-23 12:58 ` Peter Maydell
2012-07-23 12:58 ` [Qemu-devel] " Peter Maydell
2012-07-23 13:09 ` Avi Kivity [this message]
2012-07-23 13:09 ` Avi Kivity
2012-07-23 13:27 ` Peter Maydell
2012-07-23 13:27 ` [Qemu-devel] " Peter Maydell
2012-07-23 13:38 ` Avi Kivity
2012-07-23 13:38 ` [Qemu-devel] " Avi Kivity
2012-07-23 13:50 ` Peter Maydell
2012-07-23 13:50 ` [Qemu-devel] " Peter Maydell
2012-07-23 14:30 ` Avi Kivity
2012-07-23 14:30 ` [Qemu-devel] " Avi Kivity
2012-07-23 17:58 ` Peter Maydell
2012-07-23 17:58 ` [Qemu-devel] " Peter Maydell
2012-07-24 8:50 ` Avi Kivity
2012-07-24 8:50 ` [Qemu-devel] " Avi Kivity
2012-07-24 8:54 ` Peter Maydell
2012-07-24 8:54 ` [Qemu-devel] " Peter Maydell
2012-07-24 8:58 ` Jan Kiszka
2012-07-24 8:58 ` [Qemu-devel] " Jan Kiszka
2012-07-23 15:19 ` Peter Maydell
2012-07-23 15:19 ` [Qemu-devel] " Peter Maydell
2012-07-23 16:55 ` Jan Kiszka
2012-07-23 16:55 ` [Qemu-devel] " Jan Kiszka
2012-07-23 17:41 ` Peter Maydell
2012-07-23 17:41 ` [Qemu-devel] " Peter Maydell
2012-07-23 17:51 ` Jan Kiszka
2012-07-23 17:51 ` [Qemu-devel] " Jan Kiszka
2012-07-24 8:56 ` Avi Kivity
2012-07-24 8:56 ` [Qemu-devel] " Avi Kivity
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=500D4D12.1060603@redhat.com \
--to=avi@redhat.com \
--cc=agraf@suse.de \
--cc=jan.kiszka@web.de \
--cc=kvm@vger.kernel.org \
--cc=mtosatti@redhat.com \
--cc=patches@linaro.org \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.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.