summaryrefslogtreecommitdiff
path: root/src/kern/linux
diff options
context:
space:
mode:
authorLluc Alvarez <lluc.alvarez@bsc.es>2012-09-21 04:51:18 -0400
committerLluc Alvarez <lluc.alvarez@bsc.es>2012-09-21 04:51:18 -0400
commitc8de7654682dd8f5efa920f79d6041f2cac2fbeb (patch)
tree4076d89b387c27a66e4403a341dae3cc3c807c0a /src/kern/linux
parent9cd0c5ecc896690d923d443f3d419a05aec79ac1 (diff)
downloadgem5-c8de7654682dd8f5efa920f79d6041f2cac2fbeb.tar.xz
SE: Ignore FUTEX_PRIVATE_FLAG of sys_futex
This patch ignores the FUTEX_PRIVATE_FLAG of the sys_futex system call in SE mode. With this patch, when sys_futex with the options FUTEX_WAIT_PRIVATE or FUTEX_WAKE_PRIVATE is emulated, the FUTEX_PRIVATE_FLAG is ignored and so their behaviours are the regular FUTEX_WAIT and FUTEX_WAKE. Emulating FUTEX_WAIT_PRIVATE and FUTEX_WAKE_PRIVATE as if they were non-private is safe from a functional point of view. The FUTEX_PRIVATE_FLAG does not change the semantics of the futex, it's just a mechanism to improve performance under certain circunstances that can be ignored in SE mode.
Diffstat (limited to 'src/kern/linux')
-rw-r--r--src/kern/linux/linux.hh1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/kern/linux/linux.hh b/src/kern/linux/linux.hh
index 1d52ff323..1fcd80444 100644
--- a/src/kern/linux/linux.hh
+++ b/src/kern/linux/linux.hh
@@ -225,6 +225,7 @@ class Linux : public OperatingSystem
static const unsigned TGT_FUTEX_WAKE = 1;
static const unsigned TGT_EAGAIN = 11;
static const unsigned TGT_EWOULDBLOCK = TGT_EAGAIN;
+ static const unsigned TGT_FUTEX_PRIVATE_FLAG = 128;
}; // class Linux