All of lore.kernel.org
 help / color / mirror / Atom feed
From: panand@redhat.com (Pratyush Anand)
To: linux-arm-kernel@lists.infradead.org
Subject: Query: ARM64: Behavior of el1_dbg exception while executing el0_dbg
Date: Thu, 08 Jan 2015 18:45:58 +0530	[thread overview]
Message-ID: <54AE830E.1090000@redhat.com> (raw)

Hi All,

I am trying to test following scenario, which seems valid to me. But I 
am very new to ARM64 as well as to debugging tools, so seeking expert's 
comment here.

-- I have inserted a kprobe to the function uprobe_breakpoint_handler 
which is called from elo_dbg 
(el0_dbg->do_debug_exception->brk_handler->call_break_hook->uprobe_breakpoint_handler)

-- kprobe is enabled.

-- an uprobe is inserted into a test application and enabled.

So, when uprobe is enabled and test code execution reaches to probe 
instruction, it executes uprobe breakpoint instruction and el0_dbg 
exception is raised.

When control reaches to start of uprobe_breakpoint_handler and it 
executes first instruction (which has been replaced with a kprobe 
breakpoint instruction), el1_dbg exception is raised.

Further Call sequence goes like, 
el1_dbg->do_debug_exception->brk_handler->call_break_hook->kprobe_breakpoint_handler, 
and kprobe breakpoint handler does everything what it should have done.

After return from above (first) el1_dbg, second el1_dbg is raised for 
single steping of kprobe instruction, and instruction pointer does not 
matches with the kcb->ss_ctx.match_addr and so, kprobe_ss_hit fails, 
which is strange.

To debug it further, I examined ELR_EL1 value in el1_dbg after execution 
of first el1_dbg, and it was fffffdfffc000004.

So, my question is how can instruction pointer has a value 
fffffe0000092470(which is actually el1_inv + 0x4) when second el1_dbg is 
received?

Am I missing something or trying something which is not supported by ARM64?


I have put some printk in the code. You can have a detailed view of 
debug code and print log here:

https://github.com/pratyushanand/linux.git

branch: 
ml_arm64_uprobe_devel_debug_kprobe_insertion_at_uprobe_breakpoint_handler


~Pratyush

             reply	other threads:[~2015-01-08 13:15 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-08 13:15 Pratyush Anand [this message]
2015-01-08 15:49 ` Query: ARM64: Behavior of el1_dbg exception while executing el0_dbg William Cohen
2015-01-08 17:19   ` Pratyush Anand
2015-01-08 16:23 ` Will Deacon
2015-01-08 17:28   ` Pratyush Anand
2015-01-09 15:46     ` Will Deacon
2015-01-09 17:13       ` Pratyush Anand
2015-01-09 17:13         ` Pratyush Anand
2015-01-12 17:30         ` Will Deacon
2015-01-12 17:30           ` Will Deacon
2015-01-12 19:25           ` William Cohen
2015-01-12 19:25             ` William Cohen
2015-01-13  6:46           ` Pratyush Anand
2015-01-13  6:46             ` Pratyush Anand
2015-01-13 15:52             ` Catalin Marinas
2015-01-13 15:52               ` Catalin Marinas
2015-01-13 17:53               ` Pratyush Anand
2015-01-13 17:53                 ` Pratyush Anand
2015-01-15 16:47                 ` Pratyush Anand
2015-01-15 16:47                   ` Pratyush Anand
2015-01-16 12:00                   ` Pratyush Anand
2015-01-16 12:00                     ` Pratyush Anand
2015-01-16 14:55                     ` Pratyush Anand
2015-01-16 14:55                       ` Pratyush Anand
2015-01-16 16:22                     ` Will Deacon
2015-01-16 16:22                       ` Will Deacon
2015-01-19  6:10                       ` Pratyush Anand
2015-01-19  6:10                         ` Pratyush Anand
2015-01-19 10:11                         ` Will Deacon
2015-01-19 10:11                           ` Will Deacon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=54AE830E.1090000@redhat.com \
    --to=panand@redhat.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.