Re: [PATCH 3/5] uprobes: Fix UPROBE_SKIP_SSTEP checks in handle_swbp()

2012-09-29 Thread Oleg Nesterov
On 09/24, Oleg Nesterov wrote: > > Anyway, > > > for example > > 0f 1f 40 00 > > OK, thanks, objdump reports "nopl 0x0(%rax)", looks fine. > > But. I do not see how __skip_sstep() can handle this case correctly. > Not only it should update regs->ip afaics, it should also account 2 > extra bytes _af

Re: [PATCH 3/5] uprobes: Fix UPROBE_SKIP_SSTEP checks in handle_swbp()

2012-09-24 Thread Oleg Nesterov
Srikar, sorry for delay, somehow I missed this email. And I am still confused... On 09/20, Srikar Dronamraju wrote: > > * Oleg Nesterov [2012-09-18 18:07:38]: > > > > > I compiled this program > > > > > > > > int main(void) > > > > { > > > > asm volatile (".word 0

Re: [PATCH 3/5] uprobes: Fix UPROBE_SKIP_SSTEP checks in handle_swbp()

2012-09-20 Thread Srikar Dronamraju
* Oleg Nesterov [2012-09-18 18:07:38]: > > > > > Probably this is fine, at least this is > > > fine if it finds "nop" eventually. But I can't undestand what > > > "0x66* { 0x90 | 0x0f 0x1f | 0x0f 0x19 | 0x87 0xc0 }" means. > > > OK, 0x66 and 0x90 are clear. But, say, 0x0f 0x1f ? > > > > we skip i

Re: [PATCH 3/5] uprobes: Fix UPROBE_SKIP_SSTEP checks in handle_swbp()

2012-09-20 Thread Srikar Dronamraju
* Oleg Nesterov [2012-09-14 19:15:57]: > If handle_swbp()->add_utask() fails but UPROBE_SKIP_SSTEP is set, > cleanup_ret: path do not restart the insn, this is wrong. Remove > this check and add the additional label for can_skip_sstep() = T > case. > > Note also that UPROBE_SKIP_SSTEP can be fal

Re: [PATCH 3/5] uprobes: Fix UPROBE_SKIP_SSTEP checks in handle_swbp()

2012-09-18 Thread Oleg Nesterov
On 09/17, Srikar Dronamraju wrote: > > * Oleg Nesterov [2012-09-15 17:01:20]: > > > Off-topic question... I am trying to understand if arch_uprobe_skip_sstep() > > is correct on x86. > > > > It doesn't update regs->ip. > > Right. we need to adjust for the size of the instruction. > > > Probably th

Re: [PATCH 3/5] uprobes: Fix UPROBE_SKIP_SSTEP checks in handle_swbp()

2012-09-17 Thread Srikar Dronamraju
* Oleg Nesterov [2012-09-15 17:01:20]: > On 09/15, Ananth N Mavinakayanahalli wrote: > > > > On Fri, Sep 14, 2012 at 07:15:57PM +0200, Oleg Nesterov wrote: > > > > > > Note: probably we should rename "skip" to "emulate" and I think > > > that "clear UPROBE_SKIP_SSTEP" should be moved to arch_can_

Re: [PATCH 3/5] uprobes: Fix UPROBE_SKIP_SSTEP checks in handle_swbp()

2012-09-15 Thread Oleg Nesterov
On 09/15, Ananth N Mavinakayanahalli wrote: > > On Fri, Sep 14, 2012 at 07:15:57PM +0200, Oleg Nesterov wrote: > > > > Note: probably we should rename "skip" to "emulate" and I think > > that "clear UPROBE_SKIP_SSTEP" should be moved to arch_can_skip. > > Agree. emulate is more accurate in this sit

Re: [PATCH 3/5] uprobes: Fix UPROBE_SKIP_SSTEP checks in handle_swbp()

2012-09-15 Thread Ananth N Mavinakayanahalli
On Fri, Sep 14, 2012 at 07:15:57PM +0200, Oleg Nesterov wrote: > If handle_swbp()->add_utask() fails but UPROBE_SKIP_SSTEP is set, > cleanup_ret: path do not restart the insn, this is wrong. Remove > this check and add the additional label for can_skip_sstep() = T > case. > > Note also that UPROBE

[PATCH 3/5] uprobes: Fix UPROBE_SKIP_SSTEP checks in handle_swbp()

2012-09-14 Thread Oleg Nesterov
If handle_swbp()->add_utask() fails but UPROBE_SKIP_SSTEP is set, cleanup_ret: path do not restart the insn, this is wrong. Remove this check and add the additional label for can_skip_sstep() = T case. Note also that UPROBE_SKIP_SSTEP can be false positive, we simply can not trust it unless arch_u