Re: [PATCH 2/2] [POWERPC] uprobes: powerpc port
flat view
From: Ananth N Mavinakayanahalli <hidden>
Date: 2012-06-08 09:21:13
Also in:
lkml
On Fri, Jun 08, 2012 at 04:38:17PM +1000, Michael Ellerman wrote:
On Fri, 2012-06-08 at 11:49 +0530, Ananth N Mavinakayanahalli wrote:quoted
On Fri, Jun 08, 2012 at 04:17:44PM +1000, Michael Ellerman wrote:quoted
On Fri, 2012-06-08 at 11:31 +0530, Ananth N Mavinakayanahalli wrote:quoted
On Fri, Jun 08, 2012 at 03:51:54PM +1000, Michael Ellerman wrote:quoted
On Fri, 2012-06-08 at 10:06 +0530, Ananth N Mavinakayanahalli wrote:But MSR_PR=1 and hence emulate_step() will return -1 and hence we will end up single-stepping using user_enable_single_step(). Same with rfid.Right. But that was exactly Jim's point, you may be asked to emulate those instructions even though you wouldn't expect to see them in userspace code, so you need to handle it. Luckily it looks like emulate_step() will do the right thing for you. It'd be good to test it to make 100% sure.Sure. Will add that check and send v2.Sorry I didn't mean add a test in the code, I meant construct a test case to confirm that it works as expected.
Michael, I just hand-coded the instr to emulate_step() and here are the results: MSR_PR is set insn = 7c600124, ret = 0 /* mtmsr */ insn = 7c600164, ret = 0 /* mtmsrd */ insn = 4c000024, ret = -1 /* rfid */ insn = 4c000064, ret = 0 /* rfi */ Also verified that standalone programs with those instructions in inline asm will die with a SIGILL. So, for mtmsr, mtmsrd and rfi, we have to single-step them which will result in a SIGILL in turn. Ananth