Re: [PATCH 5/5] Fix kdump under KVM.

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

 



On Wed, Oct 28, 2009 at 11:21:42AM +0100, Chris Lalancette wrote:
> Marcelo Tosatti wrote:
> > On Tue, Oct 27, 2009 at 05:41:07PM +0100, Chris Lalancette wrote:
> >> This patch is the main point of the series.  In order for
> >> kdump to properly work inside a KVM guest, we need to make
> >> sure that all VCPUs in virtual wire APIC mode get kicked
> >> to try and pick up the timer interrupts.  To do this,
> >> we iterate over the CPUs and deliver interrupts to the
> >> proper VCPUs.
> >>
> >> I don't love the concept of doing kvm_irq_kick_vcpus() from
> >> within pit_timer_fn().  A PIT is not connected to a CPU at all,
> >> only to a PIC or APIC.  However, if a CPU enters idle, this is
> >> the only way to wake it up to check for the interrupt.
> > 
> > The reason the PIT interrupt was fixed to BSP is:
> > 
> > http://www.mail-archive.com/kvm-devel@xxxxxxxxxxxxxxxxxxxxx/msg13250.html
> > 
> > Perhaps enhancing ioapic_deliver's (irq == 0) check to bypass the       
> > destination overwrite in case its programmed by the guest to 
> > a single CPU would fix it?
> 
> Ug, nasty.  I definitely don't want to re-introduce that bug.  What exactly do
> you mean by "fix it"?  Do you mean fix the original RHEL-5.1 PAE issue, or fix
> the kdump issue?

The kdump issue. Something like:

#ifdef CONFIG_X86
        /* Always delivery PIT interrupt to vcpu 0 */
        if (irq == 0 && dest_multiple_vcpus(entry)) {
                irqe.dest_mode = 0; /* Physical mode. */
                /* need to read apic_id from apic regiest since
                 * it can be rewritten */
                irqe.dest_id = ioapic->kvm->bsp_vcpu->vcpu_id;
        }
#endif

The rest of the code should be ready to deal with it.

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[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