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

From: Sebastian Andrzej Siewior
Date: Thu Aug 02 2012 - 09:20:23 EST


On 08/02/2012 03:05 PM, Oleg Nesterov wrote:
I have no idea what DEBUGCTLMSR_BTF means without X86_EFLAGS_TF
though. And if gdb itself is TIF_SINGLESTEP'ed, it won't return
to userspace without report/schedule.

In the Manuel it is only described what happens together with the TF
bit. So one might think nothing. Userland can not read the bit back
however leaking it does not look right.

But, yes sure! this doesn't look right and this is the source of
other problems, and this is why I started this thread.

If the tracee task runs

In the scenario I tried to describe above, the tracee does _not_ run.

gdb switches to _another_ X86_EFLAGS_TF task before the tracee is resumed.

From the link above,

We have the GDB process and the (stopped) tracee T. And we have
another task X
^^^^^^^^^^^^^^

Yes that is correct. Let me try to figure out how to plumb that leak
and fix this before playing with it further.


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/