Re: global tracing

2008-08-06 Thread Petr Tesarik
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

Re: global tracing

2008-08-06 Thread Frank Ch. Eigler
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

Re: global tracing

2008-08-06 Thread Roland McGrath
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

Re: global tracing

2008-08-06 Thread Roland McGrath
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.

Re: global tracing

2008-08-06 Thread Roland McGrath
* 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

Re: RCU, reference counts

2008-08-06 Thread Roland McGrath
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

Re: global tracing

2008-08-06 Thread Masami Hiramatsu
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