Message ID | cover.1465392530.git.riku.voipio@linaro.org |
---|---|
State | New |
Headers | show |
On 8 June 2016 at 14:29, <riku.voipio@linaro.org> wrote: > From: Riku Voipio <riku.voipio@linaro.org> > > The following changes since commit 76462405809d29bab65a3699686998ba124ab942: > > Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20160606-1' into staging (2016-06-06 17:02:42 +0100) > > are available in the git repository at: > > git://git.linaro.org/people/riku.voipio/qemu.git tags/pull-linux-user-20160608 > > for you to fetch changes up to 014628a705bdaf31c09915c29e61f4088956564d: > > linux-user: In fork_end(), remove correct CPUs from CPU list (2016-06-08 12:06:57 +0300) > > ---------------------------------------------------------------- > linux-user pull request for June 2016 > > ---------------------------------------------------------------- Applied, thanks. -- PMM
Le 08/06/2016 à 15:29, riku.voipio@linaro.org a écrit : > From: Riku Voipio <riku.voipio@linaro.org> > > The following changes since commit 76462405809d29bab65a3699686998ba124ab942: > > Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20160606-1' into staging (2016-06-06 17:02:42 +0100) > > are available in the git repository at: > > git://git.linaro.org/people/riku.voipio/qemu.git tags/pull-linux-user-20160608 > > for you to fetch changes up to 014628a705bdaf31c09915c29e61f4088956564d: > > linux-user: In fork_end(), remove correct CPUs from CPU list (2016-06-08 12:06:57 +0300) > > ---------------------------------------------------------------- > linux-user pull request for June 2016 > > ---------------------------------------------------------------- > > Laurent Vivier (5): > linux-user: Fix qemu-binfmt-conf.sh to store config across reboot > linux-user: add rtnetlink(7) support > linux-user: support netlink protocol NETLINK_KOBJECT_UEVENT > linux-user: add netlink audit > linux-user: check if NETLINK_ROUTE is available > > Peter Maydell (31): > linux-user: Factor out handle_signal code from > process_pending_signals() > linux-user: Move handle_pending_signal() to avoid need for declaration > linux-user: Fix stray tab-indent > linux-user: Factor out uses of do_sigprocmask() from sigreturn code > linux-user: Define macro for size of host kernel sigset_t > linux-user: Use safe_syscall for sigsuspend syscalls > linux-user: Fix race between multiple signals > linux-user: Use safe_syscall for kill, tkill and tgkill syscalls > linux-user: Use both si_code and si_signo when converting siginfo_t > linux-user: Avoid possible misalignment in target_to_host_siginfo() > linux-user: provide frame information in x86-64 safe_syscall > linux-user: Fix handling of arm_fadvise64_64 syscall > linux-user: Fix NR_fadvise64 and NR_fadvise64_64 for 32-bit guests > linux-user: Fix error conversion in 64-bit fadvise syscall > linux-user: Use safe_syscall wrapper for readv and writev syscalls > linux-user: Use safe_syscall wrapper for connect syscall > linux-user: Use safe_syscall wrapper for send* and recv* syscalls > linux-user: Use safe_syscall wrapper for msgsnd and msgrcv > linux-user: Use safe_syscall wrapper for mq_timedsend and > mq_timedreceive > linux-user: Use safe_syscall wrapper for flock > linux-user: Use safe_syscall wrapper for rt_sigtimedwait syscall > linux-user: Use safe_syscall wrapper for sleep syscalls > linux-user: Use safe_syscall wrapper for poll and ppoll syscalls > linux-user: Use safe_syscall wrapper for epoll_wait syscalls > linux-user: Use safe_syscall wrapper for semop > linux-user: Use safe_syscall wrapper for accept and accept4 syscalls > linux-user: Use safe_syscall wrapper for ioctl > linux-user: Correct signedness of target_flock l_start and l_len > fields > linux-user: Make target_strerror() return 'const char *' > linux-user: Special-case ERESTARTSYS in target_strerror() > linux-user: In fork_end(), remove correct CPUs from CPU list > > Timothy E Baldwin (8): > linux-user: Remove redundant default action check in queue_signal() > linux-user: Remove redundant gdb_queuesig() > linux-user: Remove real-time signal queuing > linux-user: Queue synchronous signals separately > linux-user: Block signals during sigaction() handling > linux-user: pause() should not pause if signal pending > linux-user: Restart exit() if signal pending > linux-user: Restart fork() if signals pending > > configure | 36 +- > gdbstub.c | 13 - > include/exec/gdbstub.h | 1 - > linux-user/host/x86_64/safe-syscall.inc.S | 10 + > linux-user/main.c | 9 +- > linux-user/qemu.h | 64 +- > linux-user/signal.c | 567 ++++++++------- > linux-user/strace.c | 4 +- > linux-user/syscall.c | 1076 +++++++++++++++++++++++++---- > linux-user/syscall_defs.h | 49 +- > scripts/qemu-binfmt-conf.sh | 389 +++++++++-- > 11 files changed, 1698 insertions(+), 520 deletions(-) > mode change 100644 => 100755 scripts/qemu-binfmt-conf.sh > This is a great update! All the work around the signal management really improves the quality of QEMU linux-user. For instance, I thought for years that "dbench" cannot work correctly in linux-user mode because the thread is stuck in a wait() and all the state machine is managed in a signal handler (that was never called)... and now it works! [1] Thank you Peter! Laurent [1] qemu-m68k on i7-4790@3.6GHz: Throughput 217.83 MB/sec 1 procs Throughput 879.323 MB/sec 8 procs while a Quadra 800 is around 2 MB/sec...
On 9 June 2016 at 21:19, Laurent Vivier <laurent@vivier.eu> wrote: > All the work around the signal management really improves the quality of > QEMU linux-user. > > For instance, I thought for years that "dbench" cannot work correctly in > linux-user mode because the thread is stuck in a wait() and all the > state machine is managed in a signal handler (that was never called)... > and now it works! [1] > > Thank you Peter! Most of the work here is due to Timothy Baldwin -- I largely just cleaned it up, added some comments and extended it to cover some more syscalls. thanks -- PMM
From: Riku Voipio <riku.voipio@linaro.org> The following changes since commit 76462405809d29bab65a3699686998ba124ab942: Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20160606-1' into staging (2016-06-06 17:02:42 +0100) are available in the git repository at: git://git.linaro.org/people/riku.voipio/qemu.git tags/pull-linux-user-20160608 for you to fetch changes up to 014628a705bdaf31c09915c29e61f4088956564d: linux-user: In fork_end(), remove correct CPUs from CPU list (2016-06-08 12:06:57 +0300) ---------------------------------------------------------------- linux-user pull request for June 2016 ---------------------------------------------------------------- Laurent Vivier (5): linux-user: Fix qemu-binfmt-conf.sh to store config across reboot linux-user: add rtnetlink(7) support linux-user: support netlink protocol NETLINK_KOBJECT_UEVENT linux-user: add netlink audit linux-user: check if NETLINK_ROUTE is available Peter Maydell (31): linux-user: Factor out handle_signal code from process_pending_signals() linux-user: Move handle_pending_signal() to avoid need for declaration linux-user: Fix stray tab-indent linux-user: Factor out uses of do_sigprocmask() from sigreturn code linux-user: Define macro for size of host kernel sigset_t linux-user: Use safe_syscall for sigsuspend syscalls linux-user: Fix race between multiple signals linux-user: Use safe_syscall for kill, tkill and tgkill syscalls linux-user: Use both si_code and si_signo when converting siginfo_t linux-user: Avoid possible misalignment in target_to_host_siginfo() linux-user: provide frame information in x86-64 safe_syscall linux-user: Fix handling of arm_fadvise64_64 syscall linux-user: Fix NR_fadvise64 and NR_fadvise64_64 for 32-bit guests linux-user: Fix error conversion in 64-bit fadvise syscall linux-user: Use safe_syscall wrapper for readv and writev syscalls linux-user: Use safe_syscall wrapper for connect syscall linux-user: Use safe_syscall wrapper for send* and recv* syscalls linux-user: Use safe_syscall wrapper for msgsnd and msgrcv linux-user: Use safe_syscall wrapper for mq_timedsend and mq_timedreceive linux-user: Use safe_syscall wrapper for flock linux-user: Use safe_syscall wrapper for rt_sigtimedwait syscall linux-user: Use safe_syscall wrapper for sleep syscalls linux-user: Use safe_syscall wrapper for poll and ppoll syscalls linux-user: Use safe_syscall wrapper for epoll_wait syscalls linux-user: Use safe_syscall wrapper for semop linux-user: Use safe_syscall wrapper for accept and accept4 syscalls linux-user: Use safe_syscall wrapper for ioctl linux-user: Correct signedness of target_flock l_start and l_len fields linux-user: Make target_strerror() return 'const char *' linux-user: Special-case ERESTARTSYS in target_strerror() linux-user: In fork_end(), remove correct CPUs from CPU list Timothy E Baldwin (8): linux-user: Remove redundant default action check in queue_signal() linux-user: Remove redundant gdb_queuesig() linux-user: Remove real-time signal queuing linux-user: Queue synchronous signals separately linux-user: Block signals during sigaction() handling linux-user: pause() should not pause if signal pending linux-user: Restart exit() if signal pending linux-user: Restart fork() if signals pending configure | 36 +- gdbstub.c | 13 - include/exec/gdbstub.h | 1 - linux-user/host/x86_64/safe-syscall.inc.S | 10 + linux-user/main.c | 9 +- linux-user/qemu.h | 64 +- linux-user/signal.c | 567 ++++++++------- linux-user/strace.c | 4 +- linux-user/syscall.c | 1076 +++++++++++++++++++++++++---- linux-user/syscall_defs.h | 49 +- scripts/qemu-binfmt-conf.sh | 389 +++++++++-- 11 files changed, 1698 insertions(+), 520 deletions(-) mode change 100644 => 100755 scripts/qemu-binfmt-conf.sh