2002-07-29 12:13:58

by Russell King

[permalink] [raw]
Subject: RFC: /proc/pci removal?

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.)

--
Russell King ([email protected]) The developer of ARM Linux
http://www.arm.linux.org.uk/personal/aboutme.html


2002-07-29 12:21:25

by Marcin Dalecki

[permalink] [raw]
Subject: Re: RFC: /proc/pci removal?

Russell King wrote:
> 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.

2002-07-29 12:42:16

by Thierry Vignaud

[permalink] [raw]
Subject: Re: RFC: /proc/pci removal?

Marcin Dalecki <[email protected]> writes:

> > 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)

2002-07-29 13:08:22

by Marcin Dalecki

[permalink] [raw]
Subject: Re: RFC: /proc/pci removal?

Thierry Vignaud wrote:
> Marcin Dalecki <[email protected]> writes:
>
>
>>>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:

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

2002-07-29 13:26:17

by Dave Jones

[permalink] [raw]
Subject: Re: RFC: /proc/pci removal?

On Mon, Jul 29, 2002 at 01:17:17PM +0100, Russell King wrote:

> 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

--
| Dave Jones. http://www.codemonkey.org.uk
| SuSE Labs

2002-07-29 16:19:38

by Martin Mares

[permalink] [raw]
Subject: Re: RFC: /proc/pci removal?

Hello, world!\n

> 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
--
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?

2002-07-31 17:54:35

by Bill Davidsen

[permalink] [raw]
Subject: Re: RFC: /proc/pci removal?

On Mon, 29 Jul 2002, Martin Mares wrote:

> Hello, world!\n
>
> > 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.

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