On Tue, Jun  8, 2010 at 14:26:32 -0700, Richard Barnette wrote:

> In a recent investigation of system boot time for Chromium OS, I
> discovered that an inordinate amount of time during X server startup
> was going to processing required for pci_device_get_vendor_name() and
> pci_device_get_device_name().  The reason is straightforward:  these
> routines operate by opening a compressed file, and then performing a
> linear search of the decompressed data (more than 600K worth) looking
> for the desired entries.  For concrete numbers:  not looking up the
> names on Chromium OS reference hardware (a netbook based on the Intel
> Pintrail chipset with SSD storage) is worth 400 ms boot time out of a
> 5 second total time budget.
> 
> I'd like fix this with a patch to X upstream, so that the change doesn't
> have to be maintained as part of the Chromium OS sources.  For a first
> cut, I can think of three obvious approaches:
>   * Change xorg-server to simply drop the calls to get the vendor and
>     device names.
>   * A build or configure option in libpciaccess that disables the
> library
>     routines (i.e. forces them to return NULL in all cases).

Can't you already configure libpciaccess with
--with-pciids-path=/nonexistent?

>   * A runtime option to the X server that allows specifying the path to
>     the "pci.ids.gz" or "pci.ids" file.  Chromium OS could specify /
> dev/null
>     to get the desired time savings.  (This would mean touching both
>     xorg-server and libpciaccess).
> 
> I'd like advice/opinions on which of these might be the most eagerly
> embraced (or at any rate, least vigorously opposed :-) ), or whether
> there's a better idea I've overlooked.
> 
Making these functions faster would seem like the best option, if at all
possible...

Cheers,
Julien
_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to