Re: linux-next: Tree for Nov 14

From: Guenter Roeck
Date: Sun Nov 16 2014 - 11:01:28 EST


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.

Guenter

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/