2002-12-26 23:23:51

by J.A. Magallon

[permalink] [raw]
Subject: 2.4.21-pre on SMP-HT exports bad AT_PLATFORM

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 ?

--
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))


Attachments:
(No filename) (1.45 kB)
2.4.21-pre2-ht.txt.bz2 (1.05 kB)
2.4.21-pre2-noht-bios.txt.bz2 (1.08 kB)
2.4.21-pre2-noht-soft.txt.bz2 (1.08 kB)
Download all attachments

2002-12-27 00:11:36

by J.A. Magallon

[permalink] [raw]
Subject: Re: 2.4.21-pre on SMP-HT exports bad AT_PLATFORM


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.
>
[...]
>
> 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

--
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))