Re: pnpacpi : exceeded the max number of IO resources

Bjorn Helgaas
2007-12-05T20:39:22Z

On Monday 03 December 2007 06:15:40 pm Dave Young wrote:
> On Tue, Dec 04, 2007 at 08:55:13AM +0800, Shaohua Li wrote:
> >
> > On Mon, 2007-12-03 at 18:02 +0100, Rene Herman wrote:
> > > On 30-11-07 23:22, Rene Herman wrote:
> > >
> > > > On 30-11-07 14:14, Chris Holvenstot wrote:
> > > >
> > > >> For what it is worth I too have seen this problem this morning and it
> > > >> DOES appear to be new (in contrast to a previous comment)
> > > >>
> > > >> The message: pnpacpi: exceeded the max number of mem resources: 12
> > > >>
> > > >> is displayed each time the system is booted with the 2.6.24-rc3-git5
> > > >> kernel but is NOT displayed when booting 2.6.24-rc3-git4
> > > >>
> > > >> I have made no changes in my config file between these two kernels other
> > > >> than to accept any new defaults when running make oldconfig.
> > > >>
> > > >> If you had already narrowed it down to a change between git4 and git5 I
> > > >> apologize for wasting your time. Have to run to work now.
> > > >
> > > > Thanks, and re-added the proper CCs. Sigh...
> > > >
> > > > Well, yes, the warning is actually new as well. Previously your kernel
> > > > just silently ignored 8 more mem resources than it does now it seems.
> > > >
> > > > Given that people are hitting these limits, it might make sense to just
> > > > do away with the warning for 2.6.24 again while waiting for the dynamic
> > > > code?
> > >
> > > Ping. Should these warnings be reverted for 2.6.24?
> > Revert the warning doesn't make any sense. I'd suggest changing the IO
> > resources number bigger till Thomas's patch in.
> Agree.
> Change it to 90 works for me, But I think maybe 128 is better.
>
> include/linux/pnp.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff -upr linux/include/linux/pnp.h linux.new/include/linux/pnp.h
> --- linux/include/linux/pnp.h 2007-12-04 09:09:23.000000000 +0800
> +++ linux.new/include/linux/pnp.h 2007-12-04 09:09:40.000000000 +0800
> @@ -13,7 +13,7 @@
> #include <linux/errno.h>
> #include <linux/mod_devicetable.h>
>
> -#define PNP_MAX_PORT 24
> +#define PNP_MAX_PORT 128
> #define PNP_MAX_MEM 12
> #define PNP_MAX_IRQ 2
> #define PNP_MAX_DMA 2

I don't think we can increase PNP_MAX_PORT to 128. Only one or two
devices need that many, so just bumping the max wastes a LOT of space.
A struct resource is seven longs, so on a 32-bit system with sixteen
PNP devices, we'd be wasting (128-24)*7*4*16 = almost 47Kbytes.

In hindsight, I should not have removed drivers/acpi/motherboard.c
until we had dynamic PNP resource tables. We could revert that
change [1], but the driver's been gone since 2.6.21, so I don't
think it's that urgent. It's just that we used to silently ignore
resources past the limits, and in -mm, we now print a KERN_ERR message.

So I think we should either remove the message altogether (so we're
exactly like 2.6.23 in this regard), or at least tone it down to
a KERN_WARN or something.

And we need to get Thomas' dynamic patch into -mm ASAP :-)

Bjorn

[1] http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=5eca338fb510af78eee5372ff6a3525768ab913f