Bug 64230

Summary: RH 7.1 does not see all 4G of RIMMs, will see 4G of other memory types
Product: [Retired] Red Hat Linux Reporter: John Costello <john.costello>
Component: kernelAssignee: Arjan van de Ven <arjanv>
Status: CLOSED CURRENTRELEASE QA Contact: Brian Brock <bbrock>
Severity: high Docs Contact:
Priority: medium    
Version: 7.1   
Target Milestone: ---   
Target Release: ---   
Hardware: i686   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2004-09-30 15:39:32 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description John Costello 2002-04-29 21:52:01 UTC
From Bugzilla Helper:
User-Agent: Mozilla/4.78 [en] (Windows NT 5.0; U)

Description of problem:
RH 7.1 does not see all 4GB of RIMM memory on Dell Precision Workstation 530s, with 2 x Intel Xeon 1.7GHz processors.  The system BIOS does 
see all 4GB.  Lilo and  Grub both report ~3.7GB.  On Dell PowerEdge 2550 servers, RH 7.1 sees all 4GB of SDRAM memory; the PE 2550s have 2 
x 
PIII 1.2G processors.  On Dell PowerEdge 1650 servers, RH 7.1 sees 3.99GB of SDRAM memory; the PE 1650s have 2 x PIII 1G processors.  This 
issue has been reproduced on a dozen servers, all running the latest Dell BIOS.

Version-Release number of selected component (if applicable):


How reproducible:
Always

Steps to Reproduce:
1.  Obtain a Dell Precision Workstation 530 with 4GB of RAM.
2.  Install Red Hat 7.1
3.  Boot the system and observe the memory reported during bootup, or run top, or `cat /proc/meminfo`.
	

Actual Results:         total:    used:    free:  shared: buffers:  cached:
Mem:  3824005120 1427652608 2396352512        0 52572160 907968512
MemTotal:      3734380 kB

Expected Results:          total:    used:    free:  shared: buffers:  cached:
Mem:  4154425344 264585216 3889840128        0 54939648 70094848
MemTotal:      4057056 kB

Additional info:

The problem has been reproduced on a dozen Precision Workstation 530 systems.  All systems run the latest BIOS.  No systems have memory 
errors.

Comment 1 Arjan van de Ven 2002-04-30 04:52:52 UTC
the first few lines of dmesg output would be very useful.
That has the "e820" map, which is the table that the bios uses to tell linux how
much memory the machine has.
(if you have a LOT of scsi devices thatmight have scrolled off unfortionatly)

Comment 2 Arjan van de Ven 2002-04-30 04:53:24 UTC
Oh and I assume we're talking about kernel 2.4.9-31 here.....

Comment 3 John Costello 2002-04-30 18:01:13 UTC
This occurs under 2.4.2-2smp, 2.4.7-10smp, and 2.4.18 (rawhide).

I got additional info from Dell--this issue may be related to problem on systems that support "hot-plug, hot-swap, and hot-add PCI capabilities" (see 
http://support.dell.com/us/en/kb/document.asp?DN=1043113).  Dell mentions a fix for W2K systems in boot.ini, but nothing about a fix for Linux 
systems.

Booting the systems with `linux usemem=4G` did not force the system to see all 4G.

Do you want dmesg info specifically for a 2.4.9-31 system?  If so, I will modify one of the systems to run that kernel version.

Comment 4 Arjan van de Ven 2002-04-30 18:05:15 UTC
Any kernel will do, the bios table will not change from kernel to kernel
(the one in dmesg that is)

Comment 5 John Costello 2002-05-01 21:57:24 UTC
Okay, here goes.  Feel free to trim this if I have pasted too much.

759 pages.
zone HighMem has max 1024 cached pages.
Intel MultiProcessor Specification v1.4
    Virtual Wire compatibility mode.
OEM ID: DELL     Product ID: WS 530       APIC at: 0xFEE00000
Processor #0 Pentium 4(tm) APIC version 20
    Floating point unit present.
    Machine Exception supported.
    64 bit compare & exchange supported.
    Internal APIC present.
    SEP present.
    MTRR  present.
    PGE  present.
    MCA  present.
    CMOV  present.
    PAT  present.
    PSE  present.
    Cache Line Flush Instruction present.
    Debug Trace and EMON Store present.
    ACPI Thermal Throttle Registers  present.
    MMX  present.
    FXSR  present.
    XMM  present.
    Willamette New Instructions  present.
    Self Snoop  present.
    Thermal Monitor present.
    Bootup CPU
Processor #1 Pentium 4(tm) APIC version 20
    Floating point unit present.
    Machine Exception supported.
    64 bit compare & exchange supported.
    Internal APIC present.
    SEP present.
    MTRR  present.
    PGE  present.
    MCA  present.
    CMOV  present.
    PAT  present.
    PSE  present.
    Cache Line Flush Instruction present.
    Debug Trace and EMON Store present.
    ACPI Thermal Throttle Registers  present.
    MMX  present.
    FXSR  present.
    XMM  present.
    Willamette New Instructions  present.
    Self Snoop  present.
    Thermal Monitor present.
Bus #0 is PCI   
Bus #1 is PCI   
Bus #2 is PCI   
Bus #3 is PCI   
Bus #4 is PCI   
Bus #5 is ISA   
I/O APIC #2 Version 32 at 0xFEC00000.
Int: type 3, pol 1, trig 1, bus 5, IRQ 00, APIC ID 2, APIC INT 00
Int: type 0, pol 0, trig 0, bus 5, IRQ 01, APIC ID 2, APIC INT 01
Int: type 0, pol 0, trig 0, bus 5, IRQ 00, APIC ID 2, APIC INT 02
Int: type 0, pol 0, trig 0, bus 5, IRQ 03, APIC ID 2, APIC INT 03
Int: type 0, pol 0, trig 0, bus 5, IRQ 04, APIC ID 2, APIC INT 04
Int: type 0, pol 0, trig 0, bus 5, IRQ 05, APIC ID 2, APIC INT 05
Int: type 0, pol 0, trig 0, bus 5, IRQ 06, APIC ID 2, APIC INT 06
Int: type 0, pol 0, trig 0, bus 5, IRQ 07, APIC ID 2, APIC INT 07
Int: type 0, pol 0, trig 0, bus 5, IRQ 08, APIC ID 2, APIC INT 08
Int: type 0, pol 0, trig 0, bus 5, IRQ 09, APIC ID 2, APIC INT 09
Int: type 0, pol 0, trig 0, bus 5, IRQ 0a, APIC ID 2, APIC INT 0a
Int: type 0, pol 0, trig 0, bus 5, IRQ 0b, APIC ID 2, APIC INT 0b
Int: type 0, pol 0, trig 0, bus 5, IRQ 0c, APIC ID 2, APIC INT 0c
Int: type 0, pol 0, trig 0, bus 5, IRQ 0e, APIC ID 2, APIC INT 0e
Int: type 0, pol 0, trig 0, bus 5, IRQ 0f, APIC ID 2, APIC INT 0f
Int: type 0, pol 0, trig 0, bus 0, IRQ 7c, APIC ID 2, APIC INT 10
Int: type 0, pol 0, trig 0, bus 1, IRQ 00, APIC ID 2, APIC INT 10
Int: type 0, pol 0, trig 0, bus 4, IRQ 30, APIC ID 2, APIC INT 10
Int: type 0, pol 0, trig 0, bus 4, IRQ 37, APIC ID 2, APIC INT 10
Int: type 0, pol 0, trig 0, bus 4, IRQ 3a, APIC ID 2, APIC INT 10
Int: type 0, pol 0, trig 0, bus 4, IRQ 3d, APIC ID 2, APIC INT 10
Int: type 0, pol 0, trig 0, bus 0, IRQ 7d, APIC ID 2, APIC INT 11
Int: type 0, pol 0, trig 0, bus 1, IRQ 01, APIC ID 2, APIC INT 11
Int: type 0, pol 0, trig 0, bus 4, IRQ 34, APIC ID 2, APIC INT 11
Int: type 0, pol 0, trig 0, bus 4, IRQ 3b, APIC ID 2, APIC INT 11
Int: type 0, pol 0, trig 0, bus 4, IRQ 3e, APIC ID 2, APIC INT 11
Int: type 0, pol 0, trig 0, bus 4, IRQ 35, APIC ID 2, APIC INT 12
Int: type 0, pol 0, trig 0, bus 4, IRQ 38, APIC ID 2, APIC INT 12
Int: type 0, pol 0, trig 0, bus 4, IRQ 3f, APIC ID 2, APIC INT 12
Int: type 0, pol 0, trig 0, bus 0, IRQ 7f, APIC ID 2, APIC INT 13
Int: type 0, pol 0, trig 0, bus 4, IRQ 36, APIC ID 2, APIC INT 13
Int: type 0, pol 0, trig 0, bus 4, IRQ 39, APIC ID 2, APIC INT 13
Int: type 0, pol 0, trig 0, bus 4, IRQ 3c, APIC ID 2, APIC INT 13
Int: type 0, pol 0, trig 0, bus 3, IRQ 30, APIC ID 2, APIC INT 14
Int: type 0, pol 0, trig 0, bus 3, IRQ 37, APIC ID 2, APIC INT 14
Int: type 0, pol 0, trig 0, bus 3, IRQ 31, APIC ID 2, APIC INT 15
Int: type 0, pol 0, trig 0, bus 3, IRQ 34, APIC ID 2, APIC INT 15
Int: type 0, pol 0, trig 0, bus 3, IRQ 32, APIC ID 2, APIC INT 16
Int: type 0, pol 0, trig 0, bus 3, IRQ 35, APIC ID 2, APIC INT 16
Int: type 0, pol 0, trig 0, bus 3, IRQ 38, APIC ID 2, APIC INT 16
Int: type 0, pol 0, trig 0, bus 0, IRQ 7e, APIC ID 2, APIC INT 17
Int: type 0, pol 0, trig 0, bus 3, IRQ 33, APIC ID 2, APIC INT 17
Int: type 0, pol 0, trig 0, bus 3, IRQ 36, APIC ID 2, APIC INT 17
Int: type 0, pol 0, trig 0, bus 4, IRQ 2c, APIC ID 2, APIC INT 17
Lint: type 3, pol 1, trig 1, bus 5, IRQ 00, APIC ID ff, APIC LINT 00
Lint: type 1, pol 1, trig 1, bus 5, IRQ 00, APIC ID ff, APIC LINT 01
Processors: 2
mapped APIC to ffffe000 (fee00000)
mapped IOAPIC to ffffd000 (fec00000)
Kernel command line: auto BOOT_IMAGE=linux ro root=305 BOOT_FILE=/boot/vmlinuz-2.4.2-2smp
Initializing CPU#0
Detected 1694.882 MHz processor.
Console: colour VGA+ 80x25
Calibrating delay loop... 3381.65 BogoMIPS
Memory: 3734128k/3800540k available (1500k kernel code, 66028k reserved, 103k data, 252k init, 2883036k highmem)
Dentry-cache hash table entries: 524288 (order: 10, 4194304 bytes)
Buffer-cache hash table entries: 262144 (order: 8, 1048576 bytes)
Page-cache hash table entries: 524288 (order: 10, 4194304 bytes)
Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes)
VFS: Diskquotas version dquot_6.5.0 initialized
CPU: Before vendor init, caps: 3febfbff 00000000 00000000, vendor = 0
CPU: L1 I cache: 12K, L1 D cache: 8K
CPU: L2 cache: 256K
Intel machine check architecture supported.
Intel machine check reporting enabled on CPU#0.
CPU: After vendor init, caps: 3febfbff 00000000 00000000 00000000
CPU: After generic, caps: 3febfbff 00000000 00000000 00000000
CPU: Common caps: 3febfbff 00000000 00000000 00000000
Enabling fast FPU save and restore... done.
Enabling unmasked SIMD FPU exception support... done.
Checking 'hlt' instruction... OK.
POSIX conformance testing by UNIFIX
mtrr: v1.37 (20001109) Richard Gooch (rgooch.au)
mtrr: detected mtrr type: Intel
CPU: Before vendor init, caps: 3febfbff 00000000 00000000, vendor = 0
CPU: L1 I cache: 12K, L1 D cache: 8K
CPU: L2 cache: 256K
Intel machine check reporting enabled on CPU#0.
CPU: After vendor init, caps: 3febfbff 00000000 00000000 00000000
CPU: After generic, caps: 3febfbff 00000000 00000000 00000000
CPU: Common caps: 3febfbff 00000000 00000000 00000000
CPU0: Intel(R) Xeon(TM) CPU 1700MHz stepping 0a
per-CPU timeslice cutoff: 731.73 usecs.
Getting VERSION: 50014
Getting VERSION: 50014
Getting ID: 0
Getting ID: f000000
Getting LVT0: 700
Getting LVT1: 400
enabled ExtINT on CPU#0
ESR value before enabling vector: 00000040
ESR value after enabling vector: 00000000
CPU present map: 3
Booting processor 1/1 eip 3000
Setting warm reset code and vector.
1.
2.
3.
Asserting INIT.
Waiting for send to finish...
+Deasserting INIT.
Waiting for send to finish...
+#startup loops: 2.
Sending STARTUP #1.
After apic_write.
Initializing CPU#1
CPU#1 (phys ID: 1) waiting for CALLOUT
Startup point 1.
Waiting for send to finish...
+Sending STARTUP #2.
After apic_write.
Startup point 1.
Waiting for send to finish...
+After Startup.
Before Callout 1.
After Callout 1.
CALLIN, before setup_local_APIC().
masked ExtINT on CPU#1
ESR value before enabling vector: 00000000
ESR value after enabling vector: 00000000
Calibrating delay loop... 3381.65 BogoMIPS
Stack at about c4e1bfb8
CPU: Before vendor init, caps: 3febfbff 00000000 00000000, vendor = 0
CPU: L1 I cache: 12K, L1 D cache: 8K
CPU: L2 cache: 256K
Intel machine check reporting enabled on CPU#1.
CPU: After vendor init, caps: 3febfbff 00000000 00000000 00000000
CPU: After generic, caps: 3febfbff 00000000 00000000 00000000
CPU: Common caps: 3febfbff 00000000 00000000 00000000
OK.
CPU1: Intel(R) Xeon(TM) CPU 1700MHz stepping 0a
CPU has booted.
Before bogomips.
Total of 2 processors activated (6763.31 BogoMIPS).
Before bogocount - setting activated=1.
Boot done.
ENABLING IO-APIC IRQs
...changing IO-APIC physical APIC ID to 2 ... ok.
Synchronizing Arb IDs.
init IO_APIC IRQs
 IO-APIC (apicid-pin) 2-0, 2-13 not connected.
..TIMER: vector=49 pin1=2 pin2=0
number of MP IRQ sources: 44.
number of IO-APIC #2 registers: 24.
testing the IO APIC.......................

IO APIC #2......
.... register #00: 02000000
.......    : physical APIC id: 02
.... register #01: 00178020
.......     : max redirection entries: 0017
.......     : IO APIC version: 0020
 WARNING: unexpected IO-APIC, please mail
          to linux-smp.org
 WARNING: unexpected IO-APIC, please mail
          to linux-smp.org
.... register #02: 00000000
.......     : arbitration: 00
.... IRQ redirection table:
 NR Log Phy Mask Trig IRR Pol Stat Dest Deli Vect:   
 00 000 00  1    0    0   0   0    0    0    00
 01 003 03  0    0    0   0   0    1    1    39
 02 003 03  0    0    0   0   0    1    1   31
 03 003 03  0    0    0   0   0    1    1    41
 04 003 03  0    0    0   0   0    1    1    49
 05 003 03  0    0    0   0   0    1    1    51
 06 003 03  0    0    0   0   0    1    1    59
 07 003 03  0    0    0   0   0    1    1    61
 08 003 03  0    0    0   0   0    1    1    69
 09 003 03  0    0    0   0   0    1    1    71
 0a 003 03  0    0    0   0   0    1    1    79
 0b 003 03  0    0    0   0   0    1    1    81
 0c 003 03  0    0    0   0   0    1    1    89
 0d 000 00  1    0    0   0   0    0    0    00
 0e 003 03  0    0    0   0   0    1    1    91
 0f 003 03  0    0    0   0   0    1    1    99
 10 003 03  1    1    0   1   0    1    1    A1
 11 003 03  1    1    0   1   0    1    1    A9
 12 003 03  1    1    0   1   0    1    1    B1
 13 003 03  1    1    0   1   0    1    1    B9
14 003 03  1    1    0   1   0    1    1    C1
 15 003 03  1    1    0   1   0    1    1    C9
 16 003 03  1    1    0   1   0    1    1    D1
 17 003 03  1    1    0   1   0    1    1    D9
IRQ to pin mappings:
IRQ0 -> 0:2
IRQ1 -> 0:1
IRQ3 -> 0:3
IRQ4 -> 0:4
IRQ5 -> 0:5
IRQ6 -> 0:6
IRQ7 -> 0:7
IRQ8 -> 0:8
IRQ9 -> 0:9
IRQ10 -> 0:10
IRQ11 -> 0:11
IRQ12 -> 0:12
IRQ14 -> 0:14
IRQ15 -> 0:15
IRQ16 -> 0:16
IRQ17 -> 0:17
IRQ18 -> 0:18
IRQ19 -> 0:19
IRQ20 -> 0:20
IRQ21 -> 0:21
IRQ22 -> 0:22
IRQ23 -> 0:23
.................................... done.
calibrating APIC timer ...
..... CPU clock speed is 1694.8703 MHz.
..... host bus clock speed is 99.6980 MHz.
cpu: 0, clocks: 996980, slice: 332326
CPU0<T0:996976,T1:664640,D:10,S:332326,C:996980>
cpu: 1, clocks: 996980, slice: 332326
CPU1<T0:996976,T1:332320,D:4,S:332326,C:996980>
checking TSC synchronization across CPUs: passed.
Setting commenced=1, go go go
PCI: PCI BIOS revision 2.10 entry at 0xfbe8e, last bus=4
PCI: Using configuration type 1
PCI: Probing PCI hardware
Unknown bridge resource 0: assuming transparent
Unknown bridge resource 0: assuming transparent
Unknown bridge resource 2: assuming transparent
Unknown bridge resource 0: assuming transparent
Unknown bridge resource 1: assuming transparent
Unknown bridge resource 2: assuming transparent
Unknown bridge resource 2: assuming transparent
PCI: Using IRQ router default [8086/2440] at 00:1f.0
PCI->APIC IRQ transform: (B0,I31,P3) -> 19
PCI->APIC IRQ transform: (B0,I31,P1) -> 17
PCI->APIC IRQ transform: (B0,I31,P2) -> 23
PCI->APIC IRQ transform: (B0,I31,P1) -> 17
PCI->APIC IRQ transform: (B1,I0,P0) -> 16
PCI->APIC IRQ transform: (B4,I11,P0) -> 23
PCI->APIC IRQ transform: (B4,I12,P0) -> 16
  got res[fe300000:fe300fff] for resource 0 of Intel Corporation 82806AA PCI64 Hub Advanced Programmable Interrupt Controller
isapnp: Scanning for PnP cards...
isapnp: No Plug & Play device found
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
apm: BIOS version 1.2 Flags 0x03 (Driver version 1.14)
apm: disabled - APM is not SMP safe.
Starting kswapd v1.8
pty: 256 Unix98 ptys configured
block: queued sectors max/low 2481744kB/2350672kB, 7296 slots per queue
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
Uniform Multi-Platform E-IDE driver Revision: 6.31
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
PIIX4: IDE controller on PCI bus 00 dev f9
PIIX4: chipset revision 4
PIIX4: not 100% native mode: will probe irqs later
    ide0: BM-DMA at 0xffa0-0xffa7, BIOS settings: hda:DMA, hdb:pio
    ide1: BM-DMA at 0xffa8-0xffaf, BIOS settings: hdc:DMA, hdd:pio
hda: Maxtor 5T040H4, ATA DISK drive
hdc: SAMSUNG CD-ROM SC-148C, ATAPI CD/DVD-ROM drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide1 at 0x170-0x177,0x376 on irq 15
hda: 78125000 sectors (40000 MB) w/2048KiB Cache, CHS=4863/255/63, UDMA(100)
Partition check:
 hda: hda1 hda2 < hda5 hda6 hda7 hda8 >
Floppy drive(s): fd0 is 1.44M
FDC 0 is a National Semiconductor PC87306
Serial driver version 5.02 (2000-08-09) with MANY_PORTS MULTIPORT SHARE_IRQ SERIAL_PCI ISAPNP enabled
ttyS00 at 0x03f8 (irq = 4) is a 16550A
ttyS01 at 0x02f8 (irq = 3) is a 16550A
Real Time Clock Driver v1.10d
md driver 0.90.0 MAX_MD_DEVS=256, MD_SB_DISKS=27
md.c: sizeof(mdp_super_t) = 4096
autodetecting RAID arrays
autorun ...
... autorun DONE.
[Network stuff deleted.]

Comment 6 Bugzilla owner 2004-09-30 15:39:32 UTC
Thanks for the bug report. However, Red Hat no longer maintains this version of
the product. Please upgrade to the latest version and open a new bug if the problem
persists.

The Fedora Legacy project (http://fedoralegacy.org/) maintains some older releases, 
and if you believe this bug is interesting to them, please report the problem in
the bug tracker at: http://bugzilla.fedora.us/