[Pkg-xen-devel] Re: libc6-xen not used on AMD Geode LX system
Aurelien Jarno
aurelien at aurel32.net
Wed Jan 10 00:19:30 CET 2007
Jérôme a écrit :
> Aurelien Jarno wrote:
>> Jérôme a écrit :
>>
>>> Hi,
>>>
>>> I'm trying to install xen+Debian Etch on a Geode LX system. Xen
>>> boots fine, but although the package "libc6-xen" is installed I have a
>>> large number of such errors:
>>> 4gb seg fixup, process syslogd (pid 1878), cs:ip 73:b7f24610
>>>
>>> All processes triggers it, and from what I've found on the web it's
>>> a sign that libc6-xen is not recognized. Indeed:
>>> minimo:~:2# ldd /bin/echo
>>> linux-gate.so.1 => (0xffffe000)
>>> libc.so.6 => /lib/tls/libc.so.6 (0xb7e48000)
>>> /lib/ld-linux.so.2 (0xb7f82000)
>>>
>>> It's /lib/tls and not /lib/tls/i686/cmov.
>>>
>>> I have found on the web references to this issue for FC6, with a fix
>>> ("hwcap 0 nosegneg" in a file in /etc/ld.so.conf.d, and put the libs in
>>> /lib/tls/i686/cmov/nosegneg, ldconfig) but this does not help here. So
>>> it may be a capability issue?
>>>
>>> When I look at the hardware capabilities needed with "ldconfig -Nv |
>>> grep '^/'" I get:
>>> lib/tls: (hwcap: 0x8000000000000000)
>>> /usr/lib/i486: (hwcap: 0x2000000000000)
>>> /usr/lib/i686: (hwcap: 0x8000000000000)
>>> /usr/lib/i586: (hwcap: 0x4000000000000)
>>> /lib/tls/i686: (hwcap: 0x8008000000000000)
>>> /usr/lib/i686/cmov: (hwcap: 0x8000000008000)
>>> /lib/tls/i686/cmov: (hwcap: 0x8008000000008000)
>>>
>>> 0x8000 is CMOV support, which is present on the Geode LX. Here's the
>>> whole CPU info:
>>> minimo:~:3# cat /proc/cpuinfo
>>> processor : 0
>>> vendor_id : AuthenticAMD
>>> cpu family : 5
>>> model : 10
>>> model name : Geode(TM) Integrated Processor by AMD PCS
>>> stepping : 2
>>> cpu MHz : 499.919
>>> cache size : 128 KB
>>> fdiv_bug : no
>>> hlt_bug : no
>>> f00f_bug : no
>>> coma_bug : no
>>> fpu : yes
>>> fpu_exception : yes
>>> cpuid level : 1
>>> wp : yes
>>> flags : fpu de pse tsc msr cx8 sep pge cmov clflush mmx
>>> mmxext 3dnowext 3dnow up
>>> bogomips : 1001.25
>>>
>>> The upper bit is required for TLS, so it's not the problem as TLS is
>>> supported. So it should be the middle bit 0x8000000000000 that is not
>>> supported. I found a reference to "MP support" but that seems weird ---
>>> why would MP support be required here?
>>>
>> This bit means than you need a 686 CPU. This seems to be the case as you
>> are using a -686 kernel, but it seems it is not correctly detected by
>> the kernel. You can try to move the files from /lib/tls/i686/cmov into
>> /lib/tls/i586/cmov, then run ldconfig and try again. Be aware that it
>> can crash your system if your CPU really doesn't support 686 instructions.
>>
> Thanks, that worked perfectly: the Xen libs are found, and after a
> reboot the virtual machines works perfectly. According to its data book
> the Geode LX is i686 compatible, see the Pentium Pro reference below:
> "The instruction set supported by the core is a combination
> of Intel’s Pentium, the AMD-K6 microprocessor and the
> Athlon FPU, and the AMD Geode LX processor specific
> instructions. Specifically, it supports the Pentium, Pentium
> Pro, 3DNow! technology for the AMD-K6 and Athlon processors,
> and MMX instructions for the Athlon processor."
>
> So it seems to be a bug in the capability handling of ldconfig.
Well the ld.so dynamic loader uses the hwcap provided by the kernel.
Therefore I guess your CPU is not correctly detected by the kernel.
I suggest to report a bug against the linux-2.6 package.
Aurelien
--
.''`. Aurelien Jarno | GPG: 1024D/F1BCDB73
: :' : Debian developer | Electrical Engineer
`. `' aurel32 at debian.org | aurelien at aurel32.net
`- people.debian.org/~aurel32 | www.aurel32.net
More information about the Pkg-xen-devel
mailing list