Subject: resource allocation, pcmcia, isapnp, etc.
To: None <tech-kern@netbsd.org>
From: Frank van der Linden <frank@wins.uva.nl>
List: tech-kern
Date: 06/17/1999 09:57:35
One of the main problems I see with irq/iospace allocation, is that
there is no total overview over who needs what at any given time.
The code knows what has been allocated so far (but even then
still messes up sometimes), but doesn't know what still might come.
So it could pick a solution that will prevent a later device from
working at all.
It seems to me that we need some extra information before resources
can really be allocated. I.e. a scan through all present devices,
getting information out of them on what they need, and only after
we've established a global view of needed resources, attach them.
Any other sources of information can also be used, like the PnP
BIOS. A lot of this is machine-specific; architectures that
are actually sane might not need this :-)
A lot of this information is already kept, but it's only present
after we need it most -- when we're allocating IRQs/ports for
ISA pnp and pcmcia devices. You can rely on the order of probing,
but that's really just pushing the problem around.
I realize that picking the "right" resource allocation for N devices
given M resources is NP complete, but there is a limited number
of possibilities, and at present we're not doing a good job at all.
Related issue: we need a way for the the user to tweak resources
before booting the kernel. At present, we're just about the only
Free UNIX out there that doesn't allow people to do it..
- Frank