[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] qemu: Fix inject-nmi
From: |
Lai Jiangshan |
Subject: |
Re: [Qemu-devel] [PATCH] qemu: Fix inject-nmi |
Date: |
Mon, 10 Oct 2011 14:06:01 +0800 |
User-agent: |
Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.9) Gecko/20100921 Fedora/3.1.4-1.fc14 Thunderbird/3.1.4 |
On 09/26/2011 04:21 PM, Avi Kivity wrote:
> On 09/25/2011 08:22 PM, Jan Kiszka wrote:
>> On 2011-09-25 16:07, Avi Kivity wrote:
>> > On 09/23/2011 12:31 PM, Lai Jiangshan wrote:
>> >> > Moreover: wrong indention.
>> >> >
>> >> > You know that this won't work for qemu-kvm with in-kernel irqchip?
>> >> You
>> >> > may want to provide a patch for that tree, emulating the unavailable
>> >> > LINT1 injection via testing the APIC configration and then raising an
>> >> > NMI as before if it is accepted.
>> >> >
>> >>
>> >> It works in my box but the NMI is not injected through the in-kernel
>> >> irqchip,
>> >> I will implement it as you suggested.
>> >
>> > Somewhat hacky; isn't it better to test LINT1 in the kernel (and
>> > redefine the KVM_NMI ioctl as "toggle LINT1")?
>>
>> KVM_NMI is required for user space IRQ chip as well.
>
> We could define KVM_NMI as edging the core NMI input if !irqchip_in_kernel,
> and toggling LINT1 otherwise. Hardly nice though.
>
> The current KVM_NMI with irqchip_in_kernel is not meaningful, since it
> doesn't obey the rules of any NMI source.
>
>> Introducing some KVM_SET_LINT1 is an option though. But emulating it for
>> the NMI button on older kernels sounds worthwhile nevertheless.
>>
>
> Perhaps this is the best option to avoid confusion.
>
(add cc: address@hidden)
Hi, All,
When I was implementing KVM_SET_LINT1, I found many places of
the qemu-kvm code need to be changed, and it became nasty.
And as Avi said KVM_NMI with irqchip_in_kernel is not meaningful,
so KVM_NMI is not used anymore when KVM_SET_LINT1 & irqchip_in_kernel,
it is dead.
Now, we redefine KVM_NMI with more proper meaning, when irqchip_in_kernel,
it is kernel/kvm's responsibility to simulate the NMI-injection and set LINT1.
When !irqchip_in_kernel, it is userspace's responsibility.
It results more real simulation and results simpler code,
and it don't need to add new ioctl interface,
and it can make use of existing KVM_NMI.
Thanks,
Lai
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [Qemu-devel] [PATCH] qemu: Fix inject-nmi,
Lai Jiangshan <=