NFS & Hight Memory on Linux

Last Update : Tue Aug 19 00:48:17 PDT 2003

my system

dual amd athlon MP 1500+ CPUs on Tyan Tiger MPX (2466-4M)
Nvidia GeForce4 4200 mx 460
Mandrake linux 9.0 stock install
XFree 4.0.1 with Nvidia driver
Kernel 2.4.21

Configuration

Today I upped my memory to 1.5G (from 0.5 G). My stock kernel only detected 860M RAM! So I had to compile with High Memory option.
  • make menuconfig (or make xconfig)
  • go to 'General Setup --> High Memory Support'. Enable High memory support, here you have 3 choices. 1G / 4G / 64G. I choose 4G. Also enable High Memory IO . After all this my .config file reads
    CONFIG_HIGHMEM4G=y
    CONFIG_HIGHMEM=y
    CONFIG_HIGHIO=y
  • I have encountered some NFS issues with High-Mem enabled. Basically nfs.o fails to load. This is because sunrpc.o - a dependancy of nfs.o - fails with some error message like
    kernel/fs/sunprc.o - can not find symbol highmem_start_page

    if you do a
    cat /proc/ksyms | grep highmem
    you will see the symbol but it's versioning is not right.

    to fix this, you need to compile the kernel without Module Versioning. To do this, go to 'Code Maturity options' and turn off 'version modules'

  • now save this config & exit
  • save this config file some place (cp .config /tmp/config)
  • make dep; make distclean
  • restore the config file again (cp /tmp/config .config)
  • make bzImage modules
  • install the new kernel & reboot. When you type free the kernel will report your new memory!