On 12/14/2011 12:45 PM, Paul H. Hargrove wrote:
Here is a portion of proc_bus_pci_read() from my
/usr/src/linux-2.4.21-60.EL/drivers/pci/proc.c:
/*
* Normal users can read only the standardized portion of the
* configuration space as several chips lock up when trying to
read
* undefined locations (think of Intel PIIX4 as a typical
example).
*/
if (capable(CAP_SYS_ADMIN))
size = PCI_CFG_SPACE_SIZE;
else if (dev->hdr_type == PCI_HEADER_TYPE_CARDBUS)
size = 128;
else
size = 64;
I find that this exact code is still present in linux-2.6.39. So, the
kernel behavior has not changed in this respect and I suspect
therefore that more recent libpci is simply masking the short read.
Now that I think of it, this situation seems to imply that running the
code in topology-libpci.c as root on a system w/ a Intel PIIX4
controller could lock-up ones machine. Thoughts?
-Paul
--
Paul H. Hargrove phhargr...@lbl.gov
Future Technologies Group
HPC Research Department Tel: +1-510-495-2352
Lawrence Berkeley National Laboratory Fax: +1-510-486-6900