Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 253631 - x86_64 system with 4GB memory - linux sees only 2.95 GB
Summary: x86_64 system with 4GB memory - linux sees only 2.95 GB
Status: RESOLVED NEEDINFO
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Core system (show other bugs)
Hardware: AMD64 Linux
: High major (vote)
Assignee: Gentoo Linux bug wranglers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-01-03 23:29 UTC by Kevin
Modified: 2009-05-08 17:00 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
Kernel 2.6.27-gentoo-r7 .config (.config-2.6.27-r7,59.21 KB, text/plain)
2009-01-03 23:31 UTC, Kevin
Details
lspci -vv output (lspci.txt,29.58 KB, text/plain)
2009-01-03 23:31 UTC, Kevin
Details
Dmesg (dmesg,29.43 KB, text/plain)
2009-01-07 01:58 UTC, Kevin
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Kevin 2009-01-03 23:29:53 UTC
Here's system configuration in short:

Motherboard: EVGA NForce 790i Ultra SLI 
CPU: Intel Core2 Quad Q9550
RAM: Patriot Viper Series DDR3 Dual Channel 1800MHz 2x2GB
Kernel: 2.6.27-gentoo-r7

I've compiled the kernel with all the appropriate options for a quad core 64 bit
system (unless I screwed up by missing something obvious/not clear). It seems
that, out of the 4GB memory, only 2.95GB are seen by the kernel and other utils.

Free reports as follows:
------------------------------------------------------------------------------
             total       used       free     shared    buffers     cached
Mem:       3091468    1487596    1603872          0     214972     574672
-/+ buffers/cache:     697952    2393516
Swap:            0          0          0
-------------------------------------------------------------------------------



This is what /proc/meminfo has:
------------------------------------------
MemTotal:      3091468 kB
MemFree:       1605600 kB
Buffers:        214972 kB
Cached:         574676 kB
SwapCached:          0 kB
Active:         535812 kB
Inactive:       487852 kB
SwapTotal:           0 kB
SwapFree:            0 kB
Dirty:             296 kB
Writeback:           0 kB
AnonPages:      234012 kB
Mapped:         103792 kB
Slab:           406020 kB
SReclaimable:   394648 kB
SUnreclaim:      11372 kB
PageTables:      13816 kB
NFS_Unstable:        0 kB
Bounce:              0 kB
WritebackTmp:        0 kB
CommitLimit:   1545732 kB
Committed_AS:  1171892 kB
VmallocTotal: 34359738367 kB
VmallocUsed:    312096 kB
VmallocChunk: 34359425531 kB
DirectMap4k:     64448 kB
DirectMap2M:   3080192 kB
--------------------------------------------



Here's the dmesg e820 snippet:
----------------------------------------------SNIP-----------------------------
BIOS-provided physical RAM map:
 BIOS-e820: 0000000000000000 - 000000000009b800 (usable)
 BIOS-e820: 000000000009b800 - 00000000000a0000 (reserved)
 BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
 BIOS-e820: 0000000000100000 - 00000000bfef0000 (usable)
 BIOS-e820: 00000000bfef0000 - 00000000bfef3000 (ACPI NVS)
 BIOS-e820: 00000000bfef3000 - 00000000bff00000 (ACPI data)
 BIOS-e820: 00000000e0000000 - 00000000f0000000 (reserved)
 BIOS-e820: 00000000fec00000 - 0000000100000000 (reserved)
 BIOS-e820: 0000000100000000 - 0000000140000000 (usable)
user-defined physical RAM map:
 user: 0000000000000000 - 000000000009b800 (usable)
 user: 000000000009b800 - 00000000000a0000 (reserved)
 user: 00000000000f0000 - 0000000000100000 (reserved)
 user: 0000000000100000 - 00000000bfef0000 (usable)
 user: 00000000bfef0000 - 00000000bfef3000 (ACPI NVS)
 user: 00000000bfef3000 - 00000000bff00000 (ACPI data)
 user: 00000000e0000000 - 00000000f0000000 (reserved)
 user: 00000000fec00000 - 0000000100000000 (reserved)
----------------------------------------------SNIP-----------------------------


I've attached my kernel config file and the output of lspci -vv.

I do not face this problem in Vista 64 bit. Vista 64 bit sees and utilizes all
the 4GB memory. Memtest can also see 4GB and test all of it.
I've tried booting with 64 bit gentoo CD and it too fails to see the 4GB memory.

Going by the e820 map, if the BIOS is saying only 4GB are available, then why is
that Vista and memtest report 4GB and not 3GB as linux reports ? 

Any help would be greatly appreciated. Please let me know if you need further
info.

Thanks.

Reproducible: Always



Expected Results:  
System sees all the 4GB memory installed.

Portage 2.2_rc19 (default/linux/amd64/2008.0, gcc-4.3.2, glibc-2.8_p20080602-r1, 2.6.27-gentoo-r7 x86_64)
=================================================================
System uname: Linux-2.6.27-gentoo-r7-x86_64-Intel-R-_Core-TM-2_Quad_CPU_Q9550_@_2.83GHz-with-glibc2.2.5
Timestamp of tree: Thu, 25 Dec 2008 19:35:01 +0000
app-shells/bash:     3.2_p48
dev-java/java-config: 1.3.7-r1, 2.1.6-r1
dev-lang/python:     2.5.2-r8
dev-util/cmake:      2.6.2
sys-apps/baselayout: 2.0.0-r1
sys-apps/openrc:     0.4.0
sys-apps/sandbox:    1.3.2
sys-devel/autoconf:  2.13, 2.63
sys-devel/automake:  1.5, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.2
sys-devel/binutils:  2.19
sys-devel/gcc-config: 1.4.0-r4
sys-devel/libtool:   2.2.6a
virtual/os-headers:  2.6.27-r2
ACCEPT_KEYWORDS="amd64 ~amd64"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=core2 -mtune=core2 -O2 -pipe -s -mmmx -msse -msse2 -mssse3 -msse4a -fomit-frame-pointer -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/config"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/udev/rules.d"
CXXFLAGS="-march=core2 -mtune=core2 -O2 -pipe -s -mmmx -msse -msse2 -mssse3 -msse4a -fomit-frame-pointer -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="collision-protect distlocks fixpackages metadata-transfer parallel-fetch preserve-libs protect-owned sandbox sfperms strict unmerge-orphans userfetch"
GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo"
LDFLAGS="-Wl,-O1"
LINGUAS="en en_US"
MAKEOPTS="-j5"
PKGDIR="/usr/portage/packages"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage/layman/kde-crazy"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="!debug 3ds 7zip S3TC X Xaw3d a52 aac aalib accessibility acl acpi addbookmarks aften aiglx aim aio akode alias alsa amarok amd64 amr amrnb amrwb ao aotuv apache2 aqua_theme archive asf athena audacious audacity audiofile audiofileautoreplace avahi bash-completion bcmath berkdb binary-drivers bluetooth bluez boost branding bzip2 cairo calendar caps captury cdb cdda cddb cdinstall cdparanoia cdr cdrom cdsound cegui cg cgi clamav cli connectionstatus contactnotes cpudetection cracklib crypt cscope css ctype cups curl curlwrappers custom-cflags custom-cpuopts custom-optimization cvs cxx dbus depth32 dhcp dio divx djvu dnd double-precision dovecot-sasl dpms dri dts dv dvb dvbplayer dvbsetup dvd dvdr dvdread eds emboss emerald encode evo exif expat exscalibar fam fame fastcgi fasttrack fbcondecor fbsplash ffmpeg fftw file filter filter_default filter_legacy filter_light firefox fits flac fltk fontconfig foomaticdb fortran ftp gadu gammu gcj gd gdbm geoip geos ggi gif gimp gimpprint glitz glut glw glx gmath gml gnokii gnutella gnutls gpgme gphoto2 gpm gtk gtk2 guile hal hardened hddtemp hdf5 highlight history ical iconv icq icu id3 id3tag ieee1394 imagemagick imap imlib innodb inotify iodbc ipv6 irc irda irmc isdnlog jabber jack java java6 javascript jbig jce jikes jingle joystick jpeg jpeg2k kcal kde kde4 kdecard kdeenablefinal kdehiddenvisibility kdepim kdm kexi kipi kolab ladspa lame lapack largefile lash lcms lesstif libcaca libnotify libsamplerate libwww lirc live lm_sensors logitech-mouse lzo lzw mad magic maildir maps matroska maxoptimization mbox mcal mcve mdnsresponder-compat memlimit mesa metric mhash midi mikmod milter mime mixer mjpeg mmap mmx mmxext mng modplug motif mp2 mp3 mp4 mpeg mpeg2 mplayer msn mtp mudflap mule multilib musepack music musicbrainz mysql mysqli ncurses neXt net netboot netcdf netmeeting network networking newspr ngui nls no-old-linux nocd nosendmail nova nowin nowlistening nptl nptlonly nsplugin nvidia obex objc objc++ objc-gc odbc ode offensive ofx ogdi ogg ogg123 ogm openexr opengl openmp oscar oss pam paste64 pch pcmcia pcntl pcre pda pdf perl php physfs pic pixmaps plasma player plugins pmu png pnm portage posix postgres ppds pppd prelude pvr python qt3 qt3support qt4 quicktime rar raw rdesktop readline reflection reiser4 reiserfs remix resolvconf rogue rtc ruby samba sametime sasl scanner scenarios schedule scsi sdl sdl-sound sdlaudio sendfile server session sharedext shorten sieve slp smartcard smp sms sndfile sockets socks5 sounds sox speex spell spl sqlite sqlite3 srt sse sse-filters sse2 sse4_1 sse4a ssl ssse3 startup-notification statistics stats stencil-buffer stroke subp subtitles subversion suid svg sysfs syslog-ng sysvipc szip taglib tcpd texteffect textures tga themes theora threads threadsafe tidy tiff timidity tk tokenizer tomsfastmath toolbartools transcode translator truetype tv tv_check tv_combiner tv_pick_cgi type1 unicode unzip usb userlocales utempter v4l v4l2 vcd vhosts vim-pager vim-syntax vim-with-x visualization vnc vorbis wavpack webdav webkit webpresence wifi wireshark wma wmf wmp wxwindows x264 xanim xattr xcb xcomposite xext xface xine xinerama xinetd xml xmp xorg xosd xpm xprint xrandr xrender xscreensaver xskatcards xsl xulrunner xv xvid xvmc yiff yv12 zeroconf zip zlib zsh-completion zvbi" ALSA_CARDS="snd-hda-intel" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CAMERAS="adc65 agfa_cl20 aox barbie canon casio_qv clicksmart310 digigr8 digita dimagev dimera3500 directory enigma13 fuji gsmart300 hp215 iclick jamcam jd11 kodak_dc120 kodak_dc210 kodak_dc240 kodak_dc3200 kodak_ez200 konica konica_qm150 largan lg_gsm mars mustek panasonic_coolshot panasonic_dc1000 panasonic_dc1580 panasonic_l859 pccam300 pccam600 polaroid_pdc320 polaroid_pdc640 polaroid_pdc700 ptp2 ricoh ricoh_g3 samsung sierra sipix_blink sipix_blink2 sipix_web2 smal sonix sony_dscf1 sony_dscf55 soundvision spca50x sq905 stv0674 stv0680 sx330z template toshiba_pdrm11" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en en_US" USERLAND="GNU" VIDEO_CARDS="nvidia vesa"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LANG, LC_ALL, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 1 Kevin 2009-01-03 23:31:24 UTC
Created attachment 177289 [details]
Kernel 2.6.27-gentoo-r7 .config

Attached Kernel 2.6.27-gentoo-r7 .config
Comment 2 Kevin 2009-01-03 23:31:59 UTC
Created attachment 177291 [details]
lspci -vv output

Attached lcpci -vv output
Comment 3 archibald haddock 2009-01-04 01:04:07 UTC
I think you should enable CONFIG_HIGHMEM4G=y. 
In menuconfig: Processor type and features ---> High Memory Support ---> 4GB
Comment 4 Outer Measure 2009-01-04 15:32:55 UTC
(In reply to comment #3)
> I think you should enable CONFIG_HIGHMEM4G=y. 
> In menuconfig: Processor type and features ---> High Memory Support ---> 4GB
> 

The highmem is only relevant to 32-bit systems, not 64-bit.

This bug report looks like the one raised in forum back in late November: http://forums.gentoo.org/viewtopic-t-716136.html
Comment 5 Jeroen Roovers (RETIRED) gentoo-dev 2009-01-04 17:03:16 UTC
Where's your dmesg output? The relevant bits should be somewhere near the top.

Also, it may well be that this is just the PCI address space taking up about a gigabyte.

Also, I don't see how Windows Vista has anything to do with this. I don't trust it to report actual total RAM acurately. Why don't you try an alternative Linux distro's memory reporting instead of comparing entirely dissimilar OSs?
Comment 6 Kevin 2009-01-05 17:12:12 UTC
I'll post the dmesg output tonight. I've a 32bit knoppix live CD which, I'm gonna try and see if that makes a difference and then download & run 64 bit version. 

Just wanted to say, that it's only windoz reporting 4GB memory as available but, also memtest and BIOS report 4GB ! If BIOS, memtest and windoz can see 4GB, I don't think it has to do with any memory hole or similar (I could be wrong as I'm not an expert in this issue) !
Comment 7 Kevin 2009-01-07 01:57:06 UTC
OK, I've attached the dmesg output.

I googled a bit and came across similar instances where guys had problems with memory mapped systems. One of them used the "mem=" kernel parameters as a work around. I decided to try that and specified "mem=8GB" kernel parameter at boot time. Now, the physical memory recognized by linux is 309MB. There's still about 145 MB missing. But, definitely it is lot better than before. Can someone tell me where is that 145MB ? 
This is what free command displays now.


/proc/meminfo consists this:
      MemTotal:      4045392 kB
      MemFree:       3380512 kB
      Buffers:         26660 kB
      Cached:         355056 kB
      SwapCached:          0 kB
      Active:         325516 kB
      Inactive:       252980 kB
      SwapTotal:           0 kB
      SwapFree:            0 kB
      Dirty:             416 kB
      Writeback:           0 kB
      AnonPages:      196776 kB
      Mapped:          89056 kB
      Slab:            34008 kB
      SReclaimable:    22188 kB
      SUnreclaim:      11820 kB
      PageTables:      12768 kB
      NFS_Unstable:        0 kB
      Bounce:              0 kB
      WritebackTmp:        0 kB
      CommitLimit:   2022696 kB
      Committed_AS:  1183636 kB
      VmallocTotal: 34359738367 kB
      VmallocUsed:    312096 kB
      VmallocChunk: 34359425531 kB
      DirectMap4k:     58304 kB
      DirectMap2M:   4134912 kB


/proc/mtrr consists this:
      reg00: base=0x00000000 (   0MB), size=4096MB: write-back, count=1
      reg01: base=0x100000000 (4096MB), size=1024MB: write-back, count=1
      reg02: base=0xc0000000 (3072MB), size=1024MB: uncachable, count=1
      reg03: base=0xbff00000 (3071MB), size=   1MB: uncachable, count=1


Thanks for all the help.
Comment 8 Kevin 2009-01-07 01:58:05 UTC
Created attachment 177629 [details]
Dmesg

Output from dmesg
Comment 9 Kevin 2009-01-09 18:03:49 UTC
Bump ?!
Comment 10 Imre Péntek 2009-05-08 16:43:19 UTC
The same also applies to me, I don't even see that "high memory support" when I am about to make menuconfig. Also:

/usr/src/linux-2.6.28-gentoo-r5/arch/x86/Kconfig lines 839 and following
choice
        prompt "High Memory Support"
        default HIGHMEM4G if !X86_NUMAQ
        default HIGHMEM64G if X86_NUMAQ
        depends on X86_32

so this 64 bit kernel won't have an option like that. I would appreciate a solution to this problem.
Comment 11 Imre Péntek 2009-05-08 16:49:04 UTC
(Also I am not sure if this but isn't really upstream)
Comment 12 Imre Péntek 2009-05-08 17:00:36 UTC
(as an additional addition, ubuntu jaunty (32bit) can see and use all my 4GB of mem, while gentoo-sources can only see 3GB of it)