On Sun, 2008-08-03 at 19:50 -0700, Roland McGrath wrote:
[...]
For global tracing, those checks would be:
if ((current-utrace_flags | utrace_global_flags) mask) slow path;
The cost is now two or three instructions with one load. It would
increase to four or five
Hi -
The alternative I considered is the nonexistence of global tracing
support, thus no utrace_global_flags test in the syscall fast path.
It will never be in the fast path. It will always require
TIF_SYSCALL_TRACE to bet set on each thread, which means the slow path.
[...]
OK, I must
It will never be in the fast path. It will always require
TIF_SYSCALL_TRACE to bet set on each thread, which means the slow path.
[...]
OK, I must have misunderstood your original posting:
# [...]
# d. Kernel already has checks here, so almost free.
This refers to all the other
Actually, this point is where I'm stuck on these weeks.
If we add marker or tracepoint to trace every syscalls,
we might have to put it in the tracehook or audit and set
TIF_SYSCALL_TRACE for every process, or put tracepoint
in the syscall entrance/exit asm-code and check another
flag.
* Create another global variable utrace_possible_flags. Each bit
is set only if there is either a global tracer for the event,
or at least one tracer in the system (keep a global counter).
* Always check utrace_possible_flags first, and if it is set
(thus requesting the slow
My initial opinion was that you were moving away from RCU to also rid
the task_struct-utrace assertion failure, which IIRC from some of the
investigations at the time, were mostly for RCU lifetime reasons.
That assertion failure (BUG_ON) was due to an internal bug.
It was entirely for buggy
Hi,
Roland McGrath wrote:
Actually, this point is where I'm stuck on these weeks.
If we add marker or tracepoint to trace every syscalls,
we might have to put it in the tracehook or audit and set
TIF_SYSCALL_TRACE for every process, or put tracepoint
in the syscall entrance/exit asm-code