On 10/21, Ananth N Mavinakayanahalli wrote: > > On Fri, Oct 21, 2011 at 08:12:07PM +0530, Srikar Dronamraju wrote: > > > > +void abort_xol(struct pt_regs *regs) > > > +{ > > > + // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! > > > + // !!! Dear Srikar and Ananth, please implement me !!! > > > + // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! > > > + struct uprobe_task *utask = current->utask; > > > + regs->ip = utask->vaddr; > > > > nit: > > Shouldnt we be setting the ip to the next instruction after this > > instruction? > > No, since we should re-execute the original instruction Yes, > after removing > the breakpoint. No? we should not remove this uprobe? > Also, wrt ip being set to the next instruction on a breakpoint hit, > that's arch specific. Probably yes, I am not sure. But: > For instance, on x86, it points to the next > instruction, No? /** * get_uprobe_bkpt_addr - compute address of bkpt given post-bkpt regs * @regs: Reflects the saved state of the task after it has hit a breakpoint * instruction. * Return the address of the breakpoint instruction. */ unsigned long __weak get_uprobe_bkpt_addr(struct pt_regs *regs) { return instruction_pointer(regs) - UPROBES_BKPT_INSN_SIZE; } Yes, initially regs->ip points to the next insn after int3, but utask->vaddr == get_uprobe_bkpt_addr() == addr of int3. Right? > while on powerpc, the nip points to the breakpoint vaddr > at the time of exception. I think get_uprobe_bkpt_addr() should be consistent on every arch. That is why (I think) it is __weak. Anyway, abort_xol() has to be arch-specific. Oleg. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>