====== Upgrade_domU_to_Lenny ====== Debian Lenny (version 5) was released on the 14th of Feb, 2009. I decided to upgrade one of my domU's to Lenny to see how the dist-upgrade went. apt-get dist-upgrade A nice email was sent to root with all the changes. There were a few questions about restarting services, and selecting which default configs to keep. ====== Kernel Error: 4gb seg fixup ====== Anyways, after I dist-upgraded, I got a whole load of kernel error messages: Feb 15 18:18:03 twister kernel: printk: 694 messages suppressed. Feb 15 18:18:03 twister kernel: 4gb seg fixup, process python (pid 1618), cs:ip 73:b7dff870 Feb 15 18:18:08 twister kernel: printk: 696 messages suppressed. Feb 15 18:19:03 twister kernel: printk: 693 messages suppressed. Feb 15 18:19:03 twister kernel: 4gb seg fixup, process snmpd (pid 1657), cs:ip 73:b7bf71b4 Feb 15 18:19:08 twister kernel: printk: 695 messages suppressed. Feb 15 18:19:08 twister kernel: 4gb seg fixup, process snmpd (pid 1657), cs:ip 73:b7bf71b4 These appeared for various running daemons. ====== Reasons for 4gb seg fixup ====== * DomU was running Debian Lenny. * The DomU while running Lenny was using a Debian Etch Kernel on dom0 * Solution 1: Upgrade dom0 to Debian Lenny, and thus dom0 would be using a correct kernel. * Solution 2: See below: ====== Solution to 4gb seg fixup on DomU Xen ====== #On the domU apt-get install libc6-xen (should already be installed) mv /lib/tls /lib/tls.disabled (should already be done) vi /etc/ld.so.conf.d/libc6-xen.conf #change "hwcap 1 nosegneg" to "hwcap 0 nosegneg" ldconfig reboot ====== Edit to 4gb seg fixup ====== After dis-upgrading lenny on another domU, after closer watching of the upgrade process, there was one step relating to this issue which I may have overlooked. The step was: Setting up libc6-xen (2.7-18) ... Configuration file `/etc/ld.so.conf.d/libc6-xen.conf' ==> File on system created by you or by a script. ==> File also in package provided by package maintainer. What would you like to do about it ? Your options are: Y or I : install the package maintainer's version N or O : keep your currently-installed version D : show the differences between the versions Z : background this process to examine the situation The default action is to keep your current version. *** libc6-xen.conf (Y/I/N/O/D/Z) [[default=N]] ? D --- /etc/ld.so.conf.d/libc6-xen.conf 2007-04-20 17:34:58.000000000 +0100 +++ /etc/ld.so.conf.d/libc6-xen.conf.dpkg-new 2009-01-04 18:12:21.000000000 +0000 @@ -1 +1,6 @@ -hwcap 0 nosegneg +# This directive teaches ldconfig to search in nosegneg subdirectories +# and cache the DSOs there with extra bit 1 set in their hwcap match +# fields. In Xen guest kernels, the vDSO tells the dynamic linker to +# search in nosegneg subdirectories and to match this extra hwcap bit +# in the ld.so.cache file. +hwcap 1 nosegneg So, simply by choosing the default option, the correct entry gets added to /etc/ld.so.conf.d/libc6-xen.conf! I did do a reboot of the VM, and there were no 4gb seg fixup errors :-) All in all, on my second domU upgrade to lenny, there were no errors at all at all. Good Job Debian. ----- http://www.completefusion.com/wordpress/4gb-seg-fixup-errors-on-debian-lenny-xen-domu/ http://www.nabble.com/Bug-499366:-%224gb-seg-fixup%22-not-fixed-in-2.7-14--td19972026.html http://blog.kabisa.nl/2009/01/30/4gb-seg-fixup-errors-on-debian-lenny-xen-domu/ http://lists.xensource.com/archives/html/xen-users/2006-11/msg00026.html