[Bug 342926] Re: No PCI IOMEM space available below 4GB
TJ
ubuntu at tjworld.net
Sat Mar 14 21:26:24 UTC 2009
** Description changed:
Binary package hint: nvidia-glx-180
This can affect almost all releases (6.10 7.04, 7.10, 8.04, 8.10, 9.04+)
It usually only shows up dramatically with video cards that have large
memory (e.g. 256MB) and on systems that
a) have 3GB or more RAM and/or
- b) have 64-bit CPUs on 32-bit northbridge chipsets (e.g. Intel 945)
+ b) have 64-bit CPUs on 32-bit north-bridge chipsets (e.g. Intel 945)
Typical symptom: "failed to load the nvidia kernel module"
This issue could affect all versions of the Nvidia proprietary drivers
and others.
+ Recently I've seen several users in IRC #ubuntu asking for help but
+ without solving the issue. When I saw Keith Dewitt asking the same
+ question on 2009-03-14 I arranged with him to access his system via SSH
+ and a multiuser screen session to diagnose the issue. Keith was very
+ patient and supportive and his assistance led directly to this
+ discovery.
+
+ There are also threads on the nvidia forums with the same issues.
+
The symptoms are that users report that systems with Nvidia-based
graphics cards won't start the X server successfully. There are a wide
- range of symptoms that don't immediately lead to the cause.
+ range of reports that don't immediately pin-point the cause.
The fact the nvidia kernel module failed to load is the biggest clue.
Check dmesg and /var/log/kern.log for something along these lines:
[ 20.137717] nvidia: module license 'NVIDIA' taints kernel.
[ 20.412849] ACPI: PCI Interrupt Link [LNEB] enabled at IRQ 18
[ 20.412858] nvidia 0000:02:00.0: PCI INT A -> Link[LNEB] -> GSI 18 (level, low) -> IRQ 18
[ 20.412862] NVRM: This PCI I/O region assigned to your NVIDIA device is invalid:
[ 20.412862] NVRM: BAR1 is 256M @ 0x30000000 (PCI:0002:00.0)
[ 20.412865] NVRM: This is a 64-bit BAR mapped above 4GB by the system BIOS or
[ 20.412865] NVRM: Linux kernel. The NVIDIA Linux graphics driver and other
[ 20.412866] NVRM: system software do not currently support this configuration
[ 20.412867] NVRM: reliably.
[ 20.412872] nvidia: probe of 0000:02:00.0 failed with error -1
[ 20.412887] NVRM: The NVIDIA probe routine failed for 1 device(s).
[ 20.412889] NVRM: None of the NVIDIA graphics adapters were initialized!
- The reason is that the video chipset's PCI IOMEM RAM (in this case
- 256MB) cannot be allocated in the PCI IOMEM region from 3GB-4GB since
- other devices have already been given assignments that mean there isn't
- a 256MB gap available on a 256MB boundary - in other words, either at
- 3GB or 3.25GB.
+ Also check /var/log/Xorg.0.log for this tell-tale:
+
+ (--) PCI:*(0 at 2:0:0) nVidia Corporation GeForce 8400 GS rev 161, Mem @ 0xfd000000
+ /16777216, 0x130000000/268435456, 0xfa000000/33554432, I/O @ 0x0000ec00/128, BIO
+ S @ 0x????????/131072
+
+ Notice that the video card's IOMEM allocation is at 0x300000000 (5GB).
+
+ The reason for the failure is that the video chipset's PCI IOMEM RAM (in
+ this case 256MB) cannot be allocated in the PCI IOMEM region below $GB
+ (from 3GB-4GB) since other devices have already been given assignments
+ that mean there isn't a 256MB gap available on a 256MB boundary - in
+ other words, either at 3GB or 3.25GB.
The host system has 4GB of system RAM which causes the kernel to prevent
the use of the 3GB-3.25GB range, and other allocations prevent the use
other ranges.
A temporary work-around is to alter the BIOS video IOMEM position to
below 4GB (on 64-bit architectures) or reduce the system's RAM to 2GB to
leave sufficient free space.
For the last year I've had an ongoing project to write a completely new
PCI IOMEM system for the Linux kernel. I've added the mainline bug
report that triggered the development to this report. Additionally, here
is a link to my Wiki describing the issue and solutions.
http://tjworld.net/wiki/Linux/PCIDynamicResourceAllocationManagement
--
No PCI IOMEM space available below 4GB
https://bugs.launchpad.net/bugs/342926
You received this bug notification because you are a member of Kernel
Bugs, which is subscribed to Linux.
More information about the kernel-bugs
mailing list