Topic
  • 10 replies
  • Latest Post - ‏2012-03-15T15:47:07Z by RCJ
tjacks55
tjacks55
8 Posts

Pinned topic RHEL 5.8 kernel 2.6.18-308 rebuild with 4k pages

‏2012-03-13T14:53:55Z |
I am trying to rebuild using 4k pages with the latest kernel 2.6.18-308 from our yum repo, and am getting the follow error on the rpm build when following the 4k page build guide.  Any assistance would be greatly appreciated. 
 
[root@servername redhat]# rpmbuild -ba --target ppc64 --without kabichk SPECS/kernel.spec 
Building target platforms: ppc64
Building for target ppc64
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.70843
+ umask 022
+ cd /usr/src/redhat/BUILD
+ LANG=C
+ export LANG
+ unset DISPLAY
+ '[' '!' -d kernel-2.6.18/vanilla-2.6.18.4 ']'
+ cd kernel-2.6.18
+ '[' -d linux-2.6.18-308.el5.4K.ppc64 ']'
+ rm -rf deleteme
+ mv linux-2.6.18-308.el5.4K.ppc64 deleteme
+ rm -rf deleteme
+ cp -rl vanilla-2.6.18.4 linux-2.6.18-308.el5.4K.ppc64
+ cd linux-2.6.18-308.el5.4K.ppc64
+ echo 'Patch #1 (kernel-2.6.18-redhat.patch):'
Patch #1 (kernel-2.6.18-redhat.patch):
+ patch -p1 --fuzz=2 -E -s
+ cp /usr/src/redhat/SOURCES/COPYING.modules Documentation/
+ mkdir configs
+ for cfg in 'kernel-2.6.18-ppc64*.config'
+ cp -f /usr/src/redhat/SOURCES/kernel-2.6.18-ppc64-debug.config /usr/src/redhat/SOURCES/kernel-2.6.18-ppc64-kdump.config /usr/src/redhat/SOURCES/kernel-2.6.18-ppc64.config .
+ for i in 'kernel-2.6.18-ppc64*.config'
+ mv kernel-2.6.18-ppc64-debug.config kernel-2.6.18-ppc64-debug.config.tmp
+ /usr/src/redhat/SOURCES/merge.pl /usr/src/redhat/SOURCES/config-rhel-generic kernel-2.6.18-ppc64-debug.config.tmp
+ rm kernel-2.6.18-ppc64-debug.config.tmp
+ for i in 'kernel-2.6.18-ppc64*.config'
+ mv kernel-2.6.18-ppc64-kdump.config kernel-2.6.18-ppc64-kdump.config.tmp
+ /usr/src/redhat/SOURCES/merge.pl /usr/src/redhat/SOURCES/config-rhel-generic kernel-2.6.18-ppc64-kdump.config.tmp
+ rm kernel-2.6.18-ppc64-kdump.config.tmp
+ for i in 'kernel-2.6.18-ppc64*.config'
+ mv kernel-2.6.18-ppc64.config kernel-2.6.18-ppc64.config.tmp
+ /usr/src/redhat/SOURCES/merge.pl /usr/src/redhat/SOURCES/config-rhel-generic kernel-2.6.18-ppc64.config.tmp
+ rm kernel-2.6.18-ppc64.config.tmp
+ for i in 'kernel-2.6.18-ppc64*.config'
+ mv kernel-2.6.18-ppc64-debug.config kernel-2.6.18-ppc64-debug.config.tmp
+ /usr/src/redhat/SOURCES/merge.pl /usr/src/redhat/SOURCES/config-rhel-ppc64-generic kernel-2.6.18-ppc64-debug.config.tmp
+ rm kernel-2.6.18-ppc64-debug.config.tmp
+ for i in 'kernel-2.6.18-ppc64*.config'
+ mv kernel-2.6.18-ppc64-kdump.config kernel-2.6.18-ppc64-kdump.config.tmp
+ /usr/src/redhat/SOURCES/merge.pl /usr/src/redhat/SOURCES/config-rhel-ppc64-generic kernel-2.6.18-ppc64-kdump.config.tmp
+ rm kernel-2.6.18-ppc64-kdump.config.tmp
+ for i in 'kernel-2.6.18-ppc64*.config'
+ mv kernel-2.6.18-ppc64.config kernel-2.6.18-ppc64.config.tmp
+ /usr/src/redhat/SOURCES/merge.pl /usr/src/redhat/SOURCES/config-rhel-ppc64-generic kernel-2.6.18-ppc64.config.tmp
+ rm kernel-2.6.18-ppc64.config.tmp
+ rm -f kernel-2.6.18-i686-kdump.config kernel-2.6.18-x86_64-kdump.config
+ rm -f kernel-2.6.18-i586.config
+ for i in '*.config'
+ mv kernel-2.6.18-ppc64-debug.config .config
++ head -1 .config
++ cut -b 3-
+ Arch=powerpc
+ make ARCH=powerpc nonint_oldconfig
.config:431:warning: trying to assign nonexistent symbol ISCSI_IBFT
.config:432:warning: trying to assign nonexistent symbol ISCSI_IBFT_FIND
.config:3124:warning: trying to assign nonexistent symbol NFS_FSCACHE
.config:3139:warning: trying to assign nonexistent symbol VIRTIO_RING
.config:3140:warning: trying to assign nonexistent symbol VIRTIO_PCI
.config:3143:warning: trying to assign nonexistent symbol VIRTIO_BALLOON
.config:3161:warning: trying to reassign symbol EDAC_DEBUG
.config:3304:warning: trying to assign nonexistent symbol OPTPROBES
.config:3305:warning: trying to assign nonexistent symbol X86_DECODER_SELFTEST
+ echo '# powerpc'
+ cat .config
+ for i in '*.config'
+ mv kernel-2.6.18-ppc64-kdump.config .config
++ head -1 .config
++ cut -b 3-
+ Arch=powerpc
+ make ARCH=powerpc nonint_oldconfig
.config:432:warning: trying to assign nonexistent symbol ISCSI_IBFT
.config:433:warning: trying to assign nonexistent symbol ISCSI_IBFT_FIND
.config:3125:warning: trying to assign nonexistent symbol NFS_FSCACHE
.config:3140:warning: trying to assign nonexistent symbol VIRTIO_RING
.config:3141:warning: trying to assign nonexistent symbol VIRTIO_PCI
.config:3144:warning: trying to assign nonexistent symbol VIRTIO_BALLOON
.config:3305:warning: trying to assign nonexistent symbol OPTPROBES
.config:3306:warning: trying to assign nonexistent symbol X86_DECODER_SELFTEST
+ echo '# powerpc'
+ cat .config
+ for i in '*.config'
+ mv kernel-2.6.18-ppc64.config .config
++ head -1 .config
++ cut -b 3-
+ Arch=powerpc
+ make ARCH=powerpc nonint_oldconfig
.config:431:warning: trying to assign nonexistent symbol ISCSI_IBFT
.config:432:warning: trying to assign nonexistent symbol ISCSI_IBFT_FIND
.config:3124:warning: trying to assign nonexistent symbol NFS_FSCACHE
.config:3139:warning: trying to assign nonexistent symbol VIRTIO_RING
.config:3140:warning: trying to assign nonexistent symbol VIRTIO_PCI
.config:3143:warning: trying to assign nonexistent symbol VIRTIO_BALLOON
.config:3303:warning: trying to assign nonexistent symbol OPTPROBES
.config:3304:warning: trying to assign nonexistent symbol X86_DECODER_SELFTEST
+ echo '# powerpc'
+ cat .config
+ cd ..
+ '[' -d deleteme ']'
+ find . '(' -name '*.orig' -o -name '*~' ')' -exec rm -f '{}' ';'
+ cp /usr/src/redhat/SOURCES/Config.mk .
+ '[' -d xen ']'
+ rm -rf xen
+ cd /usr/src/redhat/BUILD
+ cd kernel-2.6.18
+ /usr/bin/gzip -dc /usr/src/redhat/SOURCES/xen-15502.tar.bz2
+ tar -xf -
+ STATUS=0
+ '[' 0 -ne 0 ']'
++ /usr/bin/id -u
+ '[' 0 = 0 ']'
+ /bin/chown -Rhf root .
++ /usr/bin/id -u
+ '[' 0 = 0 ']'
+ /bin/chgrp -Rhf root .
+ /bin/chmod -Rf a+rX,u+w,g-w,o-w .
+ cd config
+ echo 'Patch #2 (xen-config-2.6.18-redhat.patch):'
Patch #2 (xen-config-2.6.18-redhat.patch):
+ patch -p1 --fuzz=2 -s
+ cd ..
+ cd xen
+ echo 'Patch #3 (xen-2.6.18-redhat.patch):'
Patch #3 (xen-2.6.18-redhat.patch):
+ patch -p1 --fuzz=2 -E -s
+ cd ..
+ exit 0
Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.88627
+ umask 022
+ cd /usr/src/redhat/BUILD
+ cd kernel-2.6.18
+ LANG=C
+ export LANG
+ unset DISPLAY
+ gpg --homedir . --batch --gen-key /usr/src/redhat/SOURCES/genkey
gpg: WARNING: unsafe permissions on homedir `.'
++++++++++++++++++++++++++++++++++++++++++++++++++..++++++++++++++++++++++++++++++.++++++++++.++++++++++.+++++++++++++++++++++++++..+++++..+++++..>.+++++............................+++++
+ gpg --homedir . --export --keyring ./kernel.pub Red
gpg: WARNING: unsafe permissions on homedir `.'
+ make linux-2.6.18-308.el5.4K.ppc64/scripts/bin2c
cc     linux-2.6.18-308.el5.4K.ppc64/scripts/bin2c.c   -o linux-2.6.18-308.el5.4K.ppc64/scripts/bin2c
+ linux-2.6.18-308.el5.4K.ppc64/scripts/bin2c ksign_def_public_key __initdata
+ rm -rf /var/tmp/kernel-2.6.18-308.el5.4K-root
+ mkdir -p /var/tmp/kernel-2.6.18-308.el5.4K-root/boot
+ cd linux-2.6.18-308.el5.4K.ppc64
+ BuildKernel vmlinux vmlinux
+ MakeTarget=vmlinux
+ KernelImage=vmlinux
+ Flavour=
+ '[' -n '' ']'
+ Config=kernel-2.6.18-ppc64.config
+ DevelDir=/usr/src/kernels/2.6.18-308.el5.4K-ppc64
+ DevelLink=
+ KernelVer=2.6.18-308.el5.4K
+ echo BUILDING A KERNEL FOR ppc64...
BUILDING A KERNEL FOR ppc64...
+ perl -p -i -e 's/^EXTRAVERSION.*/EXTRAVERSION = -308.el5.4K/' Makefile
+ make -s mrproper
+ cp configs/kernel-2.6.18-ppc64.config .config
++ head -1 .config
++ cut -b 3-
+ Arch=powerpc
+ echo USING ARCH=powerpc
USING ARCH=powerpc
+ '[' vmlinux == x86 ']'
+ '[' powerpc == s390 -a '' == kdump ']'
+ make -s ARCH=powerpc nonint_oldconfig
+ make -s ARCH=powerpc -j24 vmlinux
  CHK     include/linux/version.h
  UPD     include/linux/version.h
  CHK     include/linux/utsrelease.h
  SYMLINK include/asm -> include/asm-powerpc
  UPD     include/linux/utsrelease.h
  CHK     include/linux/compile.h
  UPD     include/linux/compile.h
In file included from arch/powerpc/mm/mem.c:35:
include/asm/pgalloc.h: In function 'pgd_free':
include/asm/pgalloc.h:48: error: implicit declaration of function 'subpage_prot_free'
In file included from arch/powerpc/mm/init_64.c:45:
include/asm/pgalloc.h: In function 'pgd_free':
include/asm/pgalloc.h:48: error: implicit declaration of function 'subpage_prot_free'
make[1]: *** [arch/powerpc/mm/init_64.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: *** [arch/powerpc/mm/mem.o] Error 1
make: *** [arch/powerpc/mm] Error 2
make: *** Waiting for unfinished jobs....
In file included from include/asm/tlb.h:19,
                 from arch/powerpc/platforms/pseries/lpar.c:36:
include/asm/pgalloc.h: In function 'pgd_free':
include/asm/pgalloc.h:48: error: implicit declaration of function 'subpage_prot_free'
make[2]: *** [arch/powerpc/platforms/pseries/lpar.o] Error 1
make[2]: *** Waiting for unfinished jobs....
arch/powerpc/platforms/cell/axon_utl.c: In function 'axon_utl_setup_one':
arch/powerpc/platforms/cell/axon_utl.c:107: warning: passing argument 2 of 'of_translate_address' discards qualifiers from pointer target type
arch/powerpc/platforms/cell/axon_utl.c:124: warning: passing argument 2 of 'request_irq' from incompatible pointer type
make[1]: *** [arch/powerpc/platforms/pseries] Error 2
make[1]: *** Waiting for unfinished jobs....
arch/powerpc/platforms/cell/axon_pci-error.c: In function 'axon_pci_setup_one':
arch/powerpc/platforms/cell/axon_pci-error.c:108: warning: passing argument 2 of 'of_translate_address' discards qualifiers from pointer target type
arch/powerpc/platforms/cell/axon_pci-error.c:125: warning: passing argument 2 of 'request_irq' from incompatible pointer type
arch/powerpc/platforms/cell/axon_msi.c: In function 'axon_msi_probe':
arch/powerpc/platforms/cell/axon_msi.c:351: warning: unused variable 'page'
arch/powerpc/kernel/rtas.c: In function 'rtas_suspend_last_cpu':
arch/powerpc/kernel/rtas.c:709: warning: label 'out' defined but not used
make: *** [arch/powerpc/platforms] Error 2
error: Bad exit status from /var/tmp/rpm-tmp.88627 (%build)


RPM build errors:
    Bad exit status from /var/tmp/rpm-tmp.88627 (%build)
 
Updated on 2012-03-15T15:47:07Z at 2012-03-15T15:47:07Z by RCJ
  • RCJ
    RCJ
    10 Posts

    Re: RHEL 5.8 kernel 2.6.18-308 rebuild with 4k pages

    ‏2012-03-14T17:35:36Z  
     What "4k page build guide" were you using?  It would be helpful to have a description of what you did to prepare for this build.
  • tjacks55
    tjacks55
    8 Posts

    Re: RHEL 5.8 kernel 2.6.18-308 rebuild with 4k pages

    ‏2012-03-14T17:52:52Z  
    • RCJ
    • ‏2012-03-14T17:35:36Z
     What "4k page build guide" were you using?  It would be helpful to have a description of what you did to prepare for this build.
      I followed this one, using the distro source.
     
    I added the buildid to the spec file, modified the 3 config files from 64K=y to 64K=n and the did the rpmbuild.  If I do the rpmbuild without the 64k to 4K changes, and without disabling the abi check, it build just fine.  It only fails when I make the changes for the 4K. 
  • RCJ
    RCJ
    10 Posts

    Re: RHEL 5.8 kernel 2.6.18-308 rebuild with 4k pages

    ‏2012-03-14T18:45:30Z  
    • tjacks55
    • ‏2012-03-14T17:52:52Z
      I followed this one, using the distro source.
     
    I added the buildid to the spec file, modified the 3 config files from 64K=y to 64K=n and the did the rpmbuild.  If I do the rpmbuild without the 64k to 4K changes, and without disabling the abi check, it build just fine.  It only fails when I make the changes for the 4K. 
    Check that you removed the patch mentioned in the next section of those instructions "Error on RHEL 5.3 (and RHEL 5.4) for 4KB pages".  Your failure matches the build error described in that section, hopefully that will resolve the issue.
  • tjacks55
    tjacks55
    8 Posts

    Re: RHEL 5.8 kernel 2.6.18-308 rebuild with 4k pages

    ‏2012-03-14T18:56:59Z  
    • RCJ
    • ‏2012-03-14T18:45:30Z
    Check that you removed the patch mentioned in the next section of those instructions "Error on RHEL 5.3 (and RHEL 5.4) for 4KB pages".  Your failure matches the build error described in that section, hopefully that will resolve the issue.
     That was the first thing I checked, and there don't appear to be any patches loaded in this kernel's spec file.
  • RCJ
    RCJ
    10 Posts

    Re: RHEL 5.8 kernel 2.6.18-308 rebuild with 4k pages

    ‏2012-03-14T20:15:23Z  
    • tjacks55
    • ‏2012-03-14T18:56:59Z
     That was the first thing I checked, and there don't appear to be any patches loaded in this kernel's spec file.
    It appears that the last kernel source RPM to have the patches broken out was RHEL5.6, now all patches are part of a single patch file.  Those instructions in the wiki for excluding the patch will not work with releases newer than 5.6, however the patch is still applied in 5.7 and 5.8 and that is causing the build breakage for 4K kernels.  I've extracted a 5.6 kernel source RPM to get the patch file ('linux-2.6-ppc64-subpage-protection-for-pave.patch'), put that patch into the spec file for the 5.8 kernel as a reverse patch, and kicked off a build which appears to be working.  I'll ask around to see if this is the best means available and get it documented.
     
    Would that be helpful and do you have access to a rhel5.6 kernel source RPM?
  • RCJ
    RCJ
    10 Posts

    Re: RHEL 5.8 kernel 2.6.18-308 rebuild with 4k pages

    ‏2012-03-14T20:41:35Z  
    • tjacks55
    • ‏2012-03-14T18:56:59Z
     That was the first thing I checked, and there don't appear to be any patches loaded in this kernel's spec file.
    I extracted the file I wanted from the RHEL5.6 kernel without installing the RPM, I didn't want to overwrite the RHEL5.8 kernel source.  I did this as follows:
    1. rpm2cpio kernel-2.6.18-238.el5.src.rpm > kernel-2.6.18-238.el5.src.cpio
    2. cpio -i linux-2.6-ppc64-subpage-protection-for-pave.patch < kernel-2.6.18-238.el5.src.cpio
    3. mv linux-2.6-ppc64-subpage-protection-for-pave.patch /usr/src/redhat/SOURCES/
    4. rm kernel-2.6.18-238.el5.src.cpio
    This converts the RHEL5.6 kernel to a CPIO archive, extracts the single patch file, and then places that in the SOURCES directory.
     
    The next step is to edit the kernel spec file to use the patch to reverse the changes.  Here are the changes I made to /usr/src/redhat/SPECS/kernel.spec.  They include changing the buildid, specifying the patch file, and adding a line to apply the patch in reverse (with the '-R' flag):
     
     # diff -u kernel.spec kernel.spec.mod
    --- kernel.spec    2012-01-27 16:11:48.000000000 -0600
    +++ kernel.spec.mod    2012-03-14 15:23:49.000000000 -0500
    @@ -71,7 +71,7 @@
     # that the kernel isn't the stock distribution kernel, for example,
     # by setting the define to ".local" or ".bz123456"
     #
    -#% define buildid
    +%define buildid .4K
     #
     %define sublevel 18
     %define stablerev 4
    @@ -424,6 +424,7 @@
     Patch1: kernel-2.6.18-redhat.patch
     Patch2: xen-config-2.6.18-redhat.patch
     Patch3: xen-2.6.18-redhat.patch
    +Patch4: linux-2.6-ppc64-subpage-protection-for-pave.patch
     
     # empty final patch file to facilitate testing of kernel patches
     Patch99999: linux-kernel-test.patch
    @@ -680,6 +681,7 @@
     cd linux-%{KVERREL}.%{_target_cpu}
     
     %patch1 -p1 -E
    +%patch4 -p1 -R
     
     # conditionally applied test patch for debugging convenience
     %if %([ -s %{PATCH99999} ] && echo 1 || echo 0)
     
    After you've done this, you can build the rpm as per the instructions in the wiki...
    # rpmbuild -ba --target ppc64 --without kabichk kernel.spec

  • tjacks55
    tjacks55
    8 Posts

    Re: RHEL 5.8 kernel 2.6.18-308 rebuild with 4k pages

    ‏2012-03-15T13:39:40Z  
    • RCJ
    • ‏2012-03-14T20:41:35Z
    I extracted the file I wanted from the RHEL5.6 kernel without installing the RPM, I didn't want to overwrite the RHEL5.8 kernel source.  I did this as follows:
    1. rpm2cpio kernel-2.6.18-238.el5.src.rpm > kernel-2.6.18-238.el5.src.cpio
    2. cpio -i linux-2.6-ppc64-subpage-protection-for-pave.patch < kernel-2.6.18-238.el5.src.cpio
    3. mv linux-2.6-ppc64-subpage-protection-for-pave.patch /usr/src/redhat/SOURCES/
    4. rm kernel-2.6.18-238.el5.src.cpio
    This converts the RHEL5.6 kernel to a CPIO archive, extracts the single patch file, and then places that in the SOURCES directory.
     
    The next step is to edit the kernel spec file to use the patch to reverse the changes.  Here are the changes I made to /usr/src/redhat/SPECS/kernel.spec.  They include changing the buildid, specifying the patch file, and adding a line to apply the patch in reverse (with the '-R' flag):
     
     # diff -u kernel.spec kernel.spec.mod
    --- kernel.spec    2012-01-27 16:11:48.000000000 -0600
    +++ kernel.spec.mod    2012-03-14 15:23:49.000000000 -0500
    @@ -71,7 +71,7 @@
     # that the kernel isn't the stock distribution kernel, for example,
     # by setting the define to ".local" or ".bz123456"
     #
    -#% define buildid
    +%define buildid .4K
     #
     %define sublevel 18
     %define stablerev 4
    @@ -424,6 +424,7 @@
     Patch1: kernel-2.6.18-redhat.patch
     Patch2: xen-config-2.6.18-redhat.patch
     Patch3: xen-2.6.18-redhat.patch
    +Patch4: linux-2.6-ppc64-subpage-protection-for-pave.patch
     
     # empty final patch file to facilitate testing of kernel patches
     Patch99999: linux-kernel-test.patch
    @@ -680,6 +681,7 @@
     cd linux-%{KVERREL}.%{_target_cpu}
     
     %patch1 -p1 -E
    +%patch4 -p1 -R
     
     # conditionally applied test patch for debugging convenience
     %if %([ -s %{PATCH99999} ] && echo 1 || echo 0)
     
    After you've done this, you can build the rpm as per the instructions in the wiki...
    # rpmbuild -ba --target ppc64 --without kabichk kernel.spec

     Thank you, that worked perfectly!
  • RCJ
    RCJ
    10 Posts

    Re: RHEL 5.8 kernel 2.6.18-308 rebuild with 4k pages

    ‏2012-03-15T13:43:57Z  
    • tjacks55
    • ‏2012-03-15T13:39:40Z
     Thank you, that worked perfectly!
     Great, I've updated the wiki with these steps as well.
  • tjacks55
    tjacks55
    8 Posts

    Re: RHEL 5.8 kernel 2.6.18-308 rebuild with 4k pages

    ‏2012-03-15T14:11:13Z  
    • RCJ
    • ‏2012-03-15T13:43:57Z
     Great, I've updated the wiki with these steps as well.
     It looks like the gfs module didn't build properly in the build, is there a way to manually rebuild the one module?  When I try to load it, I get the following
    [root@servername ~]# modprobe gfs
    FATAL: Error inserting gfs (/lib/modules/2.6.18-308.el5.4K/weak-updates/gfs/gfs.ko): Unknown symbol in module, or unknown parameter (see dmesg)
     and in dmesg I see this when trying to mount gfs volumes that previously worked:
     
     gfs: disagrees about version of symbol find_vma
    gfs: Unknown symbol find_vma
    gfs: disagrees about version of symbol mem_section
    gfs: Unknown symbol mem_section
    gfs: disagrees about version of symbol unmap_mapping_range
    gfs: Unknown symbol unmap_mapping_range
    gfs: disagrees about version of symbol vmtruncate
    gfs: Unknown symbol vmtruncate

  • RCJ
    RCJ
    10 Posts

    Re: RHEL 5.8 kernel 2.6.18-308 rebuild with 4k pages

    ‏2012-03-15T15:47:07Z  
    • tjacks55
    • ‏2012-03-15T14:11:13Z
     It looks like the gfs module didn't build properly in the build, is there a way to manually rebuild the one module?  When I try to load it, I get the following
    [root@servername ~]# modprobe gfs
    FATAL: Error inserting gfs (/lib/modules/2.6.18-308.el5.4K/weak-updates/gfs/gfs.ko): Unknown symbol in module, or unknown parameter (see dmesg)
     and in dmesg I see this when trying to mount gfs volumes that previously worked:
     
     gfs: disagrees about version of symbol find_vma
    gfs: Unknown symbol find_vma
    gfs: disagrees about version of symbol mem_section
    gfs: Unknown symbol mem_section
    gfs: disagrees about version of symbol unmap_mapping_range
    gfs: Unknown symbol unmap_mapping_range
    gfs: disagrees about version of symbol vmtruncate
    gfs: Unknown symbol vmtruncate

    Even with a rebuild of the GFS kernel module to match this kernel on my test system I end up with those message, which I didn't expect.  I've asked around and we'll see if there's someone else that has an answer for this.  Just for the record, here's what I tried with no luck:
     
    The gfs module source rpm name is gfs-kmod-0.1.34-17.el5.src.rpm (from the RHEL5.8 sources media, there could be newer versions on RHN).  Install the gfs kernel module source:
     
    # rpm -ivh  gfs-kmod-0.1.34-17.el5.src.rpm
     
    The kernel-devel package is a prerequisite, from the kernel RPMS you just created install the kernel-devel package (the file is /usr/src/redhat/RPMS/ppc64/kernel-devel-2.6.18-308.el5.4K.ppc64.rpm, if your .buildid was 4K as was the example in the wiki).
     
    # cd /usr/src/redhat/RPMS/
    # rpm -ivh  kernel-devel-2.6.18-308.el5.4K.ppc64.rpm
     
    Build the gfs kernel module by specifying the kernel version on the command line:
    # uname -r  2.6.18-308.el5.4K      ### This is the kernel you build for 4K support.
    # rpmbuild --define "kversion 2.6.18-308.el5.4K" -ba gfs-kmod.spec
     
    Install the gfs kernel module, you may need to overwrite your existing module using these directions (because the package is not renamed) and I expect that the you'll need --nodeps as well:
     
    # cd /usr/src/redhat/RPMS/ppc64
    # rpm --nodeps -ivh kmod-gfs-0.1.34-17.ppc64.rpm
     
    Installing the gfs module will rebuild the initrd.