Skip to contentSkip to conversation

2.4.21-pre on SMP-HT exports bad AT_PLATFORM

DISCUSSION J.A. Magallón 1 participant 2 messages Dec 26, 2002 – Dec 27, 2002

lore
Share & tools
lore
#0 lore raw

Hi all...

Continuing with the glibc-2.3.1 saga, I have tested 2.4.21-pre2. It also fails. glibc can not get a correct AT_PLATFORM when the kernel is run on an hyperthreaded smp box.

I have run this on the box (dual [email protected]). Highmem does not matter. Just HT matters. If I sun the SMP kernel with HT active, it glibc fails to detect AT_PLATFORM. If I disable HT, from the bios or with 'noht' boot option, the platform is correctly detected. Something does not follow the rules in binfmt_elf.c when there are siblings (not real CPUs) in the game. Or there is gcc-3.2.1 to blame.

Test script:
#!/bin/bash

#log=$(uname -r).txt
log=log.txt

exec > $log 2>&1

echo ===== uname -a
uname -a
echo
echo ===== uname -m
uname -m
echo
echo ===== ./ld.so
./ld.so
echo
echo ===== LD_LIBRARY_PATH="" LD_DEBUG=libs /bin/true rm -f /etc/ld.so.cache
LD_LIBRARY_PATH="" LD_DEBUG=libs /bin/true echo
ldconfig

ld.so is a modified one to print AT_PLATFORM, by Gwenole@mandrakesoft. The loader used for the /bin/true test is the standard one.

Results for 2.4.21-pre2 are attached. All are smp kernels, 'ht' means ht active, 'noht-bios' is ht diabled in the bios and 'noht-soft' is ht disabled with 'noht'.

Any ideas ?

Signature · 4 lines
J.A. Magallon <[email protected]>      \                 Software is like sex:
werewolf.able.es                         \           It's better when it's free
Mandrake Linux release 9.1 (Cooker) for i586
Linux 2.4.21-pre2-jam1 (gcc 3.2.1 (Mandrake Linux 9.1 3.2.1-2mdk))
#1 lore raw
Quoted 6 lines · On 2002.12.26 J.A. Magallón wrote:

Hi all...

Continuing with the glibc-2.3.1 saga, I have tested 2.4.21-pre2. It also fails. glibc can not get a correct AT_PLATFORM when the kernel is run on an hyperthreaded smp box.

[...]

Quoted 4 lines

ld.so is a modified one to print AT_PLATFORM, by Gwenole@mandrakesoft. The loader used for the /bin/true test is the standard one.

Sorry, forgot to say that you can get similar results with:

werewolf:~> LD_SHOW_AUXV=1 /bin/true

AT_HWCAP:    fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 mmx fxsr
AT_PAGESZ:      4096
AT_CLKTCK:      100
AT_PHDR:        0x8048034
AT_PHENT:       32
AT_PHNUM:       6
AT_BASE:        0x15556000
AT_FLAGS:       0x0
AT_ENTRY:       0x8048920
AT_UID:         3001
AT_EUID:        3001
AT_GID:         3000
AT_EGID:        3000
AT_PLATFORM:    i686
Signature · 4 lines
J.A. Magallon <[email protected]>      \                 Software is like sex:
werewolf.able.es                         \           It's better when it's free
Mandrake Linux release 9.1 (Cooker) for i586
Linux 2.4.21-pre2-jam1 (gcc 3.2.1 (Mandrake Linux 9.1 3.2.1-2mdk))