[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: libc6-xen not used on AMD Geode LX system



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.

Thanks again,

Jérôme




Reply to: