From: dave.long@linaro.org (David Long)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3 1/5] arm64: Kprobes with single stepping support
Date: Wed, 19 Nov 2014 09:55:22 -0500 [thread overview]
Message-ID: <546CAF5A.4060901@linaro.org> (raw)
In-Reply-To: <20141119112553.GC15985@arm.com>
On 11/19/14 06:25, Will Deacon wrote:
> On Wed, Nov 19, 2014 at 11:21:24AM +0000, Sandeepa Prabhu wrote:
>> On 18 November 2014 20:26, Will Deacon <will.deacon@arm.com> wrote:
>>
>>> One thing I noticed looking through this patch is that we're effectively
>>> reinventing a bunch of the instruction decoding logic that we already have
>>> in the kernel (introduced since Sandeepa last sent his patch).
>>>
>>> Could you take a look at include/asm/insn.h and kernel/insn.c please, and
>>> see if you can at least consolidate some of this? Some of it should be easy
>>> (i.e. reusing masks, using existing #defines to construct BRK encodings),
>>> but I appreciate there may be places where kprobes needs to add extra bits,
>>> in which case I'd really like to keep this all together if at all possible.
>>>
>>> We're currently in a position where the module loader, BPF jit, ftrace and
>>> the proposed alternative patching scheme are all using the same instruction
>>> manipulation functions, so we should try to continue that trend if we can.
>> Will,
>>
>> kernel/insn.c support generating instruction encodings(forming opcodes
>> with given specifications), so for kprobes, only BRK encoding can use
>> this mechanism.
>> For instruction simulation, the instruction behavior should be
>> simulated on saved pt_regs, which is not supported on insn.c routines,
>> so still need probes-simulate-insn.c. Please point me if I am missing
>> something here.
>
> I was thinking of the magic hex numbers in the kprobes decode tables, which
> seem to correspond directly to the instruction classes described in insn.c
>
> Keeping the actual emulation code separate makes sense.
>
> Will
Of course that follows the model of the much more complex arm32
kprobes/uprobes decoding. I can have a go at replacing it with insn.c
calls.
-dl
WARNING: multiple messages have this Message-ID (diff)
From: David Long <dave.long@linaro.org>
To: Will Deacon <will.deacon@arm.com>,
Sandeepa Prabhu <sandeepa.prabhu@linaro.org>
Cc: "linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
Russell King <linux@arm.linux.org.uk>,
William Cohen <wcohen@redhat.com>,
Catalin Marinas <Catalin.Marinas@arm.com>,
"Jon Medhurst (Tixy)" <tixy@linaro.org>,
Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>,
Ananth N Mavinakayanahalli <ananth@in.ibm.com>,
Anil S Keshavamurthy <anil.s.keshavamurthy@intel.com>,
"davem@davemloft.net" <davem@davemloft.net>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v3 1/5] arm64: Kprobes with single stepping support
Date: Wed, 19 Nov 2014 09:55:22 -0500 [thread overview]
Message-ID: <546CAF5A.4060901@linaro.org> (raw)
In-Reply-To: <20141119112553.GC15985@arm.com>
On 11/19/14 06:25, Will Deacon wrote:
> On Wed, Nov 19, 2014 at 11:21:24AM +0000, Sandeepa Prabhu wrote:
>> On 18 November 2014 20:26, Will Deacon <will.deacon@arm.com> wrote:
>>
>>> One thing I noticed looking through this patch is that we're effectively
>>> reinventing a bunch of the instruction decoding logic that we already have
>>> in the kernel (introduced since Sandeepa last sent his patch).
>>>
>>> Could you take a look at include/asm/insn.h and kernel/insn.c please, and
>>> see if you can at least consolidate some of this? Some of it should be easy
>>> (i.e. reusing masks, using existing #defines to construct BRK encodings),
>>> but I appreciate there may be places where kprobes needs to add extra bits,
>>> in which case I'd really like to keep this all together if at all possible.
>>>
>>> We're currently in a position where the module loader, BPF jit, ftrace and
>>> the proposed alternative patching scheme are all using the same instruction
>>> manipulation functions, so we should try to continue that trend if we can.
>> Will,
>>
>> kernel/insn.c support generating instruction encodings(forming opcodes
>> with given specifications), so for kprobes, only BRK encoding can use
>> this mechanism.
>> For instruction simulation, the instruction behavior should be
>> simulated on saved pt_regs, which is not supported on insn.c routines,
>> so still need probes-simulate-insn.c. Please point me if I am missing
>> something here.
>
> I was thinking of the magic hex numbers in the kprobes decode tables, which
> seem to correspond directly to the instruction classes described in insn.c
>
> Keeping the actual emulation code separate makes sense.
>
> Will
Of course that follows the model of the much more complex arm32
kprobes/uprobes decoding. I can have a go at replacing it with insn.c
calls.
-dl
next prev parent reply other threads:[~2014-11-19 14:55 UTC|newest]
Thread overview: 104+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-18 6:32 [PATCH v3 0/5] ARM64: Add kernel probes(Kprobes) support David Long
2014-11-18 6:32 ` David Long
2014-11-18 6:32 ` [PATCH v3 1/5] arm64: Kprobes with single stepping support David Long
2014-11-18 6:32 ` David Long
2014-11-18 13:28 ` Jon Medhurst (Tixy)
2014-11-18 13:28 ` Jon Medhurst (Tixy)
2014-11-21 4:28 ` David Long
2014-11-21 4:28 ` David Long
2014-11-18 14:38 ` William Cohen
2014-11-18 14:38 ` William Cohen
2014-11-18 14:39 ` William Cohen
2014-11-18 14:39 ` William Cohen
2014-11-18 14:56 ` Will Deacon
2014-11-18 14:56 ` Will Deacon
2014-11-19 11:21 ` Sandeepa Prabhu
2014-11-19 11:21 ` Sandeepa Prabhu
2014-11-19 11:25 ` Will Deacon
2014-11-19 11:25 ` Will Deacon
2014-11-19 14:55 ` David Long [this message]
2014-11-19 14:55 ` David Long
2014-11-20 5:10 ` Sandeepa Prabhu
2014-11-20 5:10 ` Sandeepa Prabhu
2014-11-26 6:46 ` David Long
2014-11-26 6:46 ` David Long
2014-11-26 10:09 ` Will Deacon
2014-11-26 10:09 ` Will Deacon
2014-12-22 10:10 ` Pratyush Anand
2014-12-22 10:10 ` Pratyush Anand
2014-11-18 6:32 ` [PATCH v3 2/5] arm64: Kprobes instruction simulation support David Long
2014-11-18 6:32 ` David Long
2014-11-18 14:43 ` William Cohen
2014-11-18 14:43 ` William Cohen
2014-11-18 6:32 ` [PATCH v3 3/5] arm64: Add kernel return probes support(kretprobes) David Long
2014-11-18 6:32 ` David Long
2014-11-18 14:50 ` William Cohen
2014-11-18 14:50 ` William Cohen
2014-11-18 6:32 ` [PATCH v3 4/5] kprobes: Add arm64 case in kprobe example module David Long
2014-11-18 6:32 ` David Long
2014-11-18 6:32 ` [PATCH v3 5/5] arm64: Add HAVE_REGS_AND_STACK_ACCESS_API feature David Long
2014-11-18 6:32 ` David Long
2014-11-18 14:52 ` Will Deacon
2014-11-18 14:52 ` Will Deacon
2014-11-20 7:20 ` Masami Hiramatsu
2014-11-20 7:20 ` Masami Hiramatsu
2014-11-21 6:16 ` David Long
2014-11-21 6:16 ` David Long
2014-11-20 15:02 ` [PATCH v3 0/5] ARM64: Add kernel probes(Kprobes) support Steve Capper
2014-11-20 15:02 ` Steve Capper
2014-11-26 8:33 ` Masami Hiramatsu
2014-11-26 8:33 ` Masami Hiramatsu
2014-11-26 10:03 ` Steve Capper
2014-11-26 10:03 ` Steve Capper
2014-11-26 17:46 ` David Long
2014-11-26 17:46 ` David Long
2014-11-26 18:59 ` Steve Capper
2014-11-26 18:59 ` Steve Capper
2014-11-27 6:07 ` Masami Hiramatsu
2014-11-27 6:07 ` Masami Hiramatsu
2014-11-28 16:01 ` Steve Capper
2014-11-28 16:01 ` Steve Capper
2014-12-01 9:37 ` Masami Hiramatsu
2014-12-01 9:37 ` Re: " Masami Hiramatsu
2014-12-02 19:27 ` William Cohen
2014-12-02 19:27 ` William Cohen
2014-12-02 20:00 ` William Cohen
2014-12-02 20:00 ` William Cohen
2014-12-03 3:36 ` Masami Hiramatsu
2014-12-03 3:36 ` Masami Hiramatsu
2014-12-03 14:54 ` William Cohen
2014-12-03 14:54 ` William Cohen
2014-12-03 22:54 ` David Long
2014-12-03 22:54 ` David Long
2014-12-04 0:02 ` David Long
2014-12-04 0:02 ` David Long
2014-12-04 1:16 ` William Cohen
2014-12-04 1:16 ` William Cohen
2014-12-04 2:48 ` David Long
2014-12-04 2:48 ` David Long
2014-12-04 10:21 ` Steve Capper
2014-12-04 10:21 ` Steve Capper
2014-12-04 10:43 ` Masami Hiramatsu
2014-12-04 10:43 ` Masami Hiramatsu
2014-12-04 11:29 ` Steve Capper
2014-12-04 11:29 ` Steve Capper
2014-12-04 11:53 ` Masami Hiramatsu
2014-12-04 11:53 ` Masami Hiramatsu
2014-12-09 13:33 ` Steve Capper
2014-12-09 13:33 ` Steve Capper
2014-12-09 14:27 ` David Long
2014-12-09 14:27 ` David Long
2014-12-10 16:38 ` Steve Capper
2014-12-10 16:38 ` Steve Capper
2014-12-12 22:42 ` David Long
2014-12-12 22:42 ` David Long
2014-12-12 23:10 ` Steve Capper
2014-12-12 23:10 ` Steve Capper
2014-12-15 5:58 ` Masami Hiramatsu
2014-12-15 5:58 ` Masami Hiramatsu
2014-12-15 6:29 ` David Long
2014-12-15 6:29 ` David Long
2014-12-05 5:08 ` William Cohen
2014-12-05 5:08 ` William Cohen
2014-11-27 5:13 ` Masami Hiramatsu
2014-11-27 5:13 ` Masami Hiramatsu
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=546CAF5A.4060901@linaro.org \
--to=dave.long@linaro.org \
--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.