lkml.org 
[lkml]   [2012]   [Sep]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 3/5] uprobes: Fix UPROBE_SKIP_SSTEP checks in handle_swbp()
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 situation since, especially on
> powerpc, we do emulate most instructions.

Yes. And even on x86, perhaps we should emulate at least pushf to
not expose TF set by uprobes.

Off-topic question... I am trying to understand if arch_uprobe_skip_sstep()
is correct on x86.

It doesn't update regs->ip. 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 ?

I compiled this program

int main(void)
{
asm volatile (".word 0x1f0f");
return 0;
}

and objdump reports:

000000000040047c <main>:
40047c: 0f 1f 31 nopl (%rcx)
40047f: c0 c3 90 rol $0x90,%bl

Could you explain?

Oleg.



\
 
 \ /
  Last update: 2012-09-15 17:41    [W:0.186 / U:0.844 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site