On Sun, Dec 15, 2013 at 1:23 AM, Tom Gundersen <teg@xxxxxxx> wrote: >> Also, did you consider the opposite, that is making hwdb call libpci >> to resolve PCI IDs? What are the downsides? > > Well, part of the reason for introducing the hwdb was to avoid libpci for > performance reasons (I added Kay in cc who can correct me if I'm wrong): > Firstly we don't want to parse the ids file at runtime, and secondly we want > the constant time lookup time that hwdb gives. Due to the increased > performance we are now able to tag (in the udev database) all devices with > the pciids info, before we could only do this for selected devices. A result > of this is that this info is available 'for free' for any app that uses > libudev. Hwdb is an indexed database which can be queried without any measurable cost. It also carries more information than the textual strings, and this data is needed during early boot, so we need hwdb anyway. Libpci and its linear search through megabytes of text files for evey new query is too inefficient, that we cannot afford to use it during early bootup. It was the largest hit left in bootup profiling on machines booting userspace in the sub-1-second range on common machines. It was probably never meant to provide efficient queries, but it's the reason we can never use it during early boot. Kay -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html