On Mon, Jan 04, 2010 at 03:15:11PM +0100, Michael Karcher wrote:
Hello Carl-Daniel,
thanks for your review.
There seems to be a fundamental opinion difference what DMI is used for between you on the one side and me and Luc on the other side. You seem to want to use DMI for a good board identification (which is fair enough, I also started with that intention), whereas now we decided to use DMI only as an emergency helper in case the PCI IDs seem obviously not good enough, which should be the exception instead of the regular case.
Using DMI as emergency rescue has the advantage that it still works on most systems even if DMI is unavailable (boards having DMI info can not be matched by PCI IDs with the matching policy of this patch). Collecting DMI info on boards with good PCI subsystem IDs (like the MSI boards that have the internal 4-digit product number BCD-coded in the subsystem IDs) is not useful, in my opinion.
The usage of DMI as breaker explains the loose matching policy of "any DMI string matches", as the IDs that should go into the table should be unique enough even with this weak policy (I for example can't imagine any HP system, as the manufacturer has already been established by subsystem manufacturer IDs, where "^VL420$" is going to match in the wrong string). If you want to use DMI as general board identification mechanism, independent of the PCI IDs, one would of course have to check more than one field.
Some extra info on dmi that not everyone is acutely aware of:
This is where the dmi standard came from: http://www.dmtf.org/standards/dmi/
What you can read there is:
"Due to the rapid advancement of DMTF technologies, such as CIM, the DMTF defined an "End of Life" process for its Desktop Management Interface (DMI), which ended March 31, 2005"
End-of-life was not announced then, no, the end-of-life process _ended_ almost 5 years ago.
In that light, depending on DMI too much is not a good idea going forward, and then the proposed usage only as an extra option to match a board, next to pci main ids and subsystem ids seems like safe bet.
Will try to provide a more complete answer to this email later.
Luc Verhaegen.