Re: [bisected][resend] pnp: Huge number of "io resource overlap" messages
From: Frans Pop
Date: Thu Sep 11 2008 - 12:59:01 EST
On Wednesday 10 September 2008, Bjorn Helgaas wrote:
> Are there any BIOS setup options related to them?
The BIOS setup has no options to enable/disable these devices.
The only option I can see that could be relevant is:
=CONFIGURATION=
Device Config. = [Setup by OS | All Devices]
This was set to "Setup by OS".
[me reboots with that option changed]
Hmm. If I change that option to "All devices" the "io resource overlap"
messages disappear!
> If I were trying to figure out where we assign resources, I'd probably
> boot with "pci=earlydump" and sprinkle calls to early_dump_pci_device()
> in pcibios_resource_survey(), and drill down from there.
Attached are two logs with PCI debugging enabled and extra "early dumps"
included in the following places (changes in includes omitted):
+++ b/arch/x86/pci/i386.c
@@ -31,6 +31,7 @@
@@ -224,9 +225,11 @@ static int __init pcibios_assign_resources(void)
void __init pcibios_resource_survey(void)
{
DBG("PCI: Allocating resources\n");
+ early_dump_pci_devices();
pcibios_allocate_bus_resources(&pci_root_buses);
pcibios_allocate_resources(0);
pcibios_allocate_resources(1);
+ early_dump_pci_devices();
}
+++ b/sound/pci/intel8x0.c
@@ -41,6 +41,7 @@
@@ -2799,6 +2800,7 @@ static int __devinit snd_intel8x0_create(struct snd_card *card,
if ((err = pci_enable_device(pci)) < 0)
return err;
+ early_dump_pci_devices();
chip = kzalloc(sizeof(*chip), GFP_KERNEL);
if (chip == NULL) {
The "Setup by OS" log does show the following _after_ the PNP quirks:
pci 0000:00:1f.5: BAR 2: got res [0x2c080800-0x2c0809ff] bus [0x2c080800-0x2c0809ff] flags 0x20200
pci 0000:00:1f.5: BAR 2: moved to bus [0x2c080800-0x2c0809ff] flags 0x20200
pci 0000:00:1f.5: BAR 0: got res [0x1000-0x10ff] bus [0x1000-0x10ff] flags 0x20101
pci 0000:00:1f.5: BAR 0: moved to bus [0x1000-0x10ff] flags 0x20101
pci 0000:00:1f.5: BAR 3: got res [0x2c080a00-0x2c080aff] bus [0x2c080a00-0x2c080aff] flags 0x20200
pci 0000:00:1f.5: BAR 3: moved to bus [0x2c080a00-0x2c080aff] flags 0x20200
pci 0000:00:1f.6: BAR 0: got res [0x1400-0x14ff] bus [0x1400-0x14ff] flags 0x20101
pci 0000:00:1f.6: BAR 0: moved to bus [0x1400-0x14ff] flags 0x20101
pci 0000:00:1f.6: BAR 1: got res [0x1800-0x187f] bus [0x1800-0x187f] flags 0x20101
pci 0000:00:1f.6: BAR 1: moved to bus [0x1800-0x187f] flags 0x20101
pci 0000:00:1f.5: BAR 1: got res [0x1880-0x18bf] bus [0x1880-0x18bf] flags 0x20101
pci 0000:00:1f.5: BAR 1: moved to bus [0x1880-0x18bf] flags 0x20101
The diff between the logs is quite clear and illumination. It also shows
differences in the "early dumps". Hope you can tell more from that.
If you'd like me to do more instrumentation, please let me know.
I guess I'll leave that BIOS option in the "All devices" setting. However,
I doubt I'm the only person who has it in the "Setup by OS" setting.
Cheers,
FJP
Attachment:
all-devices.dmesg.gz
Description: GNU Zip compressed data
Attachment:
setup-by-os.dmesg.gz
Description: GNU Zip compressed data