Subject: Re: linux-next: Tree for Nov 14

From: Guenter Roeck <[email-masked]>
Date: Mon, 17 Nov 2014 09:02:15 -0800

On Mon, Nov 17, 2014 at 01:12:17PM +0800, Jiang Liu wrote:
> On 2014/11/16 11:22, Guenter Roeck wrote:
> > On 11/15/2014 06:33 PM, Jiang Liu wrote:
> >> Hi Guenter,
> >>     Could you please help to provide the config file and
> >> error messages?
> > 
> > Config file:
> >     https://github.com/groeck/linux-build-test/blob/master/rootfs/x86/qemu_x86_pc_nosmp_defconfig
> > 
> > 
> > Error log:
> >     http://server.roeck-us.net:8010/builders/qemu-x86-next/builds/44/steps/qemubuildcommand/logs/stdio
> > 
> > 
> > You can find the root file system used for the test as well as the test
> > script at
> >     https://github.com/groeck/linux-build-test/tree/master/rootfs/x86
> > 
> > There isn't really an error message, though - the boot stalls until the
> > controlling daemon
> > kills the qemu session.
> Hi Guenter,
> 	With the test suite at
> https://github.com/groeck/linux-build-test/tree/master/rootfs/x86
> and configuration file qemu_x86_pc_nosmp_defconfig, I have
> following findings:
> 1) disabling PCI_MSI, <OK>.
> 2) manually turning on X86_IO_APIC, <OK>.
> 3) with 3.16 kernel, disabling PCI_MSI, <OK>
> 4) with 3.16 kernel, disabling PCI_MSI, enabling X86_UP_APIC, <fail>
> 
> So the root cause is that KVM doesn't support the configuration with
> LOCAL_APIC enabled but IO_APIC disabled, though this configuration
> works with bare-metal machines.
> There are two possible solutions here:
> 1) ALways enalbe IO_APIC if KVM is enabled.
> 2) Enhance KVM to support LOCAL_APIC when IOAPIC is disabled.
> 
> But I'm not familiar with KVM and don't know how to achieve solution 2.
> Any suggestions?

I don't understand KVM well enough either. For my part I don't understand why
APIC configuration in the kernel differs between the SMP and the non-SMP case
(ie why X86_IO_APIC is enabled for smp but not for non-smp). After all, the
hardware does not change. On the other side I don't have to understand it ;-).

I "solved" the problem in my test scripts by disabling PCI_MSI for the
x86/non-smp test. That doesn't really solve anything, but there is only
so much I can do.

Thanks,
Guenter