qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Michael Roth <mdroth@linux.vnet.ibm.com>
To: qemu-devel@nongnu.org
Cc: qemu-stable@nongnu.org
Subject: [Qemu-devel] [PATCH 36/37] linux-user/syscall.c: Don't warn about unimplemented get_robust_list
Date: Tue,  2 Apr 2013 16:45:41 -0500	[thread overview]
Message-ID: <1364939142-30066-37-git-send-email-mdroth@linux.vnet.ibm.com> (raw)
In-Reply-To: <1364939142-30066-1-git-send-email-mdroth@linux.vnet.ibm.com>

From: Peter Maydell <peter.maydell@linaro.org>

The nature of the kernel ABI for the get_robust_list and set_robust_list
syscalls means we cannot implement them in QEMU. Make get_robust_list
silently return ENOSYS rather than using the default "print message and
then fail ENOSYS" code path, in the same way we already do for
set_robust_list, and add a comment documenting why we do this.

This silences warnings which were being produced for emulating
even trivial programs like 'ls' in x86-64-on-x86-64.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
(cherry picked from commit e9a970a8316f9f86a6c800a9a90175bd593f862c)

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
---
 linux-user/syscall.c |   15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index b682357..4e43a58 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -8551,7 +8551,20 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
 
 #ifdef TARGET_NR_set_robust_list
     case TARGET_NR_set_robust_list:
-	goto unimplemented_nowarn;
+    case TARGET_NR_get_robust_list:
+        /* The ABI for supporting robust futexes has userspace pass
+         * the kernel a pointer to a linked list which is updated by
+         * userspace after the syscall; the list is walked by the kernel
+         * when the thread exits. Since the linked list in QEMU guest
+         * memory isn't a valid linked list for the host and we have
+         * no way to reliably intercept the thread-death event, we can't
+         * support these. Silently return ENOSYS so that guest userspace
+         * falls back to a non-robust futex implementation (which should
+         * be OK except in the corner case of the guest crashing while
+         * holding a mutex that is shared with another process via
+         * shared memory).
+         */
+        goto unimplemented_nowarn;
 #endif
 
 #if defined(TARGET_NR_utimensat) && defined(__NR_utimensat)
-- 
1.7.9.5

  parent reply	other threads:[~2013-04-02 21:52 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-04-02 21:45 [Qemu-devel] Patch Round-up for stable 1.4.1, freeze next Tuesday Michael Roth
2013-04-02 21:45 ` [Qemu-devel] [PATCH 01/37] target-ppc: Fix "G2leGP3" PVR Michael Roth
2013-04-02 21:45 ` [Qemu-devel] [PATCH 02/37] coroutine: trim down nesting level in perf_nesting test Michael Roth
2013-04-02 21:45 ` [Qemu-devel] [PATCH 03/37] block: complete all IOs before .bdrv_truncate Michael Roth
2013-04-02 21:45 ` [Qemu-devel] [PATCH 04/37] tap: forbid creating multiqueue tap when hub is used Michael Roth
2013-04-02 21:45 ` [Qemu-devel] [PATCH 05/37] qemu-char.c: fix waiting for telnet connection message Michael Roth
2013-04-02 21:45 ` [Qemu-devel] [PATCH 06/37] net: reduce the unnecessary memory allocation of multiqueue Michael Roth
2013-04-02 21:45 ` [Qemu-devel] [PATCH 07/37] help: add docs for multiqueue tap options Michael Roth
2013-04-02 21:45 ` [Qemu-devel] [PATCH 08/37] vga: fix byteswapping Michael Roth
2013-04-02 21:45 ` [Qemu-devel] [PATCH 09/37] qmp: netdev_add is like -netdev, not -net, fix documentation Michael Roth
2013-04-02 21:45 ` [Qemu-devel] [PATCH 10/37] qemu-ga: make guest-sync-delimited available during fsfreeze Michael Roth
2013-04-02 21:45 ` [Qemu-devel] [PATCH 11/37] scsi-disk: handle io_canceled uniformly and correctly Michael Roth
2013-04-02 21:45 ` [Qemu-devel] [PATCH 12/37] iscsi: look for pkg-config file too Michael Roth
2013-04-02 21:45 ` [Qemu-devel] [PATCH 13/37] scsi: do not call scsi_read_data/scsi_write_data for a canceled request Michael Roth
2013-04-02 21:45 ` [Qemu-devel] [PATCH 14/37] scsi-disk: do not complete canceled UNMAP requests Michael Roth
2013-04-02 21:45 ` [Qemu-devel] [PATCH 15/37] rtc-test: Fix test failures with recent glib Michael Roth
2013-04-02 21:45 ` [Qemu-devel] [PATCH 16/37] Allow virtio-net features for legacy s390 virtio bus Michael Roth
2013-04-02 21:45 ` [Qemu-devel] [PATCH 17/37] pseries: Add compatible property to root of device tree Michael Roth
2013-04-02 21:45 ` [Qemu-devel] [PATCH 18/37] qcow2: make is_allocated return true for zero clusters Michael Roth
2013-04-02 21:45 ` [Qemu-devel] [PATCH 19/37] qemu-ga: use key-value store to avoid recycling fd handles after restart Michael Roth
2013-04-02 21:45 ` [Qemu-devel] [PATCH 20/37] qga/main.c: Don't use g_key_file_get/set_int64 Michael Roth
2013-04-02 21:45 ` [Qemu-devel] [PATCH 21/37] tcg: Fix occasional TCG broken problem when ldst optimization enabled Michael Roth
2013-04-02 21:45 ` [Qemu-devel] [PATCH 22/37] virtio-ccw: Queue sanity check for notify hypercall Michael Roth
2013-04-02 21:45 ` [Qemu-devel] [PATCH 23/37] qemu-bridge-helper: force usage of a very high MAC address for the bridge Michael Roth
2013-04-02 21:45 ` [Qemu-devel] [PATCH 24/37] configure: Require at least spice-protocol-0.12.3 Michael Roth
2013-04-02 21:45 ` [Qemu-devel] [PATCH 25/37] pseries: Add cleanup hook for PAPR virtual LAN device Michael Roth
2013-04-02 21:45 ` [Qemu-devel] [PATCH 26/37] target-ppc: Fix CPU_POWERPC_MPC8547E Michael Roth
2013-04-02 21:45 ` [Qemu-devel] [PATCH 27/37] ide/macio: Fix macio DMA initialisation Michael Roth
2013-04-02 21:45 ` [Qemu-devel] [PATCH 28/37] virtio-blk: fix unplug + virsh reboot Michael Roth
2013-04-02 21:45 ` [Qemu-devel] [PATCH 29/37] Fix page_cache leak in cache_resize Michael Roth
2013-04-02 21:45 ` [Qemu-devel] [PATCH 30/37] page_cache: fix memory leak Michael Roth
2013-04-02 21:45 ` [Qemu-devel] [PATCH 31/37] qcow2: flush refcount cache correctly in alloc_refcount_block() Michael Roth
2013-04-02 21:45 ` [Qemu-devel] [PATCH 32/37] qcow2: flush refcount cache correctly in qcow2_write_snapshots() Michael Roth
2013-04-02 21:45 ` [Qemu-devel] [PATCH 33/37] linux-user/syscall.c: handle FUTEX_WAIT_BITSET in do_futex Michael Roth
2013-04-02 21:45 ` [Qemu-devel] [PATCH 34/37] linux-user: fix futex strace of FUTEX_CLOCK_REALTIME Michael Roth
2013-04-02 21:45 ` [Qemu-devel] [PATCH 35/37] linux-user: make bogus negative iovec lengths fail EINVAL Michael Roth
2013-04-02 21:45 ` Michael Roth [this message]
2013-04-02 21:45 ` [Qemu-devel] [PATCH 37/37] update seabios to 1.7.2.1 Michael Roth
2013-04-02 22:04 ` [Qemu-devel] Patch Round-up for stable 1.4.1, freeze next Tuesday Eric Blake
2013-04-03 10:50   ` [Qemu-devel] [Qemu-stable] " Michael Tokarev
2013-04-03 12:13     ` Hans de Goede
2013-04-04  8:04       ` Tiziano Müller
2013-04-08 17:36       ` Serge Hallyn
2013-04-03 21:51 ` [Qemu-devel] " Aurelien Jarno
2013-04-04 22:24   ` mdroth
2013-04-08 22:58     ` Aurelien Jarno
2013-04-03 22:02 ` [Qemu-devel] [Qemu-stable] " Bruce Rogers
2013-04-04  1:24 ` [Qemu-devel] " Cole Robinson
2013-04-04  5:55 ` Peter Lieven
2013-04-05  0:50   ` mdroth
2013-04-04 12:06 ` Paolo Bonzini
2013-04-05 15:06 ` mdroth

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=1364939142-30066-37-git-send-email-mdroth@linux.vnet.ibm.com \
    --to=mdroth@linux.vnet.ibm.com \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-stable@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).