[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 21/28] linux-user: Add debug code to exercise res
From: |
Peter Maydell |
Subject: |
[Qemu-devel] [PATCH v2 21/28] linux-user: Add debug code to exercise restarting system calls |
Date: |
Thu, 12 May 2016 18:47:45 +0100 |
From: Timothy E Baldwin <address@hidden>
If DEBUG_ERESTARTSYS is set restart all system calls once. This
is pure debug code for exercising the syscall restart code paths
in the per-architecture cpu main loops.
Signed-off-by: Timothy Edward Baldwin <address@hidden>
Message-id: address@hidden
[PMM: Add comment and a commented-out #define next to the commented-out
generic DEBUG #define; remove the check on TARGET_USE_ERESTARTSYS;
tweak comment message]
Reviewed-by: Peter Maydell <address@hidden>
Signed-off-by: Peter Maydell <address@hidden>
---
linux-user/syscall.c | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index a4a1af7..ced519d 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -110,6 +110,10 @@ int __clone2(int (*fn)(void *), void *child_stack_base,
CLONE_PARENT_SETTID | CLONE_CHILD_SETTID | CLONE_CHILD_CLEARTID)
//#define DEBUG
+/* Define DEBUG_ERESTARTSYS to force every syscall to be restarted
+ * once. This exercises the codepaths for restart.
+ */
+//#define DEBUG_ERESTARTSYS
//#include <linux/msdos_fs.h>
#define VFAT_IOCTL_READDIR_BOTH _IOR('r', 1, struct
linux_dirent [2])
@@ -5871,6 +5875,21 @@ abi_long do_syscall(void *cpu_env, int num, abi_long
arg1,
struct statfs stfs;
void *p;
+#if defined(DEBUG_ERESTARTSYS)
+ /* Debug-only code for exercising the syscall-restart code paths
+ * in the per-architecture cpu main loops: restart every syscall
+ * the guest makes once before letting it through.
+ */
+ {
+ static int flag;
+
+ flag = !flag;
+ if (flag) {
+ return -TARGET_ERESTARTSYS;
+ }
+ }
+#endif
+
#ifdef DEBUG
gemu_log("syscall %d", num);
#endif
--
1.9.1
- [Qemu-devel] [PATCH v2 23/28] linux-user: Use safe_syscall for read and write system calls, (continued)
- [Qemu-devel] [PATCH v2 10/28] linux-user: Support for restarting system calls for SPARC targets, Peter Maydell, 2016/05/12
- [Qemu-devel] [PATCH v2 26/28] linux-user: Use safe_syscall for execve syscall, Peter Maydell, 2016/05/12
- [Qemu-devel] [PATCH v2 28/28] linux-user: Use safe_syscall for futex syscall, Peter Maydell, 2016/05/12
- [Qemu-devel] [PATCH v2 21/28] linux-user: Add debug code to exercise restarting system calls,
Peter Maydell <=
- Re: [Qemu-devel] [PATCH v2 00/28] linux-user: fix race between signals and syscalls, Peter Maydell, 2016/05/23
- Re: [Qemu-devel] [PATCH v2 00/28] linux-user: fix race between signals and syscalls, Riku Voipio, 2016/05/24