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

Re: [Xen-devel] linux 4.4 Regression: 100% cpu usage on idle pv guest under Xen with single vcpu



Please note that the same issue appears to have been introduced in the recent 4.2.7 kernel. It perhaps has to do withÂb4ff8389ed14b849354b59ce9b360bdefcdbf99c having a matching commitÂe8d097151d309eb71f750bbf34e6a7ef6256da7e in linux-stable.git. The below patch toÂarch/x86/kernel/rtc.c was also effective for 4.2.7.

Eric

On 2015-12-02 18:30,ÂSander Eikelenboom wrote:
On 2015-12-02 15:55, David Vrabel wrote:
> On 28/11/15 15:47, Sander Eikelenboom wrote:
>> genirq: Flags mismatch irq 8. 00000000 (hvc_console) vs. 00000000
>> (rtc0)
>
> We shouldn't register an rtc_cmos device because its legacy irq
> conflicts with the irq needed for hvc0. For a multi VCPU guest irq 8
> is
> in use for the pv spinlocks and this gets requested first, preventing
> the rtc device from probing.
>
> Does this patch fix it for you?
>
> David

It does, thanks.

Reported-and-tested-by: Sander Eikelenboom <linux@eikelenboom.it>

--
Sander

> 8<--------------------
> x86: rtc_cmos platform device requires legacy irqs
>
> Adding the rtc platform device when there are no legacy irqs (no
> legacy PIC) causes a conflict with other devices that end up using the
> same irq number.
>
> In a single VCPU PV guest we should have:
>
> /proc/interrupts:
>Â Â Â Â Â Â CPU0
> Â0:   Â4934 xen-percpu-virq   timer0
> Â1:     0 xen-percpu-ipi   Âspinlock0
> Â2:     0 xen-percpu-ipi   Âresched0
> Â3:     0 xen-percpu-ipi   Âcallfunc0
> Â4:     0 xen-percpu-virq   debug0
> Â5:     0 xen-percpu-ipi   Âcallfuncsingle0
> Â6:     0 xen-percpu-ipi   Âirqwork0
> Â7:    321 Âxen-dyn-event  Âxenbus
> Â8:    Â90 Âxen-dyn-event  Âhvc_console
>Â Â...
>
> But hvc_console cannot get its interrupt because it is already in use
> by rtc0 and the console does not work.
>
>Â Âgenirq: Flags mismatch irq 8. 00000000 (hvc_console) vs. 00000000
> (rtc0)
>
> The rtc_cmos device requires a particular legacy irq so don't add it
> if there are no legacy irqs.
>
> Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx>
> ---
>Â arch/x86/kernel/rtc.c | 5 +++++
>Â 1 file changed, 5 insertions(+)
>
> diff --git a/arch/x86/kernel/rtc.c b/arch/x86/kernel/rtc.c
> index cd96852..07c70f1 100644
> --- a/arch/x86/kernel/rtc.c
> +++ b/arch/x86/kernel/rtc.c
> @@ -14,6 +14,7 @@
>Â #include <asm/time.h>
>Â #include <asm/intel-mid.h>
>Â #include <asm/rtc.h>
> +#include <asm/i8259.h>
>
>Â #ifdef CONFIG_X86_32
>Â /*
> @@ -200,6 +201,10 @@ static __init int add_rtc_cmos(void)
>Â Â Â Â}
>Â #endif
>
> +Â Â Â/* RTC uses legacy IRQs. */
> +Â Â Âif (!nr_legacy_irqs())
> +Â Â Â Â Â Â Âreturn -ENODEV;
> +
>Â Â Â Âplatform_device_register(&rtc_device);
>Â Â Â Âdev_info(&rtc_device.dev,
>Â Â Â Â Â Â Â Â "registered platform RTC device (no PNP device found)\n");
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.