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. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/