Skip to contentSkip to conversation

RFC: /proc/pci removal?

DISCUSSION Russell King 6 participants 7 messages Jul 29, 2002 – Jul 31, 2002

lore
Share & tools
lore
#0 lore raw

Hi,

I seem to vaguely remember that a while ago (2.3 days?) there was discussion about removing /proc/pci in favour of the lspci output, however there doesn't seem much in google groups about it (and marc seems useless with non-alphanumeric searches.)

Can anyone remember the consensus? I seem to remember it wasn't removed for 2.4 because certain distros rely on /proc/pci rather than using pciutils.

I'm asking this question for purely self-centered reasons; I'd personally rather get bug reports with the output of lspci -vv and lspci -vvb rather than /proc/pci. On machines where bus addresses != kernel cookies, lspci is more than invaluable.

(Ok, so we could "fix" the bug reporters to stop whinging about having to "port" lspci to their hardware, but that is a larger, harder problem to solve.)

Signature · 2 lines
Russell King ([email protected])                The developer of ARM Linux
             http://www.arm.linux.org.uk/personal/aboutme.html
#1 lore raw
Quoted 6 lines · Russell King

Hi,

I seem to vaguely remember that a while ago (2.3 days?) there was discussion about removing /proc/pci in favour of the lspci output, however there doesn't seem much in google groups about it (and marc seems useless with non-alphanumeric searches.)

scanpci from XFree is using it as well. However i would rather still like it to be gone despite this inconvenience.

#2 lore raw
Quoted 7 lines · Marcin Dalecki
Quoted 4 lines

I seem to vaguely remember that a while ago (2.3 days?) there was discussion about removing /proc/pci in favour of the lspci output, however there doesn't seem much in google groups about it (and marc seems useless with non-alphanumeric searches.)

scanpci from XFree is using it as well. However i would rather still like it to be gone despite this inconvenience.

neither gatos scanpci nor XFree86' scanpci do:

tv@vador ~ $ urpmf bin/scanpci
XFree86:/usr/X11R6/bin/scanpci
gatos:/usr/bin/scanpci

tv@vador ~ $ sudo strace /usr/X11R6/bin/scanpci 2>&1|fgrep open|uniq

open("/etc/ld.so.preload", O_RDONLY)    = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
open("/lib/i686/libc.so.6", O_RDONLY)   = 3

open("/proc/bus/pci/devices", O_RDONLY) = 3

gatos scanpci directly access pci config space.

also lspci, libldetect (used by mandrake drakx, harddrake2, lspcidrake tools), kudzu uses /proc/bus/pci/* rather thatn /proc/pci as you can easily check with strace :

tv@vador ~ $ sudo strace lspcidrake 2>&1|fgrep open
open("/etc/ld.so.preload", O_RDONLY)    = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
open("/lib/i686/libc.so.6", O_RDONLY)   = 3

open("/proc/bus/pci/devices", O_RDONLY) = 3 open("/usr/share/ldetect-lst/pcitable", O_RDONLY) = 3 open("/proc/bus/usb/devices", O_RDONLY) = -1 ENOENT (No such file or directory)

tv@vador ~ $ sudo strace lspcidrake -f 2>&1|fgrep open

open("/etc/ld.so.preload", O_RDONLY)    = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
open("/lib/i686/libc.so.6", O_RDONLY)   = 3

open("/proc/bus/pci/devices", O_RDONLY) = 3 open("/proc/bus/pci/00/00.0", O_RDONLY) = 4 open("/proc/bus/pci/00/01.0", O_RDONLY) = 4 open("/proc/bus/pci/00/1e.0", O_RDONLY) = 4 open("/proc/bus/pci/00/1f.0", O_RDONLY) = 4 open("/proc/bus/pci/00/1f.1", O_RDONLY) = 4 open("/proc/bus/pci/00/1f.2", O_RDONLY) = 4 open("/proc/bus/pci/00/1f.3", O_RDONLY) = 4 open("/proc/bus/pci/00/1f.5", O_RDONLY) = 4 open("/proc/bus/pci/01/0c.0", O_RDONLY) = 4 open("/usr/share/ldetect-lst/pcitable", O_RDONLY) = 3 open("/proc/bus/usb/devices", O_RDONLY) = -1 ENOENT (No such file or directory)

tv@vador ~ $ sudo strace lspci 2>&1|fgrep open

open("/etc/ld.so.preload", O_RDONLY)    = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
open("/lib/i686/libc.so.6", O_RDONLY)   = 3

open("/proc/bus/pci/devices", O_RDONLY) = 3 open("/proc/bus/pci/01/0c.0", O_RDONLY) = 3 open("/proc/bus/pci/00/1f.5", O_RDONLY) = 3 open("/proc/bus/pci/00/1f.3", O_RDONLY) = 3 open("/proc/bus/pci/00/1f.2", O_RDONLY) = 3 open("/proc/bus/pci/00/1f.1", O_RDONLY) = 3 open("/proc/bus/pci/00/1f.0", O_RDONLY) = 3 open("/proc/bus/pci/00/1e.0", O_RDONLY) = 3 open("/proc/bus/pci/00/01.0", O_RDONLY) = 3 open("/proc/bus/pci/00/00.0", O_RDONLY) = 3
open("/usr/share/pci.ids", O_RDONLY) = 4

(i wont put every output but i've straced and checked kudzu source in the past, have read harddrake1 source, 'm writting harrddrake2 and so i do know for those)

#3 lore raw
Quoted 8 lines · Thierry Vignaud
Quoted 5 lines · Marcin Dalecki
Quoted 4 lines

I seem to vaguely remember that a while ago (2.3 days?) there was discussion about removing /proc/pci in favour of the lspci output, however there doesn't seem much in google groups about it (and marc seems useless with non-alphanumeric searches.)

Quoted 5 lines
Quoted 2 lines

scanpci from XFree is using it as well. However i would rather still like it to be gone despite this inconvenience.

neither gatos scanpci nor XFree86' scanpci do:

Confirmed. Apparently I forgot about the /bus/ in the path above.

#4 lore raw
In reply to Russell King
Quoted 6 lines · Russell King

I seem to vaguely remember that a while ago (2.3 days?) there was discussion about removing /proc/pci in favour of the lspci output, however there doesn't seem much in google groups about it (and marc seems useless with non-alphanumeric searches.)

Can anyone remember the consensus?

ISTR Linus was quite attached to it, so it got un-obsoleted.

Dave

Signature · 2 lines
| Dave Jones.        http://www.codemonkey.org.uk
| SuSE Labs
#5 lore raw

Hello, world!\n

Quoted 1 line

ISTR Linus was quite attached to it, so it got un-obsoleted.

Exactly. I've marked it as obsolete years ago, but when I wanted to rip it out, Linus said he likes /proc/pci and it has to stay.

I still think that it's an extremely ugly interface, especially because it requires the kernel to contain the list of vendor and device names.

Have a nice fortnight

Signature · 3 lines
Martin `MJ' Mares   <[email protected]>   http://atrey.karlin.mff.cuni.cz/~mj/
Faculty of Math and Physics, Charles University, Prague, Czech Rep., Earth
Who is General Failure and why is he reading my disk?
#6 lore raw
Quoted 10 lines · Martin Mares

Hello, world!\n

Quoted 1 line

ISTR Linus was quite attached to it, so it got un-obsoleted.

Exactly. I've marked it as obsolete years ago, but when I wanted to rip it out, Linus said he likes /proc/pci and it has to stay.

I still think that it's an extremely ugly interface, especially because it requires the kernel to contain the list of vendor and device names.

If for no other reason than allowing easy updates, this would be a good place for a module. Of course you can say that about the blacklisted chipsets, etc, as well.

I guess if it's a favorite feature it stays. I do use it, but there are other tools as mentioned.

Signature · 3 lines
bill davidsen <[email protected]>
  CTO, TMR Associates, Inc
Doing interesting things with little computers since 1979.