> On Nov 9, 2016, at 1:56 PM, Yury Norov <[email protected]> wrote:
> 
> On Mon, Nov 07, 2016 at 01:53:59PM +0530, Yury Norov wrote:
>> Hi all,
>> 
>> [add libc-alpha mail list]
>> 
>> For libc-alpha: this is the part of LKML submission with latest
>> patches for aarch64/ilp32.
>> https://www.spinics.net/lists/arm-kernel/msg537846.html
>> 
>> Glibc that I use has also included consolidation patches from Adhemerval
>> Zanella and me that are still not in the glibc master. The full series is:
>> https://github.com/norov/glibc/tree/ilp32-2.24-dev2
>> 
>> Below is the results of glibc testsuite run for aarch64/lp64
>> in different configurations. Column names meaning:
>> kvgv: kernel is vanilla, glibc is vanilla;
>> kdgv: kernel has ilp32 patches applied, but ilp32 is disabled in config; 
>>      glibc is vanilla;
>> kegv: kernel has ilp32 patches applied and ilp32 is enabled, glibc is 
>> vanilla;
>> kege: kernel patches are applied and enabled, glibc patches are applied.
>> 
>> Only different lines are shown. Full results are in attached archive. 

Hi Yury,

The general requirement merging ILP32 glibc patches is that LP64 does not 
regress in any reasonable configuration.  This means that there should be 0 
regressions between kvgv and kvge -- i.e., glibc in LP64 mode with and without 
ILP32 patches does not regress on the vanilla kernel.  The kvge configuration 
is not in your testing matrix, and I suggest you make sure it has no 
regressions before fixing the more "advanced" configuration of kege.

Ideally, there should be no regressions between kvgv and kege configurations, 
but I don't consider this to a requirement for glibc acceptance of ILP32 
patches, since any regressions between kvge and kege configurations are likely 
to be on the kernel side.

Speculating on the kernel requirements for ILP32 kernel patchset, I think there 
should be 0 regressions between kvgv and kdgv configurations, where you have 
only 3 tests to investigate and fix.

[I do appreciate that there are progressions in your results as well, but the 
glibc policy is that they do not offset regressions.]

The above only concerns LP64 support in kernel and glibc.

Regarding ILP32 runtime, my opinion is that it is acceptable for ILP32 to have 
extra failures compared to LP64, since these are not regressions, but, rather, 
failures of a new configuration.  From a superficial glance is seems that ILP32 
linknamespace support requires attention, as well as stack unwinding (judging 
from NPTL failures).


--
Maxim Kuvyrkov
www.linaro.org



> 
> The same, plus ILP32 regressions:
> 
> Test                                  kvgv    kdgv    kegv    kege    ilp32
> conform/ISO/stdio.h/linknamespace     PASS    PASS    PASS    FAIL    FAIL
> conform/ISO11/stdio.h/linknamespace   PASS    PASS    PASS    FAIL    FAIL
> conform/ISO99/stdio.h/linknamespace   PASS    PASS    PASS    FAIL    FAIL
> conform/POSIX/stdio.h/linknamespace   PASS    PASS    PASS    FAIL    FAIL
> conform/POSIX/sys/stat.h/linknamespace        PASS    PASS    PASS    FAIL    
> FAIL
> conform/UNIX98/stdio.h/linknamespace  PASS    PASS    PASS    FAIL    FAIL
> conform/XOPEN2K/stdio.h/linknamespace PASS    PASS    PASS    FAIL    FAIL
> conform/XPG3/stdio.h/linknamespace    PASS    PASS    PASS    FAIL    FAIL
> conform/XPG4/stdio.h/linknamespace    PASS    PASS    PASS    FAIL    FAIL
> csu/tst-atomic                                PASS    PASS    PASS    FAIL    
> PASS
> elf/check-localplt                    PASS    PASS    PASS    FAIL    FAIL
> iconvdata/mtrace-tst-loading          PASS    FAIL    PASS    PASS    FAIL
> iconvdata/tst-loading                 PASS    FAIL    PASS    PASS    PASS
> io/check-installed-headers-c          PASS    PASS    PASS    FAIL    FAIL
> io/check-installed-headers-cxx                PASS    PASS    PASS    FAIL    
> FAIL
> malloc/tst-malloc-backtrace           FAIL    PASS    PASS    PASS    PASS
> malloc/tst-malloc-thread-exit         FAIL    PASS    PASS    PASS    PASS
> malloc/tst-malloc-usable              FAIL    PASS    PASS    PASS    PASS
> malloc/tst-mallocfork                 FAIL    PASS    PASS    PASS    PASS
> malloc/tst-mallocstate                        FAIL    PASS    PASS    PASS    
> PASS
> malloc/tst-mallopt                    FAIL    PASS    PASS    PASS    PASS
> malloc/tst-mcheck                     FAIL    PASS    PASS    PASS    PASS
> malloc/tst-memalign                   FAIL    PASS    PASS    PASS    PASS
> malloc/tst-obstack                    FAIL    PASS    PASS    PASS    PASS
> malloc/tst-posix_memalign             FAIL    PASS    PASS    PASS    PASS
> malloc/tst-pvalloc                    FAIL    PASS    PASS    PASS    PASS
> malloc/tst-realloc                    FAIL    PASS    PASS    PASS    PASS
> malloc/tst-scratch_buffer             FAIL    PASS    PASS    PASS    PASS
> malloc/tst-trim1                      FAIL    PASS    PASS    PASS    PASS
> nptl/tst-eintr4                               PASS    PASS    PASS    NA      
> NA
> posix/tst-regex2                      PASS    FAIL    FAIL    FAIL    FAIL
> posix/tst-getaddrinfo4                        PASS    PASS    FAIL    FAIL    
> PASS
> posix/tst-getaddrinfo5                        PASS    PASS    FAIL    FAIL    
> PASS
> sysvipc/test-sysvmsg                  NA      NA      NA      FAIL    PASS
> sysvipc/test-sysvsem                  NA      NA      NA      FAIL    PASS
> sysvipc/test-sysvshm                  NA      NA      NA      FAIL    PASS
> 
> c++-types-check                               PASS    PASS    PASS    PASS    
> FAIL
> debug/tst-backtrace4                  PASS    PASS    PASS    PASS    FAIL
> elf/check-abi-libc                    PASS    PASS    PASS    PASS    FAIL
> elf/tst-tls1                          PASS    PASS    PASS    PASS    FAIL
> elf/tst-tls1-static                   PASS    PASS    PASS    PASS    FAIL
> elf/tst-tls2                          PASS    PASS    PASS    PASS    FAIL
> elf/tst-tls2-static                   PASS    PASS    PASS    PASS    FAIL
> elf/tst-tls3                          PASS    PASS    PASS    PASS    FAIL
> math/check-abi-libm                   PASS    PASS    PASS    PASS    FAIL
> misc/tst-writev                               PASS    PASS    PASS    PASS    
> NA  
> nptl/tst-cancel-self-canceltype               PASS    PASS    PASS    PASS    
> FAIL
> nptl/tst-cancel1                      PASS    PASS    PASS    PASS    FAIL
> nptl/tst-cancel10                     PASS    PASS    PASS    PASS    FAIL
> nptl/tst-cancel11                     PASS    PASS    PASS    PASS    FAIL
> nptl/tst-cancel13                     PASS    PASS    PASS    PASS    FAIL
> nptl/tst-cancel15                     PASS    PASS    PASS    PASS    FAIL
> nptl/tst-cancel16                     PASS    PASS    PASS    PASS    FAIL
> nptl/tst-cancel17                     PASS    PASS    PASS    PASS    FAIL
> nptl/tst-cancel18                     PASS    PASS    PASS    PASS    FAIL
> nptl/tst-cancel2                      PASS    PASS    PASS    PASS    FAIL
> nptl/tst-cancel20                     PASS    PASS    PASS    PASS    FAIL
> nptl/tst-cancel21                     PASS    PASS    PASS    PASS    FAIL
> nptl/tst-cancel24                     PASS    PASS    PASS    PASS    FAIL
> nptl/tst-cancel25                     PASS    PASS    PASS    PASS    FAIL
> nptl/tst-cancel26                     PASS    PASS    PASS    PASS    FAIL
> nptl/tst-cancel27                     PASS    PASS    PASS    PASS    FAIL
> nptl/tst-cancel3                      PASS    PASS    PASS    PASS    FAIL
> nptl/tst-cancel4                      PASS    PASS    PASS    PASS    FAIL
> nptl/tst-cancel5                      PASS    PASS    PASS    PASS    FAIL
> nptl/tst-cancel6                      PASS    PASS    PASS    PASS    FAIL
> nptl/tst-cancel7                      PASS    PASS    PASS    PASS    FAIL
> nptl/tst-cancelx10                    PASS    PASS    PASS    PASS    FAIL
> nptl/tst-cancelx11                    PASS    PASS    PASS    PASS    FAIL
> nptl/tst-cancelx13                    PASS    PASS    PASS    PASS    FAIL
> nptl/tst-cancelx15                    PASS    PASS    PASS    PASS    FAIL
> nptl/tst-cancelx16                    PASS    PASS    PASS    PASS    FAIL
> nptl/tst-cancelx17                    PASS    PASS    PASS    PASS    FAIL
> nptl/tst-cancelx18                    PASS    PASS    PASS    PASS    FAIL
> nptl/tst-cancelx2                     PASS    PASS    PASS    PASS    FAIL
> nptl/tst-cancelx20                    PASS    PASS    PASS    PASS    FAIL
> nptl/tst-cancelx21                    PASS    PASS    PASS    PASS    FAIL
> nptl/tst-cancelx3                     PASS    PASS    PASS    PASS    FAIL
> nptl/tst-cancelx4                     PASS    PASS    PASS    PASS    FAIL
> nptl/tst-cancelx5                     PASS    PASS    PASS    PASS    FAIL
> nptl/tst-cancelx6                     PASS    PASS    PASS    PASS    FAIL
> nptl/tst-cancelx7                     PASS    PASS    PASS    PASS    FAIL
> nptl/tst-cleanup4                     PASS    PASS    PASS    PASS    FAIL
> nptl/tst-cleanupx4                    PASS    PASS    PASS    PASS    FAIL
> nptl/tst-cond-except                  PASS    PASS    PASS    PASS    FAIL
> nptl/tst-cond7                                PASS    PASS    PASS    PASS    
> FAIL
> nptl/tst-cond8                                PASS    PASS    PASS    PASS    
> FAIL
> nptl/tst-fini1                                PASS    PASS    PASS    PASS    
> FAIL
> nptl/tst-initializers1                        PASS    PASS    PASS    PASS    
> FAIL
> nptl/tst-initializers1-c11            PASS    PASS    PASS    PASS    FAIL
> nptl/tst-initializers1-c89            PASS    PASS    PASS    PASS    FAIL
> nptl/tst-initializers1-c99            PASS    PASS    PASS    PASS    FAIL
> nptl/tst-initializers1-gnu11          PASS    PASS    PASS    PASS    FAIL
> nptl/tst-initializers1-gnu89          PASS    PASS    PASS    PASS    FAIL
> nptl/tst-initializers1-gnu99          PASS    PASS    PASS    PASS    FAIL
> nptl/tst-join5                                PASS    PASS    PASS    PASS    
> FAIL
> nptl/tst-key3                         PASS    PASS    PASS    PASS    FAIL
> nptl/tst-mutex8                               PASS    PASS    PASS    PASS    
> FAIL
> nptl/tst-mutexpi8                     PASS    PASS    PASS    PASS    FAIL
> nptl/tst-once3                                PASS    PASS    PASS    PASS    
> FAIL
> nptl/tst-once4                                PASS    PASS    PASS    PASS    
> FAIL
> nptl/tst-oncex3                               PASS    PASS    PASS    PASS    
> FAIL
> nptl/tst-oncex4                               PASS    PASS    PASS    PASS    
> FAIL
> nptl/tst-rwlock15                     PASS    PASS    PASS    PASS    FAIL
> nptl/tst-rwlock8                      PASS    PASS    PASS    PASS    FAIL
> nptl/tst-rwlock9                      PASS    PASS    PASS    PASS    FAIL
> nptl/tst-sem11                                PASS    PASS    PASS    PASS    
> FAIL
> nptl/tst-sem12                                PASS    PASS    PASS    PASS    
> FAIL
> posix/bug-regex24                     PASS    PASS    PASS    PASS    FAIL
> rt/tst-mqueue1                                PASS    PASS    PASS    PASS    
> FAIL
> rt/tst-mqueue2                                PASS    PASS    PASS    PASS    
> FAIL
> rt/tst-mqueue4                                PASS    PASS    PASS    PASS    
> FAIL
> rt/tst-mqueue7                                PASS    PASS    PASS    PASS    
> FAIL
> rt/tst-mqueue8                                PASS    PASS    PASS    PASS    
> FAIL
> rt/tst-mqueue8x                               PASS    PASS    PASS    PASS    
> FAIL
> stdlib/tst-makecontext3                       PASS    PASS    PASS    PASS    
> FAIL




Reply via email to