Messages in this thread | | | Date | Wed, 24 Oct 2012 20:52:30 +0200 | From | Oleg Nesterov <> | Subject | Re: lots of suspicious RCU traces |
| |
On 10/24, Sergey Senozhatsky wrote: > > On (10/24/12 20:06), Oleg Nesterov wrote: > > On 10/24, Sergey Senozhatsky wrote: > > > > > > small question, > > > > > > ptrace_notify() and forward calls are able to both indirectly and directly call schedule(), > > > /* direct call from ptrace_stop()*/, > > > should, in this case, rcu_user_enter() be called before tracehook_report_syscall_exit(regs, step) > > > and ptrace chain? > > > > Well, I don't really understand this magic... but why? > > > > My understanding is (I may be wrong)
Oh, I bet I have much more chances to be wrong ;)
> that we can schedule() from ptrace chain to
I don't understand how ptrace chain differs from, say, audit_syscall_exit(). There is nothing special in ptrace_stop() in this respect.
> some arbitrary task, which will continue its execution from the point where RCU assumes > CPU as not idle, while CPU in fact still in idle state -- no one said rcu_idle_exit()
confused... of course it would be wrong if syscall_trace_leave() is called when CPU is considered idle,
> if so, does the same apply to in_user?
Not sure we understand each other. But I believe that ->in_user should be already false when syscall_trace_leave() is called.
Oleg.
| |