Re: Q: user_enable_single_step() && update_debugctlmsr()

From: Sebastian Andrzej Siewior
Date: Wed Aug 01 2012 - 09:54:47 EST


On 08/01/2012 03:46 PM, Oleg Nesterov wrote:

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).

Yes. enable_step() sets DEBUGCTLMSR_BTF along with TIF_BLOCKSTEP. kprobes checks the same flag before touching DEBUGCTLMSR_BTF.


Oleg.

Sebastian
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/