From: "Alex Bennée" <alex.bennee@linaro.org>
To: Bug 1791796 <1791796@bugs.launchpad.net>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [Bug 1791796] [NEW] unimplemented thread syscalls in nios2 user-mode emulation
Date: Tue, 11 Sep 2018 09:49:36 +0100 [thread overview]
Message-ID: <87zhwobeqn.fsf@linaro.org> (raw)
In-Reply-To: <153660698641.24944.17107147595708483311.malonedeb@gac.canonical.com>
Sandra Loosemore <1791796@bugs.launchpad.net> writes:
> Public bug reported:
>
> This bug is reported against the 3.0 release.
>
> I noticed that the GCC test gcc.dg/torture/tls/tls-test.c is failing
> when run in user-mode qemu for nios2 target. The problem appears to be
> that the thread-related syscalls are unimplemented in qemu. Here is
> output from running with -strace:
One thing that would help in better supporting NIOS is if we could add
support for building linux-user tests for it in test/tcg. For this we
need a distribution that ships a decent cross compiler or create a
docker recipe that packages it up so we can build and run the tests.
Are you just building GCC straight from source or can you point to a
recommended location for a decent packaged gcc?
>
> 22484 brk(NULL) = 0x00005000
> 22484 uname(0x7fffef5a) = 0
> 22484 faccessat(AT_FDCWD,"/etc/ld.so.preload",R_OK,0x5) = -1 errno=2 (No such file or directory)
> 22484 openat(AT_FDCWD,"/scratch/sandra/nios2-linux-trunk3/obj/test-2018.11-999999-nios2-linux-gnu/host-x86_64-linux-gnu/sourceryg++-2018.11/nios2-linux-gnu/libc/./lib/./tls/libm.so.6",O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 errno=2 (No such file or directory)
> 22484 fstatat64(AT_FDCWD,"/scratch/sandra/nios2-linux-trunk3/obj/test-2018.11-999999-nios2-linux-gnu/host-x86_64-linux-gnu/sourceryg++-2018.11/nios2-linux-gnu/libc/./lib/./tls",0x7fffe870,0) = -1 errno=2 (No such file or directory)
> 22484 openat(AT_FDCWD,"/scratch/sandra/nios2-linux-trunk3/obj/test-2018.11-999999-nios2-linux-gnu/host-x86_64-linux-gnu/sourceryg++-2018.11/nios2-linux-gnu/libc/./lib/./libm.so.6",O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
> 22484 read(3,0x7fffe954,512) = 512
> 22484 fstat64(3,0x7fffe870) = 0
> 22484 mmap2(NULL,803596,PROT_EXEC|PROT_READ,MAP_PRIVATE|MAP_DENYWRITE,3,0) = 0x7f716000
> 22484 mmap2(0x7f7d8000,12288,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_DENYWRITE|MAP_FIXED,3,0xc1) = 0x7f7d8000
> 22484 close(3) = 0
> 22484 openat(AT_FDCWD,"/scratch/sandra/nios2-linux-trunk3/obj/test-2018.11-999999-nios2-linux-gnu/host-x86_64-linux-gnu/sourceryg++-2018.11/nios2-linux-gnu/libc/./lib/./libpthread.so.0",O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
> 22484 read(3,0x7fffe948,512) = 512
> 22484 mmap2(NULL,8192,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANONYMOUS,-1,0) = 0x7f714000
> 22484 fstat64(3,0x7fffe864) = 0
> 22484 mmap2(NULL,120700,PROT_EXEC|PROT_READ,MAP_PRIVATE|MAP_DENYWRITE,3,0) = 0x7f6f6000
> 22484 mprotect(0x7f70e000,4096,PROT_NONE) = 0
> 22484 mmap2(0x7f70f000,12288,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_DENYWRITE|MAP_FIXED,3,0x18) = 0x7f70f000
> 22484 mmap2(0x7f712000,6012,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANONYMOUS|MAP_FIXED,-1,0) = 0x7f712000
> 22484 close(3) = 0
> 22484 openat(AT_FDCWD,"/scratch/sandra/nios2-linux-trunk3/obj/test-2018.11-999999-nios2-linux-gnu/host-x86_64-linux-gnu/sourceryg++-2018.11/nios2-linux-gnu/libc/./lib/./libc.so.6",O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
> 22484 read(3,0x7fffe93c,512) = 512
> 22484 fstat64(3,0x7fffe858) = 0
> 22484 mmap2(NULL,1491048,PROT_EXEC|PROT_READ,MAP_PRIVATE|MAP_DENYWRITE,3,0) = 0x7f589000
> 22484 mmap2(0x7f6de000,86016,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_DENYWRITE|MAP_FIXED,3,0x154) = 0x7f6de000
> 22484 mmap2(0x7f6f3000,8296,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANONYMOUS|MAP_FIXED,-1,0) = 0x7f6f3000
> 22484 close(3) = 0
> 22484 mprotect(0x7f6de000,65536,PROT_READ) = 0
> 22484 mprotect(0x7f70f000,8192,PROT_READ) = 0
> 22484 mprotect(0x7f7d8000,4096,PROT_READ) = 0
> 22484 mprotect(0x00003000,4096,PROT_READ) = 0
> 22484 mprotect(0x7f7fc000,4096,PROT_READ) = 0
> 22484 set_tid_address(2138131700,2147480980,2147480988,2147480988,87148,47) = 22484
> 22484 set_robust_list(2138131708,12,2147480988,0,87148,47) = -1 errno=38 (Function not implemented)
> 22484 rt_sigaction(32,0x7ffff36c,NULL) = 0
> 22484 rt_sigaction(33,0x7ffff36c,NULL) = -1 errno=22 (Invalid argument)
> 22484 rt_sigprocmask(SIG_UNBLOCK,0x7ffff4a8,NULL) = 0
> 22484 getrlimit(3,2147480732,3,0,62512,47) = 0
> 22484 mmap2(NULL,8392704,PROT_NONE,MAP_PRIVATE|MAP_ANONYMOUS|0x20000,-1,0) = 0x7ed88000
> 22484 mprotect(0x7ed89000,8388608,PROT_READ|PROT_WRITE) = 0
> 22484 brk(NULL) = 0x00005000
> 22484 brk(0x00026000) = 0x00026000
> 22484 clone(CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID,child_stack=0x7f588018,parent_tidptr=0x7f5884fc,tls=0x7f58f928,child_tidptr=0x7f5884fc) = 22503
> 22484 io_setup(4001536,2136506392,2136507644,2136507644,2136537384,4100) = -1 errno=38 (Function not implemented)
> 22484 futex(0x7f5884fc,FUTEX_WAIT,22503,NULL,NULL,0)22484 set_robust_list(2136507652,12,0,4100,2136508076,4100) = -1 errno=38 (Function not implemented)
> 22484 madvise(2128117760,8372224,4,2136507672,528660,4100) = 0
> 22484 exit(0)
> = 0
> 22484 fstat64(1,0x7fffef48) = 0
> 22484 write(1,0x51e8,42)FAIL: a= 10, thr_a = 10 Addr = 0x7f715120
> = 42
> 22484 exit_group(1)
> sandra@build2-trusty-cs:/scratch/sandra/nios2-linux-trunk3$
> 22484 mmap2(NULL,1491048,PROT_EXEC|PROT_READ,MAP_PRIVATE|MAP_DENYWRITE,3,0) = 0x7f589000
> 22484 mmap2(0x7f6de000,86016,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_DENYWRITE|MAP_FIXED,3,0x154) = 0x7f6de000
> 22484 mmap2(0x7f6f3000,8296,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANONYMOUS|MAP_FIXED,-1,0) = 0x7f6f3000
> 22484 close(3) = 0
> 22484 mprotect(0x7f6de000,65536,PROT_READ) = 0
> 22484 mprotect(0x7f70f000,8192,PROT_READ) = 0
> 22484 mprotect(0x7f7d8000,4096,PROT_READ) = 0
> 22484 mprotect(0x00003000,4096,PROT_READ) = 0
> 22484 mprotect(0x7f7fc000,4096,PROT_READ) = 0
> 22484 set_tid_address(2138131700,2147480980,2147480988,2147480988,87148,47) = 22484
> 22484 set_robust_list(2138131708,12,2147480988,0,87148,47) = -1 errno=38 (Function not implemented)
> 22484 rt_sigaction(32,0x7ffff36c,NULL) = 0
> 22484 rt_sigaction(33,0x7ffff36c,NULL) = -1 errno=22 (Invalid argument)
> 22484 rt_sigprocmask(SIG_UNBLOCK,0x7ffff4a8,NULL) = 0
> 22484 getrlimit(3,2147480732,3,0,62512,47) = 0
> 22484 mmap2(NULL,8392704,PROT_NONE,MAP_PRIVATE|MAP_ANONYMOUS|0x20000,-1,0) = 0x7ed88000
> 22484 mprotect(0x7ed89000,8388608,PROT_READ|PROT_WRITE) = 0
> 22484 brk(NULL) = 0x00005000
> 22484 brk(0x00026000) = 0x00026000
> 22484 clone(CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID,child_stack=0x7f588018,parent_tidptr=0x7f5884fc,tls=0x7f58f928,child_tidptr=0x7f5884fc) = 22503
> 22484 io_setup(4001536,2136506392,2136507644,2136507644,2136537384,4100) = -1 errno=38 (Function not implemented)
> 22484 futex(0x7f5884fc,FUTEX_WAIT,22503,NULL,NULL,0)22484 set_robust_list(2136507652,12,0,4100,2136508076,4100) = -1 errno=38 (Function not implemented)
> 22484 madvise(2128117760,8372224,4,2136507672,528660,4100) = 0
> 22484 exit(0)
> = 0
> 22484 fstat64(1,0x7fffef48) = 0
> 22484 write(1,0x51e8,42)FAIL: a= 10, thr_a = 10 Addr = 0x7f715120
> = 42
> 22484 exit_group(1)
> sandra@build2-trusty-cs:/scratch/sandra/nios2-linux-trunk3$
> 22484 mmap2(NULL,1491048,PROT_EXEC|PROT_READ,MAP_PRIVATE|MAP_DENYWRITE,3,0) = 0x7f589000
> 22484 mmap2(0x7f6de000,86016,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_DENYWRITE|MAP_FIXED,3,0x154) = 0x7f6de000
> 22484 mmap2(0x7f6f3000,8296,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANONYMOUS|MAP_FIXED,-1,0) = 0x7f6f3000
> 22484 close(3) = 0
> 22484 mprotect(0x7f6de000,65536,PROT_READ) = 0
> 22484 mprotect(0x7f70f000,8192,PROT_READ) = 0
> 22484 mprotect(0x7f7d8000,4096,PROT_READ) = 0
> 22484 mprotect(0x00003000,4096,PROT_READ) = 0
> 22484 mprotect(0x7f7fc000,4096,PROT_READ) = 0
> 22484 set_tid_address(2138131700,2147480980,2147480988,2147480988,87148,47) = 22484
> 22484 set_robust_list(2138131708,12,2147480988,0,87148,47) = -1 errno=38 (Function not implemented)
> 22484 rt_sigaction(32,0x7ffff36c,NULL) = 0
> 22484 rt_sigaction(33,0x7ffff36c,NULL) = -1 errno=22 (Invalid argument)
> 22484 rt_sigprocmask(SIG_UNBLOCK,0x7ffff4a8,NULL) = 0
> 22484 getrlimit(3,2147480732,3,0,62512,47) = 0
> 22484 mmap2(NULL,8392704,PROT_NONE,MAP_PRIVATE|MAP_ANONYMOUS|0x20000,-1,0) = 0x7ed88000
> 22484 mprotect(0x7ed89000,8388608,PROT_READ|PROT_WRITE) = 0
> 22484 brk(NULL) = 0x00005000
> 22484 brk(0x00026000) = 0x00026000
> 22484 clone(CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID,child_stack=0x7f588018,parent_tidptr=0x7f5884fc,tls=0x7f58f928,child_tidptr=0x7f5884fc) = 22503
> 22484 io_setup(4001536,2136506392,2136507644,2136507644,2136537384,4100) = -1 errno=38 (Function not implemented)
> 22484 futex(0x7f5884fc,FUTEX_WAIT,22503,NULL,NULL,0)22484 set_robust_list(2136507652,12,0,4100,2136508076,4100) = -1 errno=38 (Function not implemented)
> 22484 madvise(2128117760,8372224,4,2136507672,528660,4100) = 0
> 22484 exit(0)
> = 0
> 22484 fstat64(1,0x7fffef48) = 0
> 22484 write(1,0x51e8,42)FAIL: a= 10, thr_a = 10 Addr = 0x7f715120
> = 42
> 22484 exit_group(1)
>
> Note that set_robust_list and clone are reported as unimplemented.
>
> I've reported the problems with the signal syscalls separately here.
> https://bugs.launchpad.net/qemu/+bug/1791763
>
> ** Affects: qemu
> Importance: Undecided
> Status: New
--
Alex Bennée
next prev parent reply other threads:[~2018-09-11 8:49 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-09-10 19:16 [Qemu-devel] [Bug 1791796] [NEW] unimplemented thread syscalls in nios2 user-mode emulation Sandra Loosemore
2018-09-11 8:49 ` Alex Bennée [this message]
2018-09-11 9:27 ` Thomas Huth
2018-09-11 9:57 ` Alex Bennée
2018-09-11 14:06 ` [Qemu-devel] [RFC PATCH 0/4] Add Nios II cross-compiler and enable tests/tcg Alex Bennée
2018-09-11 14:06 ` [Qemu-devel] [RFC PATCH 1/4] docker: add debian-buildroot-base Alex Bennée
2018-09-11 14:06 ` [Qemu-devel] [RFC PATCH 2/4] docker: add buildroot-nios2-cross image Alex Bennée
[not found] ` <6ef6c4bb-7f29-efef-f8b9-478880c78c8f@amsat.org>
2018-10-01 9:05 ` Alex Bennée
2018-09-11 14:06 ` [Qemu-devel] [RFC PATCH 3/4] linux-user/nios2: bump min uname to 4.16.0 [!HACK] Alex Bennée
2018-09-11 14:14 ` Laurent Vivier
2018-09-11 14:27 ` Marek Vasut
2018-09-11 15:08 ` Alex Bennée
2018-09-11 15:30 ` Marek Vasut
2018-09-12 10:19 ` Alex Bennée
2018-09-11 14:40 ` [Qemu-devel] [Bug 1791796] " Alex Bennée
2018-09-11 14:46 ` [Qemu-devel] " Laurent Vivier
2018-09-11 14:06 ` [Qemu-devel] [RFC PATCH 4/4] tests/tcg: add nios2 architecture (NEEDS FIXES) Alex Bennée
2018-09-11 15:34 ` [Qemu-devel] [Bug 1791796] Re: unimplemented thread syscalls in nios2 user-mode emulation Sandra Loosemore
2018-09-11 19:03 ` Alex Bennée
2020-11-13 15:53 ` Thomas Huth
2021-01-13 4:17 ` Launchpad Bug Tracker
2021-01-13 7:59 ` Philippe Mathieu-Daudé
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87zhwobeqn.fsf@linaro.org \
--to=alex.bennee@linaro.org \
--cc=1791796@bugs.launchpad.net \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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 NNTP newsgroup(s).