Re: qemu-x86: kernel panic when host is loaded

From: Dongli Zhang
Date: Thu Apr 02 2020 - 10:05:28 EST




On 4/2/20 2:57 AM, Thomas Gleixner wrote:
> Corentin,
>
> Corentin Labbe <clabbe.montjoie@xxxxxxxxx> writes:
>> On our kernelci lab, each qemu worker pass an healtcheck job each day and after each job failure, so it is heavily used.
>> The healtcheck job is a Linux boot with a stable release.
>>
>> Since we upgraded our worker to buster, the qemu x86_64 healthcheck randomly panic with:
>> <0>[ 0.009000] Kernel panic - not syncing: IO-APIC + timer doesn't work! Boot with apic=debug and send a report. Then try booting with the 'noapic' option.
>>
>> After some test I found the source of this kernel panic, the host is
>> loaded and qemu run "slower". Simply renicing all qemu removed this
>> behavour.
>>
>> So now what can I do ?
>> Appart renicing qemu process, does something could be done ?
>
> As the qemu timer/ioapic routing is actually sane, you might try to add
> "no_timer_check" to the kernel command line.
>

The no_timer_check is already permanently disabled in below commit?

commit a90ede7b17d1 ("KVM: x86: paravirt skip pit-through-ioapic boot check")

In addition, hyperv and vmware also disabled that:

commit ca3ba2a2f4a4 ("x86, hyperv: Bypass the timer_irq_works() check").

commit 854dd54245f7 ("x86/vmware: Skip timer_irq_works() check on VMware")

Dongli Zhang