Hi Matthew, On Fri, 2 Mar 2007 21:12:51 +0000, Matthew Garrett wrote: > On Fri, Mar 02, 2007 at 10:04:54PM +0100, Jean Delvare wrote: > > It might be more elegant but it won't work. We don't want to prevent > > ACPI from accessing these I/O ports. If we need to choose only one > > "driver" accessing the I/O port, it must be acpi, at leat for now, > > despite the fact that acpi provides very weak hardware monitoring > > capabilities compared to the specific drivers. > > Assuming arbitration of access, what's the problem with having two > drivers accessing the same hardware? Do these chips generally have any > significant internal state other than trip points and the like? The "assuming arbitration of access" is the key part of your sentence ;) The problem is that currently no arbitration is done. If it was done, then state would probably not be a problem. Most hardware monitoring drivers don't assume any state is preserved between accesses, and those which do can easily be changed not to. The ACPI side is another story though, I guess we can't assume anything about the AML code's assumption on states, as it differs from one machine to the next. But we can try to be cooperative and restore the sensible registers (e.g. bank selector) in the same state we found them. Anyway, just because we can't get things right on 100% of the machines is no reason not to try anything at all. The current situation is bad, any improvement would be welcome. > > Why would we end up with an overestimation if we check the I/O ports at > > boot time? Do you have concrete cases in mind? > > ACPI will often describe large operation regions, but won't necessarily > touch all of them. Effectively, every codepath would have to be walked > through at boot time and checked for io access. Is there anything preventing us from doing such a walk and pre-allocate all the I/O ranges? I am not familiar with the ACPI code at all, would you possibly propose a patch doing that? If we can't do that, the overestimation approach might still work. I wonder if it would cause problems in practice. If it does, we're back to Pavel's AML lock. -- Jean Delvare