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

[nptl] Re: SuSe SLES 9 vs. test_schedRR



> ... Sorry, I am over-busy right now. So I have to restrict myselves 
> to the bare minimun... 

No prob'

[...]


> Yeah, people used to say "vanilla kernel" for a kernel free from any 
> patch to constrat to kernel found in distros that usually are (more 
> or less heavily) patched.

Ok, thanks for the information :)


> > Modified kernel + libc (more recent libc as well)
> > -> same behavior as with FC2 -- the error appears more frequently and
> > even when the test passes there is a short (but noticeable) delay. 
> 
> Wait, wait... 
> 
> The problem occurs more frequently with a vanilla kernel +  a glibc
> closer to RH's glibc (and different from the one shipped by default 
> with SuSE)?

The configuration here is the following:
-> Installed SLES 9
-> Added a vanilla kernel 2.6.8.1, booted this one.
-> Compiled & installed a fresh glibc (cvs checkout) in some directory,
e.g. /home/cvs/root

Then the testcase is linked to use this one library. This is achieved
with the -B and -L flags to gcc. The result is:
# ldd test_schedrr
        linux-gate.so.1 =>  (0xffffe000)
        libc.so.6 => /home/cvs/root/lib/libc.so.6 (0x4001a000)
        libpthread.so.0 => /home/cvs/root/lib/libpthread.so.0
(0x40131000)
        librt.so.1 => /home/cvs/root/lib/librt.so.1 (0x40143000)
        /home/cvs/root/lib/ld-linux.so.2 =>
/home/cvs/root/lib/ld-linux.so.2 (0x40000000)


# strace ./test_schedrr 1 1
execve("./test_schedrr", ["./test_schedrr", "1", "1"], [/* 46 vars */])
= 0
uname({sys="Linux", node="nptl.frec.bull.fr", ...}) = 0
brk(0)                                  = 0x804b000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or
directory)
open("/home/cvs/root/lib/tls/i686/sse2/libc.so.6", O_RDONLY) = -1 ENOENT
(No such file or directory)
stat64("/home/cvs/root/lib/tls/i686/sse2", 0xbfffd8c0) = -1 ENOENT (No
such file or directory)
open("/home/cvs/root/lib/tls/i686/libc.so.6", O_RDONLY) = -1 ENOENT (No
such file or directory)
stat64("/home/cvs/root/lib/tls/i686", 0xbfffd8c0) = -1 ENOENT (No such
file or directory)
open("/home/cvs/root/lib/tls/sse2/libc.so.6", O_RDONLY) = -1 ENOENT (No
such file or directory)
stat64("/home/cvs/root/lib/tls/sse2", 0xbfffd8c0) = -1 ENOENT (No such
file or directory)
open("/home/cvs/root/lib/tls/libc.so.6", O_RDONLY) = -1 ENOENT (No such
file or directory)
stat64("/home/cvs/root/lib/tls", 0xbfffd8c0) = -1 ENOENT (No such file
or directory)
open("/home/cvs/root/lib/i686/sse2/libc.so.6", O_RDONLY) = -1 ENOENT (No
such file or directory)
stat64("/home/cvs/root/lib/i686/sse2", 0xbfffd8c0) = -1 ENOENT (No such
file or directory)
open("/home/cvs/root/lib/i686/libc.so.6", O_RDONLY) = -1 ENOENT (No such
file or directory)
stat64("/home/cvs/root/lib/i686", 0xbfffd8c0) = -1 ENOENT (No such file
or directory)
open("/home/cvs/root/lib/sse2/libc.so.6", O_RDONLY) = -1 ENOENT (No such
file or directory)
stat64("/home/cvs/root/lib/sse2", 0xbfffd8c0) = -1 ENOENT (No such file
or directory)
open("/home/cvs/root/lib/libc.so.6", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\240K\1"...,
512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=5328456, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0x40019000
mmap2(NULL, 1141804, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3,
0) = 0x4001a000
mmap2(0x4012b000, 16384, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x110) = 0x4012b000
mmap2(0x4012f000, 7212, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4012f000
close(3)                                = 0
open("/home/cvs/root/lib/libpthread.so.0", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\260G\0"...,
512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=503544, ...}) = 0
mmap2(NULL, 70124, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0)
= 0x40131000
mmap2(0x4013f000, 8192, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xd) = 0x4013f000
mmap2(0x40141000, 4588, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40141000
close(3)                                = 0
open("/home/cvs/root/lib/librt.so.1", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0000\36\0"...,
512) = 512fstat64(3, {st_mode=S_IFREG|0755, st_size=140411, ...}) = 0
mmap2(NULL, 33384, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0)
= 0x40143000
mmap2(0x4014a000, 8192, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6) = 0x4014a000
close(3)                                = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0x4014c000
mprotect(0x4014a000, 4096, PROT_READ)   = 0
mprotect(0x4013f000, 4096, PROT_READ)   = 0
mprotect(0x4012b000, 8192, PROT_READ)   = 0
mprotect(0x40017000, 4096, PROT_READ)   = 0
etc...


As this libc is used far less frequently as the standard libc
(/lib/tls/libc.so.6), I thought it is normal that the loading of the
test is slower than with the standard glibc.


> > I think the delay and change in bug frequency could be related to a
> > different behavior of the loader ld-linux. 
> 
> I do not see why ld would play a role here ? 

It can induce a delay in the test startup. Anyway, you're right it
should not have any influence on the bug occurence frequency...


> > Actually, to "change" the libc, the test sample is linked against an
> > alternative libc which does not stand in a standard directory (/lib,
> > ...). This might explain this behavior difference.
> 
> I don't get it :-\ 

Hope I made this clearer... 

Cheers,
Seb.
-------------------------------
Sebastien DECUGIS
NPTL Test & Trace Project
http://nptl.bullopensource.org/

"You may fail if you try.
You -will- fail if you don't."


Liste de diffusion nptl
Pour se désinscrire : mailto:nptl_request@bullopensource.org?subject=unsubscribe