From: dave.long@linaro.org (David Long)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 09/13] ARM: Disable jprobe selftests in thumb kernels
Date: Sun, 10 Nov 2013 17:57:06 -0500 [thread overview]
Message-ID: <52800F42.5060904@linaro.org> (raw)
In-Reply-To: <1383845166.3401.77.camel@linaro1.home>
On 11/07/13 12:26, Jon Medhurst (Tixy) wrote:
> On Tue, 2013-10-15 at 17:04 -0400, David Long wrote:
>> From: "David A. Long" <dave.long@linaro.org>
>>
>> jprobe kernel selftests are not supported for thumb kernels. Conditionally
>> disable them in the kernel kprobes-test module.
>
> I don't think it's fair to say they aren't supported, it's just that the
> implementation of jprobes and/or symbol lookup has bugs on Thumb kernels
> which the test code is finding, see
> http://lists.infradead.org/pipermail/linux-arm-kernel/2011-August/063026.html
>
> Note, the current code works OK if the function being probed is in a
> loadable module (which is why I didn't spot the problem when doing the
> original Thumb kprobes work).
>
> Now I admit that having the tests always bombing out because of this
> hinders testing of kprobes, but simply disabling the test is just
> burying this long standing problem even more. So what do people think
> about something like the change below, to let other tests get run but
> make the overall test still fail...?
>
> --- a/arch/arm/kernel/kprobes-test.c
> +++ b/arch/arm/kernel/kprobes-test.c
> @@ -221,6 +221,7 @@ static int pre_handler_called;
> static int post_handler_called;
> static int jprobe_func_called;
> static int kretprobe_handler_called;
> +static int tests_failed;
>
> #define FUNC_ARG1 0x12345678
> #define FUNC_ARG2 0xabcdef
> @@ -457,6 +458,13 @@ static int run_api_tests(long (*func)(long, long))
>
> pr_info(" jprobe\n");
> ret = test_jprobe(func);
> +#if defined(CONFIG_THUMB2_KERNEL) && !defined(MODULE)
> + if (ret == -EINVAL) {
> + pr_err("FAIL: Known longtime bug with jprobe on Thumb kernels");
> + tests_failed = ret;
> + ret = 0;
> + }
> +#endif
> if (ret < 0)
> return ret;
>
> @@ -1667,6 +1675,8 @@ static int __init run_all_tests(void)
>
> out:
> if (ret == 0)
> + ret = tests_failed;
> + if (ret == 0)
> pr_info("Finished kprobe tests OK\n");
> else
> pr_err("kprobe tests failed\n");
>
>
>
>
Thanks for clarifying the problem Tixy. I agree we should try and allow
the tests to run for these more typical use cases where they do actually
work. I have tested your patch and I will use it in place of mine
unless there are strong objections.
-dl
WARNING: multiple messages have this Message-ID (diff)
From: David Long <dave.long@linaro.org>
To: "Jon Medhurst (Tixy)" <tixy@linaro.org>
Cc: linux-arm-kernel@lists.infradead.org,
Rabin Vincent <rabin@rab.in>, Oleg Nesterov <oleg@redhat.com>,
Srikar Dronamraju <srikar@linux.vnet.ibm.com>,
Ingo Molnar <mingo@redhat.com>,
linux-kernel@vger.kernel.org,
Dave Martin <dave.martin@linaro.org>
Subject: Re: [PATCH v2 09/13] ARM: Disable jprobe selftests in thumb kernels
Date: Sun, 10 Nov 2013 17:57:06 -0500 [thread overview]
Message-ID: <52800F42.5060904@linaro.org> (raw)
In-Reply-To: <1383845166.3401.77.camel@linaro1.home>
On 11/07/13 12:26, Jon Medhurst (Tixy) wrote:
> On Tue, 2013-10-15 at 17:04 -0400, David Long wrote:
>> From: "David A. Long" <dave.long@linaro.org>
>>
>> jprobe kernel selftests are not supported for thumb kernels. Conditionally
>> disable them in the kernel kprobes-test module.
>
> I don't think it's fair to say they aren't supported, it's just that the
> implementation of jprobes and/or symbol lookup has bugs on Thumb kernels
> which the test code is finding, see
> http://lists.infradead.org/pipermail/linux-arm-kernel/2011-August/063026.html
>
> Note, the current code works OK if the function being probed is in a
> loadable module (which is why I didn't spot the problem when doing the
> original Thumb kprobes work).
>
> Now I admit that having the tests always bombing out because of this
> hinders testing of kprobes, but simply disabling the test is just
> burying this long standing problem even more. So what do people think
> about something like the change below, to let other tests get run but
> make the overall test still fail...?
>
> --- a/arch/arm/kernel/kprobes-test.c
> +++ b/arch/arm/kernel/kprobes-test.c
> @@ -221,6 +221,7 @@ static int pre_handler_called;
> static int post_handler_called;
> static int jprobe_func_called;
> static int kretprobe_handler_called;
> +static int tests_failed;
>
> #define FUNC_ARG1 0x12345678
> #define FUNC_ARG2 0xabcdef
> @@ -457,6 +458,13 @@ static int run_api_tests(long (*func)(long, long))
>
> pr_info(" jprobe\n");
> ret = test_jprobe(func);
> +#if defined(CONFIG_THUMB2_KERNEL) && !defined(MODULE)
> + if (ret == -EINVAL) {
> + pr_err("FAIL: Known longtime bug with jprobe on Thumb kernels");
> + tests_failed = ret;
> + ret = 0;
> + }
> +#endif
> if (ret < 0)
> return ret;
>
> @@ -1667,6 +1675,8 @@ static int __init run_all_tests(void)
>
> out:
> if (ret == 0)
> + ret = tests_failed;
> + if (ret == 0)
> pr_info("Finished kprobe tests OK\n");
> else
> pr_err("kprobe tests failed\n");
>
>
>
>
Thanks for clarifying the problem Tixy. I agree we should try and allow
the tests to run for these more typical use cases where they do actually
work. I have tested your patch and I will use it in place of mine
unless there are strong objections.
-dl
next prev parent reply other threads:[~2013-11-10 22:57 UTC|newest]
Thread overview: 120+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-15 21:04 [PATCH v2 00/13] uprobes: Add uprobes support for ARM David Long
2013-10-15 21:04 ` David Long
2013-10-15 21:04 ` [PATCH v2 01/13] uprobes: move function declarations out of arch David Long
2013-10-15 21:04 ` David Long
2013-11-05 16:01 ` Oleg Nesterov
2013-11-05 16:01 ` Oleg Nesterov
2013-11-05 18:16 ` Oleg Nesterov
2013-11-05 18:16 ` Oleg Nesterov
2013-11-05 19:01 ` [PATCH] uprobes: Export write_opcode() as uprobe_write_opcode() Oleg Nesterov
2013-11-05 19:01 ` Oleg Nesterov
2013-11-05 19:55 ` David Long
2013-11-05 19:55 ` David Long
2013-11-05 19:13 ` [PATCH v2 01/13] uprobes: move function declarations out of arch David Long
2013-11-05 19:13 ` David Long
2013-10-15 21:04 ` [PATCH v2 02/13] uprobes: allow ignoring of probe hits David Long
2013-10-15 21:04 ` David Long
2013-10-19 17:02 ` Oleg Nesterov
2013-10-19 17:02 ` Oleg Nesterov
2013-10-22 3:45 ` David Long
2013-10-22 3:45 ` David Long
2013-10-22 11:25 ` Oleg Nesterov
2013-10-22 11:25 ` Oleg Nesterov
2013-10-22 23:56 ` David Long
2013-10-22 23:56 ` David Long
2013-10-28 18:54 ` Oleg Nesterov
2013-10-28 18:54 ` Oleg Nesterov
2013-10-30 21:11 ` David Long
2013-10-30 21:11 ` David Long
2013-10-15 21:04 ` [PATCH v2 03/13] uprobes: allow arch access to xol slot David Long
2013-10-15 21:04 ` David Long
2013-10-19 16:36 ` Oleg Nesterov
2013-10-19 16:36 ` Oleg Nesterov
2013-10-23 0:03 ` David Long
2013-10-23 0:03 ` David Long
2013-10-29 15:40 ` Oleg Nesterov
2013-10-29 15:40 ` Oleg Nesterov
2013-11-04 19:49 ` [PATCH] uprobes: introduce arch_uprobe->ixol Oleg Nesterov
2013-11-04 19:49 ` Oleg Nesterov
2013-11-04 21:25 ` David Long
2013-11-04 21:25 ` David Long
2013-11-05 16:04 ` David Long
2013-11-05 16:04 ` David Long
2013-11-05 18:01 ` Oleg Nesterov
2013-11-05 18:01 ` Oleg Nesterov
2013-11-05 18:45 ` David Long
2013-11-05 18:45 ` David Long
2013-10-15 21:04 ` [PATCH v2 04/13] uprobes: allow arch-specific initialization David Long
2013-10-15 21:04 ` David Long
2013-10-19 16:42 ` Oleg Nesterov
2013-10-19 16:42 ` Oleg Nesterov
2013-10-23 1:21 ` David Long
2013-10-23 1:21 ` David Long
2013-10-28 18:58 ` Oleg Nesterov
2013-10-28 18:58 ` Oleg Nesterov
2013-10-31 18:41 ` David Long
2013-10-31 18:41 ` David Long
2013-11-01 13:52 ` Oleg Nesterov
2013-11-01 13:52 ` Oleg Nesterov
2013-11-04 3:24 ` David Long
2013-11-04 3:24 ` David Long
2013-10-15 21:04 ` [PATCH v2 05/13] uprobes: add arch write opcode hook David Long
2013-10-15 21:04 ` David Long
2013-10-19 16:50 ` Oleg Nesterov
2013-10-19 16:50 ` Oleg Nesterov
2013-10-23 18:20 ` David Long
2013-10-23 18:20 ` David Long
2013-10-28 19:49 ` Oleg Nesterov
2013-10-28 19:49 ` Oleg Nesterov
2013-10-29 19:59 ` Oleg Nesterov
2013-10-29 19:59 ` Oleg Nesterov
2013-11-02 3:33 ` David Long
2013-11-02 3:33 ` David Long
2013-11-02 14:03 ` Oleg Nesterov
2013-11-02 14:03 ` Oleg Nesterov
2013-10-15 21:04 ` [PATCH v2 06/13] ARM: move shared uprobe/kprobe definitions into new include file David Long
2013-10-15 21:04 ` David Long
2013-10-15 21:04 ` [PATCH v2 07/13] ARM: move generic thumb instruction parsing code to new files for use by other features David Long
2013-11-13 17:09 ` Jon Medhurst (Tixy)
2013-11-13 17:09 ` Jon Medhurst (Tixy)
2013-11-14 14:13 ` David Long
2013-11-14 14:13 ` David Long
2013-10-15 21:04 ` [PATCH v2 08/13] ARM: use a function table for determining instruction interpreter actions David Long
2013-11-13 17:11 ` Jon Medhurst (Tixy)
2013-11-13 17:11 ` Jon Medhurst (Tixy)
2013-11-14 15:17 ` David Long
2013-11-14 15:17 ` David Long
2013-10-15 21:04 ` [PATCH v2 09/13] ARM: Disable jprobe selftests in thumb kernels David Long
2013-10-15 21:04 ` David Long
2013-11-07 17:26 ` Jon Medhurst (Tixy)
2013-11-07 17:26 ` Jon Medhurst (Tixy)
2013-11-10 22:57 ` David Long [this message]
2013-11-10 22:57 ` David Long
2013-10-15 21:04 ` [PATCH v2 10/13] kprobes: Remove uneeded kernel dependency on struct arch_specific_insn David Long
2013-10-15 21:04 ` David Long
2013-11-13 17:13 ` Jon Medhurst (Tixy)
2013-11-13 17:13 ` Jon Medhurst (Tixy)
2013-11-14 2:02 ` Masami Hiramatsu
2013-11-14 2:02 ` Masami Hiramatsu
2013-11-14 14:15 ` Jon Medhurst (Tixy)
2013-11-14 14:15 ` Jon Medhurst (Tixy)
2013-11-14 20:33 ` David Long
2013-11-14 20:33 ` David Long
2013-11-15 10:23 ` Masami Hiramatsu
2013-11-15 10:23 ` Masami Hiramatsu
2013-11-15 15:16 ` David Long
2013-11-15 15:16 ` David Long
2013-11-15 10:11 ` Masami Hiramatsu
2013-11-15 10:11 ` Re: " Masami Hiramatsu
2013-11-14 1:20 ` Masami Hiramatsu
2013-11-14 1:20 ` Masami Hiramatsu
2013-10-15 21:04 ` [PATCH v2 11/13] ARM: Finish renaming ARM kprobes APIs for sharing with uprobes David Long
2013-10-15 21:04 ` David Long
2013-11-13 17:16 ` Jon Medhurst (Tixy)
2013-11-13 17:16 ` Jon Medhurst (Tixy)
2013-11-15 15:45 ` David Long
2013-11-15 15:45 ` David Long
2013-10-15 21:04 ` [PATCH v2 12/13] ARM: add uprobes support David Long
2013-10-15 21:04 ` David Long
2013-10-15 21:04 ` [PATCH v2 13/13] ARM: Remove uprobes dependency on kprobes David Long
2013-10-15 21:04 ` David Long
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=52800F42.5060904@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.