Re: [PATCH] uprobes: don't enable/disable signle step if the userdid it

From: Oleg Nesterov
Date: Fri Jul 27 2012 - 14:08:04 EST


On 07/27, Sebastian Andrzej Siewior wrote:
>
> On 07/26/2012 07:31 PM, Oleg Nesterov wrote:
>> Well. I agree, this needs changes. To begin with, uprobe should avoid
>> user_enable_single_step() which does access_process_vm(). And I suspect
>> uprobes have the problems with TIF_FORCED_TF logic.
>
> Why? Shouldn't wee keep the trap flag if the instruction on which we
> placed the uprobe activates it?

Yes. But user_enable_single_step() is not the right interface.

>> But I am not sure about this patch...
>>
>> On 07/26, Sebastian Andrzej Siewior wrote:
>>>
>>> @@ -1528,7 +1528,10 @@ static void handle_swbp(struct pt_regs *regs)
>>>
>>> utask->state = UTASK_SSTEP;
>>> if (!pre_ssout(uprobe, regs, bp_vaddr)) {
>>> - user_enable_single_step(current);
>>> + if (test_tsk_thread_flag(current, TIF_SINGLESTEP))
>>> + uprobe->flags |= UPROBE_USER_SSTEP;
>>> + else
>>> + user_enable_single_step(current);
>>
>> This is x86 specific, TIF_SINGLESTEP is not defined on every arch.
>
> It is not defined on every arch but I wouldn't say it is 86 specific.
> From the architectures which have user_enable_single_step() defined I
> see

But we do not need TIF_SINGLESTEP. At all. Again, this is ptrace thing
connected to user_enable_single_step().

Sebastian, I am sorry for being terse, I'll write another email later.

Oleg.

--
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/