Re: nmi is broken?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2011-04-24 08:44, Avi Kivity wrote:
> On 04/24/2011 01:50 AM, OGAWA Hirofumi wrote:
>> OGAWA Hirofumi<hirofumi@xxxxxxxxxxxxxxxxxx>  writes:
>>
>> >  I noticed recently NMI on guest kernel is not working well. 
>> host/guest
>> >  kernel is 2.6.39-rc4, and using vmx.
>> >
>> >  And test code is something like the following:
>> >
>> >      local_irq_disable();
>> >      for (i = 0; i<  10; i++) {
>> >          int cpu = get_cpu();
>> >          printk("%s: nmi %u, lapic %u\n", __FUNCTION__,
>> >              nmi_count(cpu), irq_stat[cpu].apic_timer_irqs);
>> >          mdelay(1000);
>> >          put_cpu();
>> >      }
>> >
>> >  the result is both of nmi and lapic are not increased. If I used
>> >  -no-kvm-irqchip, it works fine (increase nmi only). So, it seems to be
>> >  the bug of kvm driver side.
>>
>> With some debug, the cause seems to be in pit_do_work(). With the
>> following patch, NMI watchdog seems to be working correctly (if irq
>> disabled for long time, NMI watchdog can detect it).
>>
>> Is the following patch right?
> 
> This would cause IRQs to be delivered even if the PIT is masked, no?

I checked the patch and our code again: NMI watchdog masking is managed
via arch.vapics_in_nmi_mode and by re-checking the per-APIC mask
situation in kvm_apic_local_deliver when delivering the NMI.

So the patch looks correct - NMIs aren't acked like timer IRQs, the
current logic is definitely wrong.

Jan

Attachment: signature.asc
Description: OpenPGP digital signature


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux