On Sun, Oct 29, 2006 at 01:19:53PM -0800, master(a)bradleyland.com wrote:
> On Sun, Oct 29, 2006 at 10:23:20AM +0800, Adrian Chadd wrote:
>> On Sun, Oct 29, 2006, Adrian Chadd wrote:
>> > On Sat, Oct 28, 2006, Daniel P. Berrange wrote:
> This issue has been present in Xen kernels ever since the 3.0.x series, if
> not
> before. Basically libc uses -ve segment addressing, which means Xen
> hypervisor
> has to do some magic tricks with segmentation to make things work. These
> tricks,
> however, have a horrific performance impact on the guests so the Xen
> kernels
> will warn about any process which does this -ve addressing.
>
> Since the vast majority of apps in Fedora are now fixed to not do -ve
> segment
> addressing by default, we have the current kernels setup to print this
> warning
> for any process which still uses the slow form of addressing, enabling
> easy
> identification of apps which need fixing.
>
> It sounds like you are using the Fedora kernels with a Debian distro which
> doesn't have any of the Xen fixups, hence you're seeing these warnings
> that
> wouldn't normally be seen by Fedora users.
>
> There's only really two solutions - either install a newer libc which has
> a
> 'nosegneg' variant, or get rid of the existing 'tls' variant of libc
and
> have
> the guests use the older plain 'i686' variant which doesn't do -ve
> segment
> addressing.
Unfortunately, I'm seeing the same behavior (printk messages suppressed,
4GB fixup, etc.) on a completely "stock" FC5 install. No debian or Ubuntu
here...
My dom0 now runs xm commands, but starting any guest results in the
messages and the guest never completes the boot process -- no login
prompt.
Ok, so you're seeing these messages in the guest only - you're not seeing
any of these messages in the Dom0 host too ?
Can you check to see whether ldconfig has correctly cached the nosegneg
versions of the libraries. For example, you should see something similar
to this:
# ldconfig -p | grep segneg
libthread_db.so.1 (libc6, hwcap: 0x0018000000000000, OS ABI: Linux 2.6.9) =>
/lib/i686/nosegneg/libthread_db.so.1
librt.so.1 (libc6, hwcap: 0x0018000000000000, OS ABI: Linux 2.6.9) =>
/lib/i686/nosegneg/librt.so.1
libpthread.so.0 (libc6, hwcap: 0x0018000000000000, OS ABI: Linux 2.6.9) =>
/lib/i686/nosegneg/libpthread.so.0
libm.so.6 (libc6, hwcap: 0x0018000000000000, OS ABI: Linux 2.6.9) =>
/lib/i686/nosegneg/libm.so.6
libc.so.6 (libc6, hwcap: 0x0018000000000000, OS ABI: Linux 2.6.9) =>
/lib/i686/nosegneg/libc.so.6
There should be a file in /etc/ld.so.conf.d/kernelcaps-???? matching your
live kernel version which has the following setting:
hwcap 0 nosegneg
If ldconfig doesn't show the nosegneg versions, try forcing it to rebuild
the cache, by just running 'ldconfig' with no args.
Regards,
Dan.
--
|=- Red Hat, Engineering, Emerging Technologies, Boston. +1 978 392 2496 -=|
|=- Perl modules:
http://search.cpan.org/~danberr/ -=|
|=- Projects:
http://freshmeat.net/~danielpb/ -=|
|=- GnuPG: 7D3B9505 F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 -=|