From mboxrd@z Thu Jan 1 00:00:00 1970 From: Guenter Roeck Subject: Re: linux-next: Tree for Nov 14 Date: Sun, 16 Nov 2014 08:11:10 -0800 Message-ID: <5468CC9E.7010300@roeck-us.net> References: <20141114192738.08e744cc@canb.auug.org.au> <20141115211922.GA2347@roeck-us.net> <54680D0A.7070900@linux.intel.com> <5468185D.5020400@roeck-us.net> <54682618.1070508@linux.intel.com> <54684A9E.90606@roeck-us.net> <54685F39.3060007@linux.intel.com> <5468CA48.3040504@roeck-us.net> Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <5468CA48.3040504@roeck-us.net> Sender: linux-kernel-owner@vger.kernel.org To: Jiang Liu , Stephen Rothwell Cc: linux-next@vger.kernel.org, linux-kernel@vger.kernel.org, Thomas Gleixner List-Id: linux-next.vger.kernel.org On 11/16/2014 08:01 AM, Guenter Roeck wrote: > On 11/16/2014 12:24 AM, Jiang Liu wrote: >> On 2014/11/16 14:56, Guenter Roeck wrote: >>> On 11/15/2014 08:20 PM, 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 >>>>> >>>> Hi Guenter, >>>> Thanks for help. According to the above configuration file: >>>> CONFIG_PCI_MSI is enabled, but CONFIG_X86_LOCAL_APIC and >>>> CONFIG_X86_IO_APIC are both disabled. But the Kconfig for X86_LOCAL_APIC >>>> is defined as: >>>> config X86_LOCAL_APIC >>>> def_bool y >>>> depends on X86_64 || SMP || X86_32_NON_STANDARD || X86_UP_APIC >>>> || PCI_MSI >>>> select GENERIC_IRQ_LEGACY_ALLOC_HWIRQ >>>> >>>> That means CONFIG_X86_LOCAL_APIC should be enabled if CONFIG_PCI_MSI is >>>> enabled. So how did you generate the qemu_x86_pc_nosmp_defconfig? Are >>>> you using an old configuration file? >>> >>> I took the configuration file I had for the SMP case (located in the same >>> directory in the git repository), disabled SMP, and ran "make >>> savedefconfig". >>> "old" is relative in this context; I don't usually create new configuration >>> files for each new kernel release, so, yes, you could say that the file >>> I used is "old". >>> >>> CONFIG_X86_LOCAL_APIC is enabled. Keep in mind this is a configuration file >>> created with "make savedefconfig", so default settings are not included. >>> Correct, CONFIG_X86_IO_APIC is not enabled, but that is not really >>> surprising >>> since its dependencies are not met as far as I can see. >>> >>> Overall, I am not sure I understand what you are trying to say. X86_IO_APIC >>> depends on X86_64 (not set) or SMP (not set) or X86_32_NON_STANDARD (not >>> set) >>> or X86_UP_IOAPIC (not set because it depends on X86_UP_APIC which >>> depends on >>> !PCI_MSI). >>> >>> Does that mean that I'll have to disable PCI_MSI to get x86 uniprocessor >>> support to work after your patch ? >> Hi Guenter, >> Previously, X86_IO_APIC will be enabled if PCI_MSI is enabled. >> With my patch, x86_IO_APIC may be disabled even if PCI_MSI is enabled. >> If X86_LOCAL_APIC/PCI_MSI are enabled and X86_IO_APIC is disabled, it >> should work theoretically. I remember it works on my HP laptop. >> Could you please help to check whether it solve the issue by manually >> turning on X86_IO_APIC? > > I can not turn on X86_IO_APIC manually. I have to enable one of the > following to do it. > > def_bool X86_64 || SMP || X86_32_NON_STANDARD || X86_UP_IOAPIC > > Since I want to build for 32 bit, I can not enable X86_64. > Since I want to build a uniprocessor image, I can not enable SMP. > X86_32_NON_STANDARD depends on SMP, so I can not enable it either. > X86_UP_IOAPIC depends on X86_UP_APIC which I can only enable by > disabling PCI_MSI. > > So I disabled PCI_MSI and enabled X86_UP_IOAPIC as well as X86_IO_APIC. > The resulting image hangs completely with no console output whatsoever. > Additional data points: After reverting your patch on top of linux-next, everything works fine. The working configuration has CONFIG_IRQ_DOMAIN, CONFIG_X86_IO_APIC, CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS, and CONFIG_ACPI_HOTPLUG_IOAPIC enabled. The non-working configuration (with your patch applied) has all those disabled. Guenter