Messages in this thread | | | From | Kay Sievers <> | Date | Sun, 15 Dec 2013 10:49:24 +0100 | Subject | Re: [PATCH RESEND][pciutils] libpci: pci_id_lookup - add udev/hwdb support |
| |
On Sun, Dec 15, 2013 at 10:18 AM, Martin Mares <mj@ucw.cz> wrote: > Hello Kay, > >> 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. > > I do not know what you are speaking about -- libpci definitely does > not perform linear scans on pci.ids. It builds a hash table from pci.ids > on the first query and and all subsequent queries are O(1) on average.
It does that per process doing that, and that's the problem for how udev works/worked. The binary hwdb is on-disk and can be mmaped, and there is no difference between initialization, first, or subsequent queries.
Kay
| |