public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
* Re: ILP32 for ARM64: testing with glibc testsuite
       [not found] <1477081997-4770-1-git-send-email-ynorov@caviumnetworks.com>
@ 2016-11-07  8:24 ` Yury Norov
  2016-11-09  9:57   ` Yury Norov
       [not found] ` <20161028124659.GA24131@yury-N73SV>
  1 sibling, 1 reply; 18+ messages in thread
From: Yury Norov @ 2016-11-07  8:24 UTC (permalink / raw)
  To: arnd, catalin.marinas, linux-arm-kernel, linux-kernel, linux-doc,
	linux-arch, GNU C Library
  Cc: schwidefsky, heiko.carstens, pinskia, broonie, joseph,
	christoph.muellner, bamvor.zhangjian, szabolcs.nagy,
	klimov.linux, Nathan_Lynch, agraf, Prasun.Kapoor, kilobyte,
	geert, philipp.tomsich, manuel.montezelo, linyongting,
	maxim.kuvyrkov, davem, zhouchengming1, cmetcalf,
	Adhemerval Zanella, Steve Ellcey

[-- Attachment #1: Type: text/plain, Size: 2684 bytes --]

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. 

I didn't analyze regressions deep yet, so any ideas/suggestions are appreciated.

Yury.

Test					kvgv	kdgv	kegv	kege
conform/ISO/stdio.h/linknamespace	PASS 	PASS 	PASS	FAIL
conform/ISO11/stdio.h/linknamespace	PASS 	PASS 	PASS	FAIL
conform/ISO99/stdio.h/linknamespace	PASS 	PASS 	PASS	FAIL
conform/POSIX/stdio.h/linknamespace	PASS 	PASS 	PASS	FAIL
conform/POSIX/sys/stat.h/linknamespace	PASS 	PASS 	PASS	FAIL
conform/UNIX98/stdio.h/linknamespace	PASS 	PASS 	PASS	FAIL
conform/XOPEN2K/stdio.h/linknamespace	PASS 	PASS 	PASS	FAIL
conform/XPG3/stdio.h/linknamespace	PASS 	PASS 	PASS	FAIL
conform/XPG4/stdio.h/linknamespace	PASS 	PASS 	PASS	FAIL
csu/tst-atomic				PASS 	PASS 	PASS	FAIL
elf/check-localplt			PASS 	PASS 	PASS	FAIL
iconvdata/mtrace-tst-loading		PASS	FAIL	PASS 	PASS
iconvdata/tst-loading			PASS	FAIL	PASS 	PASS
io/check-installed-headers-c		PASS 	PASS 	PASS	FAIL
io/check-installed-headers-cxx		PASS 	PASS 	PASS	FAIL
malloc/tst-malloc-backtrace		FAIL	PASS	PASS	PASS
malloc/tst-malloc-thread-exit		FAIL	PASS	PASS	PASS
malloc/tst-malloc-usable		FAIL	PASS	PASS	PASS
malloc/tst-mallocfork			FAIL	PASS	PASS	PASS
malloc/tst-mallocstate			FAIL	PASS	PASS	PASS
malloc/tst-mallopt			FAIL	PASS	PASS	PASS
malloc/tst-mcheck			FAIL	PASS	PASS	PASS
malloc/tst-memalign			FAIL	PASS	PASS	PASS
malloc/tst-obstack			FAIL	PASS	PASS	PASS
malloc/tst-posix_memalign		FAIL	PASS	PASS	PASS
malloc/tst-pvalloc			FAIL	PASS	PASS	PASS
malloc/tst-realloc			FAIL	PASS	PASS	PASS
malloc/tst-scratch_buffer		FAIL	PASS	PASS	PASS
malloc/tst-trim1			FAIL	PASS	PASS	PASS
nptl/tst-eintr4				PASS 	PASS 	PASS	NA
posix/tst-regex2			PASS	FAIL	FAIL	FAIL
posix/tst-getaddrinfo4			PASS	PASS	FAIL	FAIL
posix/tst-getaddrinfo5			PASS	PASS	FAIL	FAIL
sysvipc/test-sysvmsg			NA	NA	NA	FAIL
sysvipc/test-sysvsem			NA	NA	NA	FAIL
sysvipc/test-sysvshm			NA	NA	NA	FAIL

[-- Attachment #2: lp64.sum.tar.gz --]
[-- Type: application/gzip, Size: 37007 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: ILP32 for ARM64: testing with glibc testsuite
  2016-11-07  8:24 ` ILP32 for ARM64: testing with glibc testsuite Yury Norov
@ 2016-11-09  9:57   ` Yury Norov
  2016-11-16 11:26     ` Maxim Kuvyrkov
       [not found]     ` <CC4F99A7-1FD2-486A-BD66-ED06F1B8BF50@linaro.org>
  0 siblings, 2 replies; 18+ messages in thread
From: Yury Norov @ 2016-11-09  9:57 UTC (permalink / raw)
  To: arnd, catalin.marinas, linux-arm-kernel, linux-kernel, linux-doc,
	linux-arch, GNU C Library
  Cc: schwidefsky, heiko.carstens, pinskia, broonie, joseph,
	christoph.muellner, bamvor.zhangjian, szabolcs.nagy,
	klimov.linux, Nathan_Lynch, agraf, Prasun.Kapoor, kilobyte,
	geert, philipp.tomsich, manuel.montezelo, linyongting,
	maxim.kuvyrkov, davem, zhouchengming1, cmetcalf,
	Adhemerval Zanella, Steve Ellcey

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

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: ILP32 for ARM64: testing with glibc testsuite
  2016-11-09  9:57   ` Yury Norov
@ 2016-11-16 11:26     ` Maxim Kuvyrkov
  2016-11-16 13:08       ` Yury Norov
  2016-11-24  5:16       ` Yury Norov
       [not found]     ` <CC4F99A7-1FD2-486A-BD66-ED06F1B8BF50@linaro.org>
  1 sibling, 2 replies; 18+ messages in thread
From: Maxim Kuvyrkov @ 2016-11-16 11:26 UTC (permalink / raw)
  To: Yury Norov; +Cc: GNU C Library

[Resending with trimmed CC: to avoid libc-alpha's spam filter]

> On Nov 9, 2016, at 1:56 PM, Yury Norov <ynorov@caviumnetworks.com> 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

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: ILP32 for ARM64: testing with glibc testsuite
  2016-11-16 11:26     ` Maxim Kuvyrkov
@ 2016-11-16 13:08       ` Yury Norov
  2016-11-24  5:16       ` Yury Norov
  1 sibling, 0 replies; 18+ messages in thread
From: Yury Norov @ 2016-11-16 13:08 UTC (permalink / raw)
  To: Maxim Kuvyrkov; +Cc: GNU C Library

On Wed, Nov 16, 2016 at 03:25:40PM +0400, Maxim Kuvyrkov wrote:
> [Resending with trimmed CC: to avoid libc-alpha's spam filter]
> 
> > On Nov 9, 2016, at 1:56 PM, Yury Norov <ynorov@caviumnetworks.com> 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,

Hi Maxim, thank you for response.

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

Yes, I missed kvge as it's not so interesting from kernel point of
view. But it's needed for glibc. I'll run that test and report soon.

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

Thanks again, it's clear, and I agree with your approach. Since
there's less than 6 weeks till freeze, we'll focus on lp64
regressions, and after that on ilp32-specific ones.

Yury.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: ILP32 for ARM64: testing with glibc testsuite
  2016-11-16 11:26     ` Maxim Kuvyrkov
  2016-11-16 13:08       ` Yury Norov
@ 2016-11-24  5:16       ` Yury Norov
  2016-11-24  7:36         ` Florian Weimer
  2016-11-25 14:26         ` Ramana Radhakrishnan
  1 sibling, 2 replies; 18+ messages in thread
From: Yury Norov @ 2016-11-24  5:16 UTC (permalink / raw)
  To: Maxim Kuvyrkov; +Cc: GNU C Library

On Wed, Nov 16, 2016 at 03:25:40PM +0400, Maxim Kuvyrkov wrote:
> [Resending with trimmed CC: to avoid libc-alpha's spam filter]
> 
> > On Nov 9, 2016, at 1:56 PM, Yury Norov <ynorov@caviumnetworks.com> 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

Hi Maxim, others,

From last email we have fixed major part of fails, and also tested 
vanilla kernel with ilp32-enabled glibc, as Maxim asked (kvge column).

Source trees:
https://github.com/norov/glibc/tree/ilp32-2.24-dev5
https://github.com/norov/linux/tree/ilp32-4.9-rc4

Some fails analysis is below.
                                        ILP32   LP64    kvge    Vanilla
c++-types-check				FAIL	PASS	PASS	PASS
conform/ISO/stdio.h/linknamespace	FAIL	FAIL    FAIL    PASS
conform/ISO11/stdio.h/linknamespace	FAIL	FAIL    FAIL    PASS
conform/ISO99/stdio.h/linknamespace	FAIL	FAIL    FAIL    PASS
conform/POSIX/stdio.h/linknamespace	FAIL	FAIL    FAIL    PASS
conform/POSIX/sys/stat.h/linknamespace  FAIL	FAIL    FAIL    PASS
conform/UNIX98/stdio.h/linknamespace	FAIL	FAIL    FAIL    PASS
conform/XOPEN2K/stdio.h/linknamespace	FAIL	FAIL    FAIL    PASS
conform/XPG3/stdio.h/linknamespace	FAIL	FAIL    FAIL    PASS
conform/XPG4/stdio.h/linknamespace	FAIL	FAIL    FAIL    PASS
elf/check-localplt			FAIL	FAIL    FAIL    PASS
elf/tst-tls1				FAIL	PASS	PASS	PASS
elf/tst-tls1-static			FAIL	PASS	PASS	PASS
elf/tst-tls2				FAIL	PASS	PASS	PASS
elf/tst-tls2-static			FAIL	PASS	PASS	PASS
elf/tst-tls3				FAIL	PASS	PASS	PASS
iconvdata/mtrace-tst-loading		FAIL	FAIL	FAIL    PASS
iconvdata/tst-loading			FAIL	FAIL	FAIL    PASS
io/check-installed-headers-c		FAIL	FAIL	FAIL    PASS
io/check-installed-headers-cxx	        FAIL	FAIL	FAIL    PASS
localedata/mtrace-tst-leaks		PASS	FAIL	FAIL    PASS
localedata/tst-leaks			PASS	FAIL	FAIL    PASS
malloc/tst-malloc-backtrace		PASS	PASS	PASS    FAIL
malloc/tst-malloc-thread-exit		PASS	PASS	PASS    FAIL
malloc/tst-malloc-usable		PASS	PASS	PASS    FAIL
malloc/tst-mallocfork			PASS	PASS	PASS    FAIL
malloc/tst-mallocstate		        PASS	PASS	PASS    FAIL
malloc/tst-mallopt			PASS	PASS	PASS    FAIL
malloc/tst-mcheck			PASS	PASS	PASS    FAIL
malloc/tst-memalign			PASS	PASS	PASS    FAIL
malloc/tst-obstack			PASS	PASS	PASS    FAIL
malloc/tst-posix_memalign		PASS	PASS	PASS    FAIL
malloc/tst-pvalloc			PASS	PASS	PASS    FAIL
malloc/tst-realloc			PASS	PASS	PASS    FAIL
malloc/tst-scratch_buffer		PASS	PASS	PASS    FAIL
malloc/tst-trim1			PASS	PASS	PASS    FAIL
math/test-double			PASS	PASS	PASS    FAIL
math/test-double-finite		        PASS	PASS	PASS    FAIL
math/test-idouble			PASS	PASS	PASS    FAIL
misc/tst-writev				 NA	 NA 	 NA     PASS
posix/tst-getaddrinfo4			PASS	PASS    FAIL 	PASS
posix/tst-getaddrinfo5			PASS	PASS    FAIL	PASS
nptl/tst-cancel26                       FAIL    PASS    PASS    PASS        
nptl/tst-cancel27                       FAIL    PASS    PASS    PASS
posix/tst-regex2			FAIL	FAIL	FAIL	PASS
rt/tst-mqueue1				FAIL 	PASS    PASS    PASS
rt/tst-mqueue2				FAIL 	PASS    PASS    PASS
rt/tst-mqueue4				FAIL 	PASS    PASS    PASS
rt/tst-mqueue7				FAIL 	PASS    PASS    PASS
stdlib/tst-makecontext3			FAIL 	PASS    PASS    PASS
sunrpc/bug20790			        PASS	PASS	 NA 	 NA     
sysvipc/test-sysvmsg			PASS	PASS     NA      NA
sysvipc/test-sysvsem			PASS	PASS     NA      NA
sysvipc/test-sysvshm			PASS	PASS     NA      NA

Conform tests fail most probably because I have vanilla headers at 
standard paths (/usr/include). Modified headers are under different
testing location. Steve also tested it, and he has modified headers at
/usr/include, and he doesn't see failures of conform tests. I don't
think that kernel or wrong ABI caused this regression. Most probably
it's configuration issue. I also think that glibc should take headers
from testing directory, not from standard paths. For me it's dangerous
to replace standard headers with untested ones. Is there some option
in glibc testsuite configuration to provide path to headers explicitly?

elf/* tests fail only in ILP32 mode. We tracked it down to the linker
problem that replaces accesses to TLS with direct address calculation
if possible, and does it wrong for ilp32. This is definitely a linker
problem, and ABI and kernel are not involved here.

iconvdata/mtrace-tst-loading, iconvdata/tst-loading, io/check-installed-headers-c
and io/check-installed-headers-cxx are most probably failing due to installed
headers, like conform tests.

localedata/mtrace-tst-leaks and localedata/tst-leaks fail only for me.
Steve has it passed. I'm not sure but it also looks like
configuration issue, or similar.

posix/tst-getaddrinfo4 and posix/tst-getaddrinfo5 check broken URLs.
We should investigate it, but I don't think it's ABI issue. Also, if I
run them manually, they return 0, which means they are passed, I
suppose.

nptl/tst-cancel26, nptl/tst-cancel27, rt/tst-mqueue1,2,4,7 are also looking
like the TLS issue.

posix/tst-regex2 and stdlib/tst-makecontext3 fail only for me, so it's
probably my local problem.

So, with all regressions still been in the list, major part is
looking like my local configuration problems. Others fail due to
linker wrong behavior. I don't see any obvious failures caused
by kernel or ABI errors.

Yury.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: ILP32 for ARM64: testing with glibc testsuite
  2016-11-24  5:16       ` Yury Norov
@ 2016-11-24  7:36         ` Florian Weimer
  2016-11-24  9:00           ` Yury Norov
  2016-11-25 14:26         ` Ramana Radhakrishnan
  1 sibling, 1 reply; 18+ messages in thread
From: Florian Weimer @ 2016-11-24  7:36 UTC (permalink / raw)
  To: Yury Norov, Maxim Kuvyrkov; +Cc: GNU C Library

On 11/24/2016 06:15 AM, Yury Norov wrote:

> Conform tests fail most probably because I have vanilla headers at
> standard paths (/usr/include). Modified headers are under different
> testing location. Steve also tested it, and he has modified headers at
> /usr/include, and he doesn't see failures of conform tests. I don't
> think that kernel or wrong ABI caused this regression. Most probably
> it's configuration issue. I also think that glibc should take headers
> from testing directory, not from standard paths. For me it's dangerous
> to replace standard headers with untested ones. Is there some option
> in glibc testsuite configuration to provide path to headers explicitly?

There is something peculiar with your test setup, I think.  The conform 
tests do not do that for me.  How do you configure, build, and test glibc?

The instability in the malloc tests need investigation as well.  If you 
run this on a simulator, you need to increase the test timeout.

> elf/* tests fail only in ILP32 mode. We tracked it down to the linker
> problem that replaces accesses to TLS with direct address calculation
> if possible, and does it wrong for ilp32. This is definitely a linker
> problem, and ABI and kernel are not involved here.

The elf/check-localplt failure may have a different cause.  What does 
the test report in the .out file?

Thanks,
Florian

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: ILP32 for ARM64: testing with glibc testsuite
  2016-11-24  7:36         ` Florian Weimer
@ 2016-11-24  9:00           ` Yury Norov
  2016-11-24  9:06             ` Florian Weimer
  0 siblings, 1 reply; 18+ messages in thread
From: Yury Norov @ 2016-11-24  9:00 UTC (permalink / raw)
  To: Florian Weimer; +Cc: Maxim Kuvyrkov, GNU C Library

On Thu, Nov 24, 2016 at 08:36:16AM +0100, Florian Weimer wrote:
> On 11/24/2016 06:15 AM, Yury Norov wrote:
> 
> >Conform tests fail most probably because I have vanilla headers at
> >standard paths (/usr/include). Modified headers are under different
> >testing location. Steve also tested it, and he has modified headers at
> >/usr/include, and he doesn't see failures of conform tests. I don't
> >think that kernel or wrong ABI caused this regression. Most probably
> >it's configuration issue. I also think that glibc should take headers
> >from testing directory, not from standard paths. For me it's dangerous
> >to replace standard headers with untested ones. Is there some option
> >in glibc testsuite configuration to provide path to headers explicitly?
> 
> There is something peculiar with your test setup, I think.  The conform
> tests do not do that for me.  How do you configure, build, and test glibc?

This is my makefile to build it.
https://github.com/norov/build-glibc

If you have thoughts how to make it work right, I'll be really
appreciated.

> The instability in the malloc tests need investigation as well.  If you run
> this on a simulator, you need to increase the test timeout.

I run it on qemu. It doesn't look like instability. malloc tests
always fail on vanilla glibc, and always pass on patched one, for me.
Andrew has it passed for vanilla glibc as well.

> >elf/* tests fail only in ILP32 mode. We tracked it down to the linker
> >problem that replaces accesses to TLS with direct address calculation
> >if possible, and does it wrong for ilp32. This is definitely a linker
> >problem, and ABI and kernel are not involved here.
> 
> The elf/check-localplt failure may have a different cause.  What does the
> test report in the .out file?

yury@yury-N73SV:~/work/glibc-img/lp64.build$ cat ./elf/check-localplt.out
Extra PLT reference: libc.so: renameat

Seems yes, it doesn't look like a TLS problem. I'll check it.

Yury.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: ILP32 for ARM64: testing with glibc testsuite
  2016-11-24  9:00           ` Yury Norov
@ 2016-11-24  9:06             ` Florian Weimer
  2016-11-24  9:10               ` Andrew Pinski
  0 siblings, 1 reply; 18+ messages in thread
From: Florian Weimer @ 2016-11-24  9:06 UTC (permalink / raw)
  To: Yury Norov; +Cc: Maxim Kuvyrkov, GNU C Library

On 11/24/2016 09:59 AM, Yury Norov wrote:
> On Thu, Nov 24, 2016 at 08:36:16AM +0100, Florian Weimer wrote:
>> On 11/24/2016 06:15 AM, Yury Norov wrote:
>>
>>> Conform tests fail most probably because I have vanilla headers at
>>> standard paths (/usr/include). Modified headers are under different
>>> testing location. Steve also tested it, and he has modified headers at
>>> /usr/include, and he doesn't see failures of conform tests. I don't
>>> think that kernel or wrong ABI caused this regression. Most probably
>>> it's configuration issue. I also think that glibc should take headers
>> >from testing directory, not from standard paths. For me it's dangerous
>>> to replace standard headers with untested ones. Is there some option
>>> in glibc testsuite configuration to provide path to headers explicitly?
>>
>> There is something peculiar with your test setup, I think.  The conform
>> tests do not do that for me.  How do you configure, build, and test glibc?
>
> This is my makefile to build it.
> https://github.com/norov/build-glibc
>
> If you have thoughts how to make it work right, I'll be really
> appreciated.

Are you cross-compiling?  I did not expect that.  I thought native 
development was possible on aarch64 now.

>> The instability in the malloc tests need investigation as well.  If you run
>> this on a simulator, you need to increase the test timeout.
>
> I run it on qemu. It doesn't look like instability. malloc tests
> always fail on vanilla glibc, and always pass on patched one, for me.

Have you tried to increase test timeout?

> Andrew has it passed for vanilla glibc as well.

Does Andrew use QEMU as well?

>>> elf/* tests fail only in ILP32 mode. We tracked it down to the linker
>>> problem that replaces accesses to TLS with direct address calculation
>>> if possible, and does it wrong for ilp32. This is definitely a linker
>>> problem, and ABI and kernel are not involved here.
>>
>> The elf/check-localplt failure may have a different cause.  What does the
>> test report in the .out file?
>
> yury@yury-N73SV:~/work/glibc-img/lp64.build$ cat ./elf/check-localplt.out
> Extra PLT reference: libc.so: renameat
>
> Seems yes, it doesn't look like a TLS problem. I'll check it.

Thanks.

Florian

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: ILP32 for ARM64: testing with glibc testsuite
  2016-11-24  9:06             ` Florian Weimer
@ 2016-11-24  9:10               ` Andrew Pinski
  0 siblings, 0 replies; 18+ messages in thread
From: Andrew Pinski @ 2016-11-24  9:10 UTC (permalink / raw)
  To: Florian Weimer; +Cc: Yury Norov, Maxim Kuvyrkov, GNU C Library

On Thu, Nov 24, 2016 at 1:06 AM, Florian Weimer <fweimer@redhat.com> wrote:
> On 11/24/2016 09:59 AM, Yury Norov wrote:
>>
>> On Thu, Nov 24, 2016 at 08:36:16AM +0100, Florian Weimer wrote:
>>>
>>> On 11/24/2016 06:15 AM, Yury Norov wrote:
>>>
>>>> Conform tests fail most probably because I have vanilla headers at
>>>> standard paths (/usr/include). Modified headers are under different
>>>> testing location. Steve also tested it, and he has modified headers at
>>>> /usr/include, and he doesn't see failures of conform tests. I don't
>>>> think that kernel or wrong ABI caused this regression. Most probably
>>>> it's configuration issue. I also think that glibc should take headers
>>>
>>> >from testing directory, not from standard paths. For me it's dangerous
>>>>
>>>> to replace standard headers with untested ones. Is there some option
>>>> in glibc testsuite configuration to provide path to headers explicitly?
>>>
>>>
>>> There is something peculiar with your test setup, I think.  The conform
>>> tests do not do that for me.  How do you configure, build, and test
>>> glibc?
>>
>>
>> This is my makefile to build it.
>> https://github.com/norov/build-glibc
>>
>> If you have thoughts how to make it work right, I'll be really
>> appreciated.
>
>
> Are you cross-compiling?  I did not expect that.  I thought native
> development was possible on aarch64 now.
>
>>> The instability in the malloc tests need investigation as well.  If you
>>> run
>>> this on a simulator, you need to increase the test timeout.
>>
>>
>> I run it on qemu. It doesn't look like instability. malloc tests
>> always fail on vanilla glibc, and always pass on patched one, for me.
>
>
> Have you tried to increase test timeout?
>
>> Andrew has it passed for vanilla glibc as well.
>
>
> Does Andrew use QEMU as well?

Mine was native on a ThunderX T88 machine with a vanilla linux  4.8rc3.

Thanks,
Andrew

>
>>>> elf/* tests fail only in ILP32 mode. We tracked it down to the linker
>>>> problem that replaces accesses to TLS with direct address calculation
>>>> if possible, and does it wrong for ilp32. This is definitely a linker
>>>> problem, and ABI and kernel are not involved here.
>>>
>>>
>>> The elf/check-localplt failure may have a different cause.  What does the
>>> test report in the .out file?
>>
>>
>> yury@yury-N73SV:~/work/glibc-img/lp64.build$ cat ./elf/check-localplt.out
>> Extra PLT reference: libc.so: renameat
>>
>> Seems yes, it doesn't look like a TLS problem. I'll check it.
>
>
> Thanks.
>
> Florian
>

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: ILP32 for ARM64: testing with glibc testsuite
  2016-11-24  5:16       ` Yury Norov
  2016-11-24  7:36         ` Florian Weimer
@ 2016-11-25 14:26         ` Ramana Radhakrishnan
  2016-11-25 15:30           ` Yury Norov
  1 sibling, 1 reply; 18+ messages in thread
From: Ramana Radhakrishnan @ 2016-11-25 14:26 UTC (permalink / raw)
  To: Yury Norov; +Cc: Maxim Kuvyrkov, GNU C Library

Yury,

>
> elf/* tests fail only in ILP32 mode. We tracked it down to the linker
> problem that replaces accesses to TLS with direct address calculation
> if possible, and does it wrong for ilp32. This is definitely a linker
> problem, and ABI and kernel are not involved here.

That's entirely possible. Is there a bug report in binutils about this
? Are you (or anyone else you know) looking at fixing the linker ?

regards
Ramana

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: ILP32 for ARM64: testing with glibc testsuite
  2016-11-25 14:26         ` Ramana Radhakrishnan
@ 2016-11-25 15:30           ` Yury Norov
  0 siblings, 0 replies; 18+ messages in thread
From: Yury Norov @ 2016-11-25 15:30 UTC (permalink / raw)
  To: Ramana Radhakrishnan; +Cc: Maxim Kuvyrkov, GNU C Library

On Fri, Nov 25, 2016 at 02:25:47PM +0000, Ramana Radhakrishnan wrote:
> Yury,
> 
> >
> > elf/* tests fail only in ILP32 mode. We tracked it down to the linker
> > problem that replaces accesses to TLS with direct address calculation
> > if possible, and does it wrong for ilp32. This is definitely a linker
> > problem, and ABI and kernel are not involved here.
> 
> That's entirely possible. Is there a bug report in binutils about this
> ? Are you (or anyone else you know) looking at fixing the linker ?

This is detailed bug report in bugzilla:
https://sourceware.org/bugzilla/show_bug.cgi?id=20868

Yury

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: ILP32 for ARM64: testing with glibc testsuite
       [not found]       ` <1479419136.908.90.camel@caviumnetworks.com>
@ 2016-12-05 10:02         ` Zhangjian (Bamvor)
  2016-12-05 10:07           ` Andreas Schwab
  0 siblings, 1 reply; 18+ messages in thread
From: Zhangjian (Bamvor) @ 2016-12-05 10:02 UTC (permalink / raw)
  To: Steve Ellcey, Maxim Kuvyrkov, Yury Norov
  Cc: arnd, catalin.marinas, linux-arm-kernel, linux-kernel, linux-doc,
	linux-arch, GNU C Library, schwidefsky, heiko.carstens,
	Andrew Pinski, broonie, Joseph S. Myers, christoph.muellner,
	Szabolcs Nagy, klimov.linux, Nathan_Lynch, agraf, Prasun Kapoor,
	kilobyte, Geert Uytterhoeven, Dr. Philipp Tomsich,
	manuel.montezelo, linyongting, davem, zhouchengming1, cmetcalf,
	Adhemerval Zanella, Zhangjian (Bamvor),
	Ding Tianhong, Hanjun Guo, jijun (D),
	chenjianguo3, liupeifeng (A)

Hi, Steve

On 2016/11/18 5:45, Steve Ellcey wrote:
> On Wed, 2016-11-16 at 15:22 +0400, Maxim Kuvyrkov wrote:
>>>
>>> On Nov 9, 2016, at 1:56 PM, Yury Norov <ynorov@caviumnetworks.com>
>>> wrote:
>>>
>>>>
>>>> Below is the results of glibc testsuite run for aarch64/lp64
>
> I have been running the glibc testsuite as well.  I have only run it on
> an ILP32 enabled kernel.  Using that kernel, top-of-tree glibc, and the
> ILP32 glibc patches I have no LP64 regressions.  There are 5 failures
> in LP64 mode but I get them with vanilla top-of-tree glibc sources too.
> They are:
> 	nptl/eintr1 (I actually don't run this because it kills the 'make check')
> 	debug/tst-backtrace5
> 	debug/tst-backtrace6
> 	nptl/tst-stack4
> 	nptl/tst-thread_local1
>
> In ILP32 mode I get 33 failures, they include the above failures (minus
> nptl/tst-thread_local1) plus:
>
> 	c++-types-check
> 	conform/ISO11/inttypes.h/conform
> 	conform/ISO11/stdint.h/conform
> 	conform/ISO99/inttypes.h/conform
> 	conform/ISO99/stdint.h/conform
> 	conform/POSIX2008/inttypes.h/conform
> 	conform/POSIX2008/stdint.h/conform
> 	conform/XOPEN2K/inttypes.h/conform
> 	conform/XOPEN2K/stdint.h/conform
> 	conform/XOPEN2K8/inttypes.h/conform
> 	conform/XOPEN2K8/stdint.h/conform
> 	elf/tst-tls1
> 	elf/tst-tls1-static
> 	elf/tst-tls2
> 	elf/tst-tls2-static
> 	elf/tst-tls3
> 	math/check-abi-libm
> 	math/test-double
> 	math/test-double-finite
> 	math/test-float
> 	math/test-float-finite
> 	misc/tst-sync_file_range
> 	nptl/tst-cancel26
> 	nptl/tst-cancel27
> 	nptl/tst-sem3
> 	rt/tst-mqueue1
> 	rt/tst-mqueue2
> 	rt/tst-mqueue4
> 	rt/tst-mqueue7
> 	stdlib/tst-makecontext3
>
> I am currently looking at these ILP32 regressions (starting with the
> tls failures) to see if I can figure out what is happening with them.
Is there some progresses on it? We could collabrate to fix those issues.

Regards

Bamvor
>
> Steve Ellcey
> sellcey@caviumnetworks.com
>

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: ILP32 for ARM64: testing with glibc testsuite
  2016-12-05 10:02         ` Zhangjian (Bamvor)
@ 2016-12-05 10:07           ` Andreas Schwab
  2016-12-05 10:26             ` Zhangjian (Bamvor)
       [not found]             ` <1480966437.29811.23.camel@caviumnetworks.com>
  0 siblings, 2 replies; 18+ messages in thread
From: Andreas Schwab @ 2016-12-05 10:07 UTC (permalink / raw)
  To: Zhangjian (Bamvor)
  Cc: Steve Ellcey, Maxim Kuvyrkov, Yury Norov, arnd, catalin.marinas,
	linux-arm-kernel, linux-kernel, linux-doc, linux-arch,
	GNU C Library, schwidefsky, heiko.carstens, Andrew Pinski,
	broonie, Joseph S. Myers, christoph.muellner, Szabolcs Nagy,
	klimov.linux, Nathan_Lynch, agraf, Prasun Kapoor, kilobyte,
	Geert Uytterhoeven, Dr. Philipp Tomsich, manuel.montezelo,
	linyongting, davem, <zh

On Dez 05 2016, "Zhangjian (Bamvor)" <bamvor.zhangjian@huawei.com> wrote:

> Is there some progresses on it? We could collabrate to fix those issues.

All the elf/nptl/rt fails should be fixed by the recent binutils fixes.

Andreas.

-- 
Andreas Schwab, SUSE Labs, schwab@suse.de
GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE  1748 E4D4 88E3 0EEA B9D7
"And now for something completely different."

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: ILP32 for ARM64 - testing with lmbench
       [not found]       ` <120041af-f4e9-5b6f-36dc-7d3535a1f01c@huawei.com>
@ 2016-12-05 10:23         ` Zhangjian (Bamvor)
       [not found]           ` <20161205141312.GC14429@e104818-lin.cambridge.arm.com>
  0 siblings, 1 reply; 18+ messages in thread
From: Zhangjian (Bamvor) @ 2016-12-05 10:23 UTC (permalink / raw)
  To: Maxim Kuvyrkov
  Cc: Yury Norov, arnd, catalin.marinas, linux-arm-kernel,
	linux-kernel, linux-doc, linux-arch, schwidefsky, heiko.carstens,
	Andrew Pinski, broonie, Joseph S. Myers, christoph.muellner,
	Szabolcs Nagy, klimov.linux, Nathan_Lynch, agraf, Prasun Kapoor,
	kilobyte, Geert Uytterhoeven, Dr. Philipp Tomsich,
	manuel.montezelo, linyongting, David Miller, zhouchengming1,
	cmetcalf, sellcey, hanjun.guo, Ding Tianhong, Zhangjian (Bamvor),
	GNU C Library, matt.spencer

Hi, Catalin, Guys

Do you have suggestion of next move of upstreaming ILP32?
There are already the test results of lmbench and specint. Do you they are ok or need more data to prove no regression?
I have also noticed that there are ILP32 failures in glibc testsuite. Is it the only blocker for merge ILP32(in technology part)?

We appreciate any feedback/suggestion and hope could collaborate to improve the upstream progress.

(cc libc-alpha to get more input).

Thanks

Bamvor

On 2016/11/17 15:48, Zhangjian (Bamvor) wrote:
> Hi, Maxim
>
> On 2016/11/17 13:02, Maxim Kuvyrkov wrote:
>> Hi Bamvor,
>>
>> I'm surprised that you see this much difference from ILP32 patches on SPEC CPU2006int at all.  The SPEC CPU2006 benchmarks spend almost no time in the kernel syscalls.  I can imagine memory, TLB,
>> and cache handling in the kernel could affect CPU2006 benchmarks.  Do ILP32 patches touch code in those areas?
>>
>> Other than that, it would be interesting to check what the variance is between the 3 iterations of benchmark runs.  Could you check what relative standard deviation is between the 3 iterations --
>> (STDEV(RUN1, RUN2, RUN3) / RUNselected)?
>>
>> For reference, in my [non-ILP32] benchmarking I see 1.1% for 401.bzip2,  0.8% for 429.mcf, 0.2% for 456.hmmer, and 0.1% for 462.libquantum.
> Here is my result:
>                     ILP32_merged    ILP32_unmerged
>       401.bzip2            0.31%            0.26%
>       429.mcf              1.61%            1.36%
>       456.hmmer            1.37%            1.57%
>       462.libquantum       0.29%            0.28%
>
> Regards
>
> Bamvor
>
>>
>> --
>> Maxim Kuvyrkov
>> www.linaro.org
>>
>>
>>
>>> On Nov 17, 2016, at 7:28 AM, Zhangjian (Bamvor) <bamvor.zhangjian@huawei.com> wrote:
>>>
>>> Hi, all
>>>
>>> I test specint of aarch64 LP64 when aarch32 el0 disable/enabled respectively
>>> and compare with ILP32 unmerged kernel(4.8-rc6) in our arm64 board. I found
>>> that difference(ILP32 disabled/ILP32 unmerged) is bigger when aarch32 el0 is
>>> enabled, compare with aarch32 el0 disabled kernel. And bzip2, mcg, hmmer,
>>> libquantum are the top four differences[1]. Note that bigger is better in
>>> specint test.
>>>
>>> In order to make sure the above results, I retest these four testcases in
>>> reportable way(reference the command in the end). The result[2] show that
>>> libquantum decrease -2.09% after ILP32 enabled and aarch32 on. I think it is in
>>> significant.
>>>
>>> The result of lmbench is not stable in my board. I plan to dig it later.
>>>
>>> [1] The following test result is tested through --size=ref --iterations=3.
>>> 1.1 Test when aarch32_el0 is enabled.
>>>                        ILP32 disabled        base line
>>>      400.perlbench            100.00%             100%
>>>      401.bzip2                 99.35%             100%
>>>      403.gcc                  100.26%             100%
>>>      429.mcf                  102.75%             100%
>>>      445.gobmk                100.00%             100%
>>>      456.hmmer                 95.66%             100%
>>>      458.sjeng                100.00%             100%
>>>      462.libquantum           100.00%             100%
>>>      471.omnetpp              100.59%             100%
>>>      473.astar                 99.66%             100%
>>>      483.xalancbmk             99.10%             100%
>>>
>>> 1.2 Test when aarch32_el0 is disabled
>>>                        ILP32 disabled         base line
>>>      400.perlbench            100.22%              100%
>>>      401.bzip2                100.95%              100%
>>>      403.gcc                  100.20%              100%
>>>      429.mcf                  100.76%              100%
>>>      445.gobmk                100.36%              100%
>>>      456.hmmer                 97.94%              100%
>>>      458.sjeng                 99.73%              100%
>>>      462.libquantum            98.72%              100%
>>>      471.omnetpp              100.86%              100%
>>>      473.astar                 99.15%              100%
>>>      483.xalancbmk            100.08%              100%
>>>
>>> [2] The following test result is tested through: runspec --config=my.cfg --size=test,train,ref --noreportable --tune=base,peak --iterations=3 bzip2 mcf hmmer libquantum
>>> 2.1 Test when aarch32_el0 is enabled.
>>>                         ILP32_enabled         base line
>>>      401.bzip2                100.82%              100%
>>>      429.mcf                  100.18%              100%
>>>      456.hmmer                 99.64%              100%
>>>      462.libquantum            97.91%              100%
>>>
>>> Regards
>>>
>>> Bamvor
>>>
>>> On 2016/10/28 20:46, Yury Norov wrote:
>>>> [Add Steve Ellcey, thanks for testing on ThunderX]
>>>>
>>>> Lmbench-3.0-a9 testing is performed on ThunderX machine to check that
>>>> ILP32 series does not add performance regressions for LP64. Test
>>>> summary is in the table below. Our measurements doesn't show
>>>> significant performance regression of LP64 if ILP32 code is merged,
>>>> both enabled or disabled.
>>>>
>>>>               ILP32 enabled   ILP32  disabled   Standard Kernel
>>>> null syscall   0.1066          0.1121            0.1121
>>>>               95.09%          100.00%
>>>>
>>>> stat           1.3947          1.3814            1.3864
>>>>               100.60%         99.64%
>>>>
>>>> fstat          0.4459          0.4344            0.4524
>>>>               98.56%          96.02%
>>>>
>>>> open/close     4.0606          4.0411            4.0453
>>>>               100.38%         99.90%
>>>>
>>>> read           0.4819          0.5014            0.5014
>>>>               96.11%          100.00%
>>>>
>>>> Tested with linux 4.8 because 4.9-rc1 is not fixed yet for ThunderX.
>>>> Other system details below.
>>>>
>>>> Yury.
>>>>
>>>> ubuntu@crb6:~$ uname -a
>>>> Linux crb6 4.8.0+ #3 SMP Thu Oct 27 11:01:32 PDT 2016 aarch64 aarch64 aarch64 GNU/Linux
>>>>
>>>> ubuntu@crb6:~$ cat /proc/meminfo
>>>> MemTotal:       132011948 kB
>>>> MemFree:        131442672 kB
>>>> MemAvailable:   130695764 kB
>>>> Buffers:           15696 kB
>>>> Cached:            88088 kB
>>>> SwapCached:            0 kB
>>>> Active:            82760 kB
>>>> Inactive:          41336 kB
>>>> Active(anon):      20880 kB
>>>> Inactive(anon):     8576 kB
>>>> Active(file):      61880 kB
>>>> Inactive(file):    32760 kB
>>>> Unevictable:           0 kB
>>>> Mlocked:               0 kB
>>>> SwapTotal:      128920572 kB
>>>> SwapFree:       128920572 kB
>>>> Dirty:                 0 kB
>>>> Writeback:             0 kB
>>>> AnonPages:         20544 kB
>>>> Mapped:            19780 kB
>>>> Shmem:              9060 kB
>>>> Slab:              78804 kB
>>>> SReclaimable:      27372 kB
>>>> SUnreclaim:        51432 kB
>>>> KernelStack:        8336 kB
>>>> PageTables:          820 kB
>>>> NFS_Unstable:          0 kB
>>>> Bounce:                0 kB
>>>> WritebackTmp:          0 kB
>>>> CommitLimit:    194926544 kB
>>>> Committed_AS:     256324 kB
>>>> VmallocTotal:   135290290112 kB
>>>> VmallocUsed:           0 kB
>>>> VmallocChunk:          0 kB
>>>> AnonHugePages:         0 kB
>>>> ShmemHugePages:        0 kB
>>>> ShmemPmdMapped:        0 kB
>>>> CmaTotal:              0 kB
>>>> CmaFree:               0 kB
>>>> HugePages_Total:       0
>>>> HugePages_Free:        0
>>>> HugePages_Rsvd:        0
>>>> HugePages_Surp:        0
>>>> Hugepagesize:       2048 kB
>>>>
>>>> ubuntu@crb6:~$ cat /proc/cpuinfo
>>>> processor    : 0
>>>> BogoMIPS    : 200.00
>>>> Features    : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
>>>> CPU implementer    : 0x43
>>>> CPU architecture: 8
>>>> CPU variant    : 0x1
>>>> CPU part    : 0x0a1
>>>> CPU revision    : 0
>>>>
>>>> processor    : 1
>>>> BogoMIPS    : 200.00
>>>> Features    : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
>>>> CPU implementer    : 0x43
>>>> CPU architecture: 8
>>>> CPU variant    : 0x1
>>>> CPU part    : 0x0a1
>>>> CPU revision    : 0
>>>>
>>>> processor    : 2
>>>> BogoMIPS    : 200.00
>>>> Features    : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
>>>> CPU implementer    : 0x43
>>>> CPU architecture: 8
>>>> CPU variant    : 0x1
>>>> CPU part    : 0x0a1
>>>> CPU revision    : 0
>>>>
>>>> processor    : 3
>>>> BogoMIPS    : 200.00
>>>> Features    : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
>>>> CPU implementer    : 0x43
>>>> CPU architecture: 8
>>>> CPU variant    : 0x1
>>>> CPU part    : 0x0a1
>>>> CPU revision    : 0
>>>>
>>>> processor    : 4
>>>> BogoMIPS    : 200.00
>>>> Features    : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
>>>> CPU implementer    : 0x43
>>>> CPU architecture: 8
>>>> CPU variant    : 0x1
>>>> CPU part    : 0x0a1
>>>> CPU revision    : 0
>>>>
>>>> processor    : 5
>>>> BogoMIPS    : 200.00
>>>> Features    : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
>>>> CPU implementer    : 0x43
>>>> CPU architecture: 8
>>>> CPU variant    : 0x1
>>>> CPU part    : 0x0a1
>>>> CPU revision    : 0
>>>>
>>>> processor    : 6
>>>> BogoMIPS    : 200.00
>>>> Features    : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
>>>> CPU implementer    : 0x43
>>>> CPU architecture: 8
>>>> CPU variant    : 0x1
>>>> CPU part    : 0x0a1
>>>> CPU revision    : 0
>>>>
>>>> processor    : 7
>>>> BogoMIPS    : 200.00
>>>> Features    : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
>>>> CPU implementer    : 0x43
>>>> CPU architecture: 8
>>>> CPU variant    : 0x1
>>>> CPU part    : 0x0a1
>>>> CPU revision    : 0
>>>>
>>>> processor    : 8
>>>> BogoMIPS    : 200.00
>>>> Features    : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
>>>> CPU implementer    : 0x43
>>>> CPU architecture: 8
>>>> CPU variant    : 0x1
>>>> CPU part    : 0x0a1
>>>> CPU revision    : 0
>>>>
>>>> processor    : 9
>>>> BogoMIPS    : 200.00
>>>> Features    : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
>>>> CPU implementer    : 0x43
>>>> CPU architecture: 8
>>>> CPU variant    : 0x1
>>>> CPU part    : 0x0a1
>>>> CPU revision    : 0
>>>>
>>>> processor    : 10
>>>> BogoMIPS    : 200.00
>>>> Features    : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
>>>> CPU implementer    : 0x43
>>>> CPU architecture: 8
>>>> CPU variant    : 0x1
>>>> CPU part    : 0x0a1
>>>> CPU revision    : 0
>>>>
>>>> processor    : 11
>>>> BogoMIPS    : 200.00
>>>> Features    : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
>>>> CPU implementer    : 0x43
>>>> CPU architecture: 8
>>>> CPU variant    : 0x1
>>>> CPU part    : 0x0a1
>>>> CPU revision    : 0
>>>>
>>>> processor    : 12
>>>> BogoMIPS    : 200.00
>>>> Features    : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
>>>> CPU implementer    : 0x43
>>>> CPU architecture: 8
>>>> CPU variant    : 0x1
>>>> CPU part    : 0x0a1
>>>> CPU revision    : 0
>>>>
>>>> processor    : 13
>>>> BogoMIPS    : 200.00
>>>> Features    : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
>>>> CPU implementer    : 0x43
>>>> CPU architecture: 8
>>>> CPU variant    : 0x1
>>>> CPU part    : 0x0a1
>>>> CPU revision    : 0
>>>>
>>>> processor    : 14
>>>> BogoMIPS    : 200.00
>>>> Features    : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
>>>> CPU implementer    : 0x43
>>>> CPU architecture: 8
>>>> CPU variant    : 0x1
>>>> CPU part    : 0x0a1
>>>> CPU revision    : 0
>>>>
>>>> processor    : 15
>>>> BogoMIPS    : 200.00
>>>> Features    : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
>>>> CPU implementer    : 0x43
>>>> CPU architecture: 8
>>>> CPU variant    : 0x1
>>>> CPU part    : 0x0a1
>>>> CPU revision    : 0
>>>>
>>>> processor    : 16
>>>> BogoMIPS    : 200.00
>>>> Features    : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
>>>> CPU implementer    : 0x43
>>>> CPU architecture: 8
>>>> CPU variant    : 0x1
>>>> CPU part    : 0x0a1
>>>> CPU revision    : 0
>>>>
>>>> processor    : 17
>>>> BogoMIPS    : 200.00
>>>> Features    : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
>>>> CPU implementer    : 0x43
>>>> CPU architecture: 8
>>>> CPU variant    : 0x1
>>>> CPU part    : 0x0a1
>>>> CPU revision    : 0
>>>>
>>>> processor    : 18
>>>> BogoMIPS    : 200.00
>>>> Features    : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
>>>> CPU implementer    : 0x43
>>>> CPU architecture: 8
>>>> CPU variant    : 0x1
>>>> CPU part    : 0x0a1
>>>> CPU revision    : 0
>>>>
>>>> processor    : 19
>>>> BogoMIPS    : 200.00
>>>> Features    : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
>>>> CPU implementer    : 0x43
>>>> CPU architecture: 8
>>>> CPU variant    : 0x1
>>>> CPU part    : 0x0a1
>>>> CPU revision    : 0
>>>>
>>>> processor    : 20
>>>> BogoMIPS    : 200.00
>>>> Features    : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
>>>> CPU implementer    : 0x43
>>>> CPU architecture: 8
>>>> CPU variant    : 0x1
>>>> CPU part    : 0x0a1
>>>> CPU revision    : 0
>>>>
>>>> processor    : 21
>>>> BogoMIPS    : 200.00
>>>> Features    : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
>>>> CPU implementer    : 0x43
>>>> CPU architecture: 8
>>>> CPU variant    : 0x1
>>>> CPU part    : 0x0a1
>>>> CPU revision    : 0
>>>>
>>>> processor    : 22
>>>> BogoMIPS    : 200.00
>>>> Features    : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
>>>> CPU implementer    : 0x43
>>>> CPU architecture: 8
>>>> CPU variant    : 0x1
>>>> CPU part    : 0x0a1
>>>> CPU revision    : 0
>>>>
>>>> processor    : 23
>>>> BogoMIPS    : 200.00
>>>> Features    : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
>>>> CPU implementer    : 0x43
>>>> CPU architecture: 8
>>>> CPU variant    : 0x1
>>>> CPU part    : 0x0a1
>>>> CPU revision    : 0
>>>>
>>>> processor    : 24
>>>> BogoMIPS    : 200.00
>>>> Features    : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
>>>> CPU implementer    : 0x43
>>>> CPU architecture: 8
>>>> CPU variant    : 0x1
>>>> CPU part    : 0x0a1
>>>> CPU revision    : 0
>>>>
>>>> processor    : 25
>>>> BogoMIPS    : 200.00
>>>> Features    : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
>>>> CPU implementer    : 0x43
>>>> CPU architecture: 8
>>>> CPU variant    : 0x1
>>>> CPU part    : 0x0a1
>>>> CPU revision    : 0
>>>>
>>>> processor    : 26
>>>> BogoMIPS    : 200.00
>>>> Features    : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
>>>> CPU implementer    : 0x43
>>>> CPU architecture: 8
>>>> CPU variant    : 0x1
>>>> CPU part    : 0x0a1
>>>> CPU revision    : 0
>>>>
>>>> processor    : 27
>>>> BogoMIPS    : 200.00
>>>> Features    : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
>>>> CPU implementer    : 0x43
>>>> CPU architecture: 8
>>>> CPU variant    : 0x1
>>>> CPU part    : 0x0a1
>>>> CPU revision    : 0
>>>>
>>>> processor    : 28
>>>> BogoMIPS    : 200.00
>>>> Features    : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
>>>> CPU implementer    : 0x43
>>>> CPU architecture: 8
>>>> CPU variant    : 0x1
>>>> CPU part    : 0x0a1
>>>> CPU revision    : 0
>>>>
>>>> processor    : 29
>>>> BogoMIPS    : 200.00
>>>> Features    : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
>>>> CPU implementer    : 0x43
>>>> CPU architecture: 8
>>>> CPU variant    : 0x1
>>>> CPU part    : 0x0a1
>>>> CPU revision    : 0
>>>>
>>>> processor    : 30
>>>> BogoMIPS    : 200.00
>>>> Features    : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
>>>> CPU implementer    : 0x43
>>>> CPU architecture: 8
>>>> CPU variant    : 0x1
>>>> CPU part    : 0x0a1
>>>> CPU revision    : 0
>>>>
>>>> processor    : 31
>>>> BogoMIPS    : 200.00
>>>> Features    : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
>>>> CPU implementer    : 0x43
>>>> CPU architecture: 8
>>>> CPU variant    : 0x1
>>>> CPU part    : 0x0a1
>>>> CPU revision    : 0
>>>>
>>>> processor    : 32
>>>> BogoMIPS    : 200.00
>>>> Features    : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
>>>> CPU implementer    : 0x43
>>>> CPU architecture: 8
>>>> CPU variant    : 0x1
>>>> CPU part    : 0x0a1
>>>> CPU revision    : 0
>>>>
>>>> processor    : 33
>>>> BogoMIPS    : 200.00
>>>> Features    : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
>>>> CPU implementer    : 0x43
>>>> CPU architecture: 8
>>>> CPU variant    : 0x1
>>>> CPU part    : 0x0a1
>>>> CPU revision    : 0
>>>>
>>>> processor    : 34
>>>> BogoMIPS    : 200.00
>>>> Features    : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
>>>> CPU implementer    : 0x43
>>>> CPU architecture: 8
>>>> CPU variant    : 0x1
>>>> CPU part    : 0x0a1
>>>> CPU revision    : 0
>>>>
>>>> processor    : 35
>>>> BogoMIPS    : 200.00
>>>> Features    : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
>>>> CPU implementer    : 0x43
>>>> CPU architecture: 8
>>>> CPU variant    : 0x1
>>>> CPU part    : 0x0a1
>>>> CPU revision    : 0
>>>>
>>>> processor    : 36
>>>> BogoMIPS    : 200.00
>>>> Features    : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
>>>> CPU implementer    : 0x43
>>>> CPU architecture: 8
>>>> CPU variant    : 0x1
>>>> CPU part    : 0x0a1
>>>> CPU revision    : 0
>>>>
>>>> processor    : 37
>>>> BogoMIPS    : 200.00
>>>> Features    : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
>>>> CPU implementer    : 0x43
>>>> CPU architecture: 8
>>>> CPU variant    : 0x1
>>>> CPU part    : 0x0a1
>>>> CPU revision    : 0
>>>>
>>>> processor    : 38
>>>> BogoMIPS    : 200.00
>>>> Features    : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
>>>> CPU implementer    : 0x43
>>>> CPU architecture: 8
>>>> CPU variant    : 0x1
>>>> CPU part    : 0x0a1
>>>> CPU revision    : 0
>>>>
>>>> processor    : 39
>>>> BogoMIPS    : 200.00
>>>> Features    : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
>>>> CPU implementer    : 0x43
>>>> CPU architecture: 8
>>>> CPU variant    : 0x1
>>>> CPU part    : 0x0a1
>>>> CPU revision    : 0
>>>>
>>>> processor    : 40
>>>> BogoMIPS    : 200.00
>>>> Features    : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
>>>> CPU implementer    : 0x43
>>>> CPU architecture: 8
>>>> CPU variant    : 0x1
>>>> CPU part    : 0x0a1
>>>> CPU revision    : 0
>>>>
>>>> processor    : 41
>>>> BogoMIPS    : 200.00
>>>> Features    : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
>>>> CPU implementer    : 0x43
>>>> CPU architecture: 8
>>>> CPU variant    : 0x1
>>>> CPU part    : 0x0a1
>>>> CPU revision    : 0
>>>>
>>>> processor    : 42
>>>> BogoMIPS    : 200.00
>>>> Features    : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
>>>> CPU implementer    : 0x43
>>>> CPU architecture: 8
>>>> CPU variant    : 0x1
>>>> CPU part    : 0x0a1
>>>> CPU revision    : 0
>>>>
>>>> processor    : 43
>>>> BogoMIPS    : 200.00
>>>> Features    : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
>>>> CPU implementer    : 0x43
>>>> CPU architecture: 8
>>>> CPU variant    : 0x1
>>>> CPU part    : 0x0a1
>>>> CPU revision    : 0
>>>>
>>>> processor    : 44
>>>> BogoMIPS    : 200.00
>>>> Features    : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
>>>> CPU implementer    : 0x43
>>>> CPU architecture: 8
>>>> CPU variant    : 0x1
>>>> CPU part    : 0x0a1
>>>> CPU revision    : 0
>>>>
>>>> processor    : 45
>>>> BogoMIPS    : 200.00
>>>> Features    : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
>>>> CPU implementer    : 0x43
>>>> CPU architecture: 8
>>>> CPU variant    : 0x1
>>>> CPU part    : 0x0a1
>>>> CPU revision    : 0
>>>>
>>>> processor    : 46
>>>> BogoMIPS    : 200.00
>>>> Features    : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
>>>> CPU implementer    : 0x43
>>>> CPU architecture: 8
>>>> CPU variant    : 0x1
>>>> CPU part    : 0x0a1
>>>> CPU revision    : 0
>>>>
>>>> processor    : 47
>>>> BogoMIPS    : 200.00
>>>> Features    : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
>>>> CPU implementer    : 0x43
>>>> CPU architecture: 8
>>>> CPU variant    : 0x1
>>>> CPU part    : 0x0a1
>>>> CPU revision    : 0
>>>>
>>>
>>
>

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: ILP32 for ARM64: testing with glibc testsuite
  2016-12-05 10:07           ` Andreas Schwab
@ 2016-12-05 10:26             ` Zhangjian (Bamvor)
  2016-12-06  5:29               ` Yury Norov
       [not found]             ` <1480966437.29811.23.camel@caviumnetworks.com>
  1 sibling, 1 reply; 18+ messages in thread
From: Zhangjian (Bamvor) @ 2016-12-05 10:26 UTC (permalink / raw)
  To: Andreas Schwab
  Cc: Steve Ellcey, Maxim Kuvyrkov, Yury Norov, arnd, catalin.marinas,
	linux-arm-kernel, linux-kernel, linux-doc, linux-arch,
	GNU C Library, schwidefsky, heiko.carstens, Andrew Pinski,
	broonie, Joseph S. Myers, christoph.muellner, Szabolcs Nagy,
	klimov.linux, Nathan_Lynch, agraf, Prasun Kapoor, kilobyte,
	Geert Uytterhoeven, Dr. Philipp Tomsich, manuel.montezelo,
	linyongting, davem, Zhangjian (Bamvor)



On 2016/12/5 18:07, Andreas Schwab wrote:
> On Dez 05 2016, "Zhangjian (Bamvor)" <bamvor.zhangjian@huawei.com> wrote:
>
>> Is there some progresses on it? We could collabrate to fix those issues.
>
> All the elf/nptl/rt fails should be fixed by the recent binutils fixes.
Cool. How about the conform and other failures?

Regards

Bamvor
>
> Andreas.
>

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: ILP32 for ARM64: testing with glibc testsuite
  2016-12-05 10:26             ` Zhangjian (Bamvor)
@ 2016-12-06  5:29               ` Yury Norov
  0 siblings, 0 replies; 18+ messages in thread
From: Yury Norov @ 2016-12-06  5:29 UTC (permalink / raw)
  To: Zhangjian (Bamvor)
  Cc: Andreas Schwab, Steve Ellcey, Maxim Kuvyrkov, arnd,
	catalin.marinas, linux-arm-kernel, linux-kernel, linux-doc,
	linux-arch, GNU C Library, schwidefsky, heiko.carstens,
	Andrew Pinski, broonie, Joseph S. Myers, christoph.muellner,
	Szabolcs Nagy, klimov.linux, Nathan_Lynch, agraf, Prasun Kapoor,
	kilobyte, Geert Uytterhoeven, Dr. Philipp Tomsich,
	manuel.montezelo, linyongting, davem

On Mon, Dec 05, 2016 at 06:24:11PM +0800, Zhangjian (Bamvor) wrote:
> 
> 
> On 2016/12/5 18:07, Andreas Schwab wrote:
> >On Dez 05 2016, "Zhangjian (Bamvor)" <bamvor.zhangjian@huawei.com> wrote:
> >
> >>Is there some progresses on it? We could collabrate to fix those issues.
> >
> >All the elf/nptl/rt fails should be fixed by the recent binutils fixes.
> Cool. How about the conform and other failures?

I think conform is only my local problem. I use pretty non-standard
environment for build and testing - cross-compilation + qemu. Steve
builds and runs tests natively, and he doesn't see that regressions.

Yury

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: ILP32 for ARM64: testing with glibc testsuite
       [not found]             ` <1480966437.29811.23.camel@caviumnetworks.com>
@ 2016-12-06  8:31               ` Andreas Schwab
  0 siblings, 0 replies; 18+ messages in thread
From: Andreas Schwab @ 2016-12-06  8:31 UTC (permalink / raw)
  To: Steve Ellcey
  Cc: Zhangjian (Bamvor),
	Maxim Kuvyrkov, Yury Norov, arnd, catalin.marinas,
	linux-arm-kernel, linux-kernel, linux-doc, linux-arch,
	GNU C Library, schwidefsky, heiko.carstens, Andrew Pinski,
	broonie, Joseph S. Myers, christoph.muellner, Szabolcs Nagy,
	klimov.linux, Nathan_Lynch, agraf, Prasun Kapoor, kilobyte,
	Geert Uytterhoeven, Dr. Philipp Tomsich, manuel.montezelo,
	linyongting, davem, zh

On Dez 05 2016, Steve Ellcey <sellcey@caviumnetworks.com> wrote:

> FAIL: nptl/tst-cancel26
> FAIL: nptl/tst-cancel27

> FAIL: rt/tst-mqueue1
> FAIL: rt/tst-mqueue2
> FAIL: rt/tst-mqueue4
> FAIL: rt/tst-mqueue7

I don't see these failures.  Maybe you need to rebuild libgcc?

https://build.opensuse.org/package/live_build_log/devel:ARM:AArch64:ILP32/glibc-testsuite/standard/aarch64_ilp32

Andreas.

-- 
Andreas Schwab, SUSE Labs, schwab@suse.de
GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE  1748 E4D4 88E3 0EEA B9D7
"And now for something completely different."

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: ILP32 for ARM64 - testing with lmbench
       [not found]           ` <20161205141312.GC14429@e104818-lin.cambridge.arm.com>
@ 2016-12-11 12:08             ` Yury Norov
  0 siblings, 0 replies; 18+ messages in thread
From: Yury Norov @ 2016-12-11 12:08 UTC (permalink / raw)
  To: Catalin Marinas
  Cc: Zhangjian (Bamvor),
	Maxim Kuvyrkov, linux-doc, Szabolcs Nagy, heiko.carstens,
	cmetcalf, Dr. Philipp Tomsich, matt.spencer, Joseph S. Myers,
	linux-arch, zhouchengming1, sellcey, Prasun Kapoor, agraf,
	Geert Uytterhoeven, Ding Tianhong, kilobyte, manuel.montezelo,
	arnd, Andrew Pinski, linyongting, klimov.linux, broonie,
	linux-arm-kernel, GNU C Library, Nathan_Lynch, linux-kernel,
	hanjun.guo, schwidefsky, David Miller, christoph.muellner

On Mon, Dec 05, 2016 at 02:13:12PM +0000, Catalin Marinas wrote:
> On Mon, Dec 05, 2016 at 06:16:09PM +0800, Zhangjian (Bamvor) wrote:
> > Do you have suggestion of next move of upstreaming ILP32?
> 
> I mentioned the steps a few time before. I'm pasting them again here:
> 
> 1. Complete the review of the Linux patches and ABI (no merge yet)
> 2. Review the corresponding glibc patches (no merge yet)
> 3. Ask (Linaro, Cavium) for toolchain + filesystem (pre-built and more
>    than just busybox) to be able to reproduce the testing in ARM
> 4. More testing (LTP, trinity, performance regressions etc.)
> 5. Move the ILP32 PCS out of beta (based on the results from 4)
> 6. Check the market again to see if anyone still needs ILP32
> 7. Based on 6, decide whether to merge the kernel and glibc patches
> 
> What's not explicitly mentioned in step 4 is glibc testing. Point 5 is
> ARM's responsibility (toolchain folk).
> 
> > There are already the test results of lmbench and specint. Do you they
> > are ok or need more data to prove no regression?
> 
> I would need to reproduce the tests myself, see step 3.

Hi Catalin,

> 3. Ask (Linaro, Cavium) for toolchain + filesystem (pre-built and more
>    than just busybox) to be able to reproduce the testing in ARM

This is the Andrew's toolchain I use to build kernel, GLIBC, binutils etc:
https://drive.google.com/open?id=0B93nHerV55yNVlVKaXpOOHQtbW8
It's not the latest build but it works well to me.

This archive contains 4.9-rc8 kernel, initrd, sys-root, qemu image based on
ilp32 busybox. 
https://drive.google.com/open?id=0B93nHerV55yNbVo0bko0bWlQeFE

I can start linux on qemu and run basic commands and tests in ilp32
mode. This is my first attempt to create rootfs, and this is very basic
busybox + sys-root.  But it lets me start lp64 and ilp32 apps (find
example there). If you need something more, let me know and I'll add
it. You can also use any professional distro with this ilp32-enabled
kernel, just copy sys-root there (like I actually do - I run Ubuntu
14 daily). 

BTW. This is of course good idea to build and test ilp32 user
environment, but in real life I think ilp32 apps will work in lp64
userspace.

> 4. More testing (LTP, trinity, performance regressions etc.)

I also built and ran trinity. After ~24 hours I found all trinity
threads stalled for lp64, and after another 24 hours I found it
running but slower for ilp32. Kernel was alive in both cases. 

Yury.

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2016-12-11 12:08 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <1477081997-4770-1-git-send-email-ynorov@caviumnetworks.com>
2016-11-07  8:24 ` ILP32 for ARM64: testing with glibc testsuite Yury Norov
2016-11-09  9:57   ` Yury Norov
2016-11-16 11:26     ` Maxim Kuvyrkov
2016-11-16 13:08       ` Yury Norov
2016-11-24  5:16       ` Yury Norov
2016-11-24  7:36         ` Florian Weimer
2016-11-24  9:00           ` Yury Norov
2016-11-24  9:06             ` Florian Weimer
2016-11-24  9:10               ` Andrew Pinski
2016-11-25 14:26         ` Ramana Radhakrishnan
2016-11-25 15:30           ` Yury Norov
     [not found]     ` <CC4F99A7-1FD2-486A-BD66-ED06F1B8BF50@linaro.org>
     [not found]       ` <1479419136.908.90.camel@caviumnetworks.com>
2016-12-05 10:02         ` Zhangjian (Bamvor)
2016-12-05 10:07           ` Andreas Schwab
2016-12-05 10:26             ` Zhangjian (Bamvor)
2016-12-06  5:29               ` Yury Norov
     [not found]             ` <1480966437.29811.23.camel@caviumnetworks.com>
2016-12-06  8:31               ` Andreas Schwab
     [not found] ` <20161028124659.GA24131@yury-N73SV>
     [not found]   ` <cdf5cdf2-43af-6d7f-9e0c-72675fb83224@huawei.com>
     [not found]     ` <266952F2-53F5-4D5E-83F0-6C8203092F67@linaro.org>
     [not found]       ` <120041af-f4e9-5b6f-36dc-7d3535a1f01c@huawei.com>
2016-12-05 10:23         ` ILP32 for ARM64 - testing with lmbench Zhangjian (Bamvor)
     [not found]           ` <20161205141312.GC14429@e104818-lin.cambridge.arm.com>
2016-12-11 12:08             ` Yury Norov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).