On 08/01, Sebastian Andrzej Siewior wrote: > > On 08/01/2012 03:01 PM, Oleg Nesterov wrote: >> Lets ignore uprobes which needs the changes anyway. This is >> only used by ptrace and the task is stopped. So, unless I missed >> something obvious, this update_debugctlmsr() is simply unneeded, >> __switch_to/__switch_to_xtra should notice _TIF_BLOCKSTEP and do >> update_debugctlmsr(DEBUGCTLMSR_BTF). > > It looks like it unless a processes ptraces itself (which does not make > much sense anyway).
and forbidden ;) See ptrace_attach()->same_thread_group(). >> But, worse, isn't it wrong? Suppose that debugger switches to >> another TIF_SINGLESTEP&& !TIF_BLOCKSTEP task, in this case >> we "leak" DEBUGCTLMSR_BTF, no? > > __switch_to_xtra() should notice the difference in the TIF_BLOCKSTEP > flag and disable it. And how it can notice the difference if there is no difference? (unless, of course debugger is TIF_BLOCKSTEP'ed). Oleg. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/