All of lore.kernel.org
 help / color / mirror / Atom feed
From: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
To: Steven Rostedt <rostedt@goodmis.org>
Cc: Josh Poimboeuf <jpoimboe@redhat.com>,
	Ananth N Mavinakayanahalli <ananth@in.ibm.com>,
	Jiri Kosina <jkosina@suse.cz>,
	Seth Jennings <sjenning@redhat.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Petr Mladek <pmladek@suse.cz>, Vojtech Pavlik <vojtech@suse.cz>,
	Namhyung Kim <namhyung@kernel.org>,
	Miroslav Benes <mbenes@suse.cz>, Ingo Molnar <mingo@kernel.org>,
	Shuah Khan <shuahkh@osg.samsung.com>
Subject: Re: [PATCH ftrace/core v6 5/5] kselftest, ftrace: Add ftrace IPMODIFY flag test
Date: Mon, 24 Nov 2014 23:11:12 +0900	[thread overview]
Message-ID: <54733C80.6060509@hitachi.com> (raw)
In-Reply-To: <20141123232932.1ed70d18@gandalf.local.home>

(CC'ed Shuah, since this is related to kselftest)

(2014/11/24 13:29), Steven Rostedt wrote:
> On Mon, 24 Nov 2014 11:50:06 +0900
> Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com> wrote:
> 
>> (2014/11/22 6:03), Steven Rostedt wrote:
>>> On Fri, 21 Nov 2014 05:25:37 -0500
>>> Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com> wrote:
>>>
>>>> Add ftrace IPMODIFY flag test to selftest/ftrace. The
>>>> test checks simple ftrace handler insertion and
>>>> combinations of ftrace, kprobe, and jprobe.
>>>> This test requires kernel build tree to build a test
>>>> kernel module and root privilege to run.
>>>>
>>>> Signed-off-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
>>>>
>>>> ---
>>>
>>> Can you make it so that make O=/path/to/build works?
>>
>> Hmm, I always use "O=builddir" option in my build script...
> 
> But do you use O=builddir where builddir is where the kernel was built?
> I don't.

Hmm, yes, I always use kbin/linux-3.<arch>/ for the builddir of
ksrc/linux-3/ source tree.

> 
> Remember, I build on a server and install on a test box. The server
> directory is read only. I can not have O= be the path to where the
> kernel was built. I have to use a different directory.

Oh, I see. So your kernel is built on a directory which mounted as
readonly, and installed on the testbox.

>>> I tried running this on my test box, which has /home/rostedt mounted
>>> read only from my build box, and I get this:

Hmm, btw, would you mount it without "noexec" option?
I think only "ro" option doesn't prohibit executing scripts on it.

>>
>> My case is just to keep the source tree clean, so source tree is
>> still writable and builddir is under another directory in /home/<user>/.
>>
>>
>>> [root@bxtest ftrace]# make O=/tmp
>>> for TARGET in ipmodify; do \
>>> 	make -C $TARGET; \
>>> done;
>>> make[1]: Entering directory `/work/git/linux-trace.git/tools/testing/selftests/ftrace/ipmodify'
>>> make -C /lib/modules/3.18.0-rc1-test+/build M=/work/git/linux-trace.git/tools/testing/selftests/ftrace/ipmodify ipmodify.ko
>>> make[2]: Entering directory `/home/rostedt/work/git/nobackup/bxtest/trace'
>>>   CC [M]  /work/git/linux-trace.git/tools/testing/selftests/ftrace/ipmodify/ipmodify.o
>>> /bin/sh: ./scripts/recordmcount: Permission denied
>>
>> Hmm, this error looks odd, not ENOENT but EPERM??
>> Could you run it again with V=1 ?
> 
> Sure, here's the output:
> 
> [root@bxtest ftrace]# make V=1 O=/tmp
> for TARGET in ipmodify; do \
> 	make -C $TARGET; \
> done;
> make[1]: Entering directory `/work/git/linux-trace.git/tools/testing/selftests/ftrace/ipmodify'
> make -C /lib/modules/3.18.0-rc1-test+/build M=/work/git/linux-trace.git/tools/testing/selftests/ftrace/ipmodify ipmodify.ko
> make[2]: Entering directory `/home/rostedt/work/git/nobackup/bxtest/trace'
> make -C /home/rostedt/work/git/linux-trace.git O=/home/rostedt/work/git/nobackup/bxtest/trace/. ipmodify.ko
> make -C /home/rostedt/work/git/nobackup/bxtest/trace KBUILD_SRC=/home/rostedt/work/git/linux-trace.git \
> -f /home/rostedt/work/git/linux-trace.git/Makefile ipmodify.ko
> test -e include/generated/autoconf.h -a -e include/config/auto.conf || (		\
> echo >&2;							\
> echo >&2 "  ERROR: Kernel configuration is invalid.";		\
> echo >&2 "         include/generated/autoconf.h or include/config/auto.conf are missing.";\
> echo >&2 "         Run 'make oldconfig && make prepare' on kernel src to fix it.";	\
> echo >&2 ;							\
> /bin/false)
> mkdir -p /work/git/linux-trace.git/tools/testing/selftests/ftrace/ipmodify/.tmp_versions ; rm -f /work/git/linux-trace.git/tools/testing/selftests/ftrace/ipmodify/.tmp_versions/*
> make KBUILD_MODULES=1   \
> -f /home/rostedt/work/git/linux-trace.git/scripts/Makefile.build obj=/work/git/linux-trace.git/tools/testing/selftests/ftrace/ipmodify ipmodify.o
>   gcc -Wp,-MD,/work/git/linux-trace.git/tools/testing/selftests/ftrace/ipmodify/.ipmodify.o.d  -nostdinc -isystem /usr/lib/gcc/x86_64-redhat-linux/4.7.2/include -I/home/rostedt/work/git/linux-trace.git/arch/x86/include -Iarch/x86/include/generated  -I/home/rostedt/work/git/linux-trace.git/include -Iinclude -I/home/rostedt/work/git/linux-trace.git/arch/x86/include/uapi -Iarch/x86/include/generated/uapi -I/home/rostedt/work/git/linux-trace.git/include/uapi -Iinclude/generated/uapi -include /home/rostedt/work/git/linux-trace.git/include/linux/kconfig.h   -I/work/git/linux-trace.git/tools/testing/selftests/ftrace/ipmodify -D__KERNEL__ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -m64 -mno-80387 -mno-fp-ret-in-387 -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -maccumulate-outgoing-
> args -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_A
>  S_FXSAVEQ=1 -DCONFIG_AS_CRC32=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -fno-delete-null-pointer-checks -Os -Wno-maybe-uninitialized --param=allow-store-data-races=0 -Wframe-larger-than=2048 -fno-stack-protector -Wno-unused-but-set-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -g -pg -mfentry -DCC_USING_FENTRY -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -DCC_HAVE_ASM_GOTO  -DMODULE  -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(ipmodify)"  -D"KBUILD_MODNAME=KBUILD_STR(ipmodify)" -c -o /work/git/linux-trace.git/tools/testing/selftests/ftrace/ipmodify/ipmodify.o /work/git/linux-trace.git/tools/testing/selftests/ftrace/ipmodify/ipmodify.c
>   if [ "-pg" = "-pg" ]; then if [ /work/git/linux-trace.git/tools/testing/selftests/ftrace/ipmodify/ipmodify.o != "scripts/mod/empty.o" ]; then ./scripts/recordmcount  "/work/git/linux-trace.git/tools/testing/selftests/ftrace/ipmodify/ipmodify.o"; fi; fi;
> /bin/sh: ./scripts/recordmcount: Permission denied
> make[5]: *** [/work/git/linux-trace.git/tools/testing/selftests/ftrace/ipmodify/ipmodify.o] Error 1

thanks. In my case, I didn't have same error.
---
  if [ "-pg" = "-pg" ]; then if [ /home/mhiramat/ksrc/linux-3/tools/testing/selftests/ftrace/ipmodify/ipmodify.o != "scripts/mod/empty.o" ]; then ./scripts/recordmcount
"/home/mhiramat/ksrc/linux-3/tools/testing/selftests/ftrace/ipmodify/ipmodify.o"; fi; fi;
make -f /home/mhiramat/ksrc/linux-3/scripts/Makefile.modpost
---

However, when I dropped exec bit from recordmcount, I got the same error.
---
$ chmod a-x ~/kbin/linux-3.x86_64/scripts/recordmcount
$ make V=1 O=/tmp
[...]
  if [ "-pg" = "-pg" ]; then if [ /home/mhiramat/ksrc/linux-3/tools/testing/selftests/ftrace/ipmodify/ipmodify.o != "scripts/mod/empty.o" ]; then ./scripts/recordmcount
"/home/mhiramat/ksrc/linux-3/tools/testing/selftests/ftrace/ipmodify/ipmodify.o"; fi; fi;
/bin/sh: ./scripts/recordmcount: Permission denied
make[5]: *** [/home/mhiramat/ksrc/linux-3/tools/testing/selftests/ftrace/ipmodify/ipmodify.o] Error 1
---

So, if your server directory is mounted with noexec, it's an environmental
problem. I guess you can not build any kernel drivers on that testbox, can you?

Anyway, this gives us a good question, "should test binaries be made by
server or client(testbox) environment?" This ipmodify driver is a binary
and it should be built with the kernel binary (by server) I think.
But yes, I missed the Makefile didn't allow that (this always referred
installed running kernel builddir).

I hope to have CONFIG_KSELFTEST_BINARIES for Kconfig, or make prep_kselftest
target to build these binaries with kernel...

Shuah, what would you think about this?

> make[4]: *** [ipmodify.ko] Error 2
> make[3]: *** [sub-make] Error 2
> make[2]: *** [__sub-make] Error 2
> make[2]: Leaving directory `/home/rostedt/work/git/nobackup/bxtest/trace'
> make[1]: *** [ipmodify.ko] Error 2
> make[1]: Leaving directory `/work/git/linux-trace.git/tools/testing/selftests/ftrace/ipmodify'
> make: *** [all] Error 2
> 
> 
> Thanks (on my way to bed),

Thank you :),


-- 
Masami HIRAMATSU
Software Platform Research Dept. Linux Technology Research Center
Hitachi, Ltd., Yokohama Research Laboratory
E-mail: masami.hiramatsu.pt@hitachi.com



  reply	other threads:[~2014-11-24 14:11 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-21 10:25 [PATCH ftrace/core v6 0/5] ftrace, kprobes: Introduce IPMODIFY flag for ftrace_ops to detect conflicts Masami Hiramatsu
2014-11-21 10:25 ` [PATCH ftrace/core v6 1/5] kprobes/ftrace: Recover original IP if pre_handler doesn't change it Masami Hiramatsu
2014-11-21 10:25 ` [PATCH ftrace/core v6 2/5] ftrace, kprobes: Support IPMODIFY flag to find IP modify conflict Masami Hiramatsu
2014-11-21 18:05   ` Steven Rostedt
2014-11-21 19:43     ` Steven Rostedt
2014-11-24  2:12       ` Masami Hiramatsu
2014-11-24  2:06     ` Masami Hiramatsu
2014-11-21 10:25 ` [PATCH ftrace/core v6 3/5] kprobes: Add IPMODIFY flag to kprobe_ftrace_ops Masami Hiramatsu
2014-11-21 10:25 ` [PATCH ftrace/core v6 4/5] kprobes: Set IPMODIFY flag only if the probe can change regs->ip Masami Hiramatsu
2014-11-21 20:15   ` Steven Rostedt
2014-11-24  2:43     ` Masami Hiramatsu
2015-01-26 16:14   ` Petr Mladek
2015-02-24  7:38     ` Masami Hiramatsu
2015-02-24  8:52       ` Petr Mladek
2015-02-24 11:47         ` Masami Hiramatsu
2015-02-24 13:10           ` Petr Mladek
2014-11-21 10:25 ` [PATCH ftrace/core v6 5/5] kselftest, ftrace: Add ftrace IPMODIFY flag test Masami Hiramatsu
2014-11-21 21:03   ` Steven Rostedt
2014-11-24  2:50     ` Masami Hiramatsu
2014-11-24  4:29       ` Steven Rostedt
2014-11-24 14:11         ` Masami Hiramatsu [this message]
2014-11-24 15:07           ` Steven Rostedt
2014-11-24 15:18             ` Steven Rostedt
2014-11-24 15:19               ` Steven Rostedt
2014-11-25  1:51                 ` Masami Hiramatsu
2014-11-24 16:18           ` Shuah Khan
2014-11-25  1:23             ` Masami Hiramatsu
2014-11-25 14:42               ` Shuah Khan
2014-11-25 14:44                 ` Shuah Khan
2014-11-26  7:20                   ` Masami Hiramatsu
2014-11-26 18:40                     ` Shuah Khan
2014-11-27  4:56                       ` Masami Hiramatsu
2014-11-26 14:31           ` Steven Rostedt
2014-11-27  0:55             ` 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=54733C80.6060509@hitachi.com \
    --to=masami.hiramatsu.pt@hitachi.com \
    --cc=ananth@in.ibm.com \
    --cc=jkosina@suse.cz \
    --cc=jpoimboe@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mbenes@suse.cz \
    --cc=mingo@kernel.org \
    --cc=namhyung@kernel.org \
    --cc=pmladek@suse.cz \
    --cc=rostedt@goodmis.org \
    --cc=shuahkh@osg.samsung.com \
    --cc=sjenning@redhat.com \
    --cc=vojtech@suse.cz \
    /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.