From: Masami Hiramatsu <mhiramat@redhat.com>
To: Ingo Molnar <mingo@elte.hu>, Steven Rostedt <rostedt@goodmis.org>,
lkml <linux-kernel@vger.kernel.org>,
systemtap <systemtap@sources.redhat.com>,
kvm <kvm@vger.kernel.org>,
DLE <dle-develop@lists.sourceforge.net>,
Jim Keniston <jkenisto@us.ibm.com>,
"H. Peter Anvin" <hpa@zytor.com>,
Ananth N Mavinakayanahalli <ananth@in.ibm.com>,
Srikar Dronamraju <srikar@linux.vnet.ibm.com>,
Frederic Weisbecker <fweisbec@gmail.com>,
Andi Kleen <ak@linux.intel.com>,
Vegard Nossum <vegard.nossum@gmail.com>,
Avi Kivity <avi@redhat.com>,
Przemys??awPawe??czyk <przemyslaw@pawelczyk.it>
Subject: Re: [PATCH -tip -v12 02/11] x86: x86 instruction decoder build-time selftest
Date: Thu, 16 Jul 2009 13:37:53 -0400 [thread overview]
Message-ID: <4A5F6571.3020002@redhat.com> (raw)
In-Reply-To: <20090716162947.GA5804@merkur.ravnborg.org>
Sam Ravnborg wrote:
> On Thu, Jul 16, 2009 at 11:57:06AM -0400, Masami Hiramatsu wrote:
>> Add a user-space selftest of x86 instruction decoder at kernel build time.
>> When CONFIG_X86_DECODER_SELFTEST=y, Kbuild builds a test harness of x86
>> instruction decoder and performs it after building vmlinux.
>> The test compares the results of objdump and x86 instruction decoder
>> code and check there are no differences.
>
> Long overdue review from my side...
>
>> arch/x86/scripts/Makefile | 19 +++++++
>> arch/x86/scripts/distill.awk | 42 +++++++++++++++++
>> arch/x86/scripts/test_get_len.c | 99 +++++++++++++++++++++++++++++++++++++++
>> arch/x86/scripts/user_include.h | 49 +++++++++++++++++++
>
> Hmmm, we have two architectures that uses scripts/ and three that
> uses tools/.
> I prefer the latter name as what we have ere is beyound what
> I generally recognize as a script.
>
> we have scripts/ in top-level and we do not rename this
> as we have this hardcoded too many places - but no reason to
> use the wrong name here.
>
>> diff --git a/arch/x86/include/asm/inat.h b/arch/x86/include/asm/inat.h
>> index 01e079a..9090665 100644
>> --- a/arch/x86/include/asm/inat.h
>> +++ b/arch/x86/include/asm/inat.h
>> @@ -20,7 +20,9 @@
>> * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
>> *
>> */
>> +#ifdef __KERNEL__
>> #include <linux/types.h>
>> +#endif
>>
>> /* Instruction attributes */
>> typedef u32 insn_attr_t;
>
> Why this?
> If you need this to use this file from userspace then could we do some
> other trick to make this OK?
>
> I see it repeated several times below.
> [If this has already been discussed I have missed it - sorry].
>
>
>> diff --git a/arch/x86/scripts/Makefile b/arch/x86/scripts/Makefile
>> new file mode 100644
>> index 0000000..f08859e
>> --- /dev/null
>> +++ b/arch/x86/scripts/Makefile
>> @@ -0,0 +1,19 @@
>> +PHONY += posttest
>> +quiet_cmd_posttest = TEST $@
>> + cmd_posttest = objdump -d $(objtree)/vmlinux | awk -f $(srctree)/arch/x86/scripts/distill.awk | $(obj)/test_get_len
>> +
>
> You are using the native objdump here.
> But I assume this fails miserably when you build x86 on a powerpc host.
> In other words - you broke an allyesconfig build for -next...
> We have $(OBJDUMP) for this.
Ah, I see... Would you know actual name of x86-objdump on the powerpc
(or any other crosscompiling host)? I just set "OBJDUMP=objdump" is OK?
I'm not so sure about cross-compiling kernel...
>> +posttest: $(obj)/test_get_len vmlinux
>> + $(call cmd,posttest)
>> +
>> +test_get_len_SRC = $(srctree)/arch/x86/scripts/test_get_len.c $(srctree)/arch/x86/lib/insn.c $(srctree)/arch/x86/lib/inat.c
>> +test_get_len_INC = $(srctree)/arch/x86/include/asm/inat.h $(srctree)/arch/x86/include/asm/insn.h $(objtree)/arch/x86/lib/inat-tables.c
>> +
>> +quiet_cmd_test_get_len = CC $@
>> + cmd_test_get_len = $(CC) -Wall $(test_get_len_SRC) -I$(objtree)/arch/x86/lib/ -I$(srctree)/arch/x86/include -include $(srctree)/arch/x86/scripts/user_include.h -o $@
>
> Is there a specific reason why you cannot use the standard hostprogs-y for this?
> It will take care of dependency tracking etc.
> What you have above is a hopeless incomplete list of dependencies.
>
> You need to use HOST_EXTRACFLAGS to set additional -I options and the -include.
Thank you, I'll try to use hostprogs-y.
>> +
>> +static void usage()
>> +{
>> + fprintf(stderr, "usage: %s < distilled_disassembly\n", prog);
>> + exit(1);
>> +}
>
> It would be nice to tell the user what the program is supposed to do.
> I know this is a bit unusual but no reason to copy bad practice.
>
Sure, maybe copying usage line in distill.awk is more helpful for user...
Thank you,
--
Masami Hiramatsu
Software Engineer
Hitachi Computer Products (America), Inc.
Software Solutions Division
e-mail: mhiramat@redhat.com
WARNING: multiple messages have this Message-ID (diff)
From: Masami Hiramatsu <mhiramat@redhat.com>
To: Ingo Molnar <mingo@elte.hu>, Steven Rostedt <rostedt@goodmis.org>,
lkml <linux-kernel@vger.kernel.org>,
systemtap <systemtap@sources.redhat.com>,
kvm <kvm@vger.kernel.org
Subject: Re: [PATCH -tip -v12 02/11] x86: x86 instruction decoder build-time selftest
Date: Thu, 16 Jul 2009 13:37:53 -0400 [thread overview]
Message-ID: <4A5F6571.3020002@redhat.com> (raw)
In-Reply-To: <20090716162947.GA5804@merkur.ravnborg.org>
Sam Ravnborg wrote:
> On Thu, Jul 16, 2009 at 11:57:06AM -0400, Masami Hiramatsu wrote:
>> Add a user-space selftest of x86 instruction decoder at kernel build time.
>> When CONFIG_X86_DECODER_SELFTEST=y, Kbuild builds a test harness of x86
>> instruction decoder and performs it after building vmlinux.
>> The test compares the results of objdump and x86 instruction decoder
>> code and check there are no differences.
>
> Long overdue review from my side...
>
>> arch/x86/scripts/Makefile | 19 +++++++
>> arch/x86/scripts/distill.awk | 42 +++++++++++++++++
>> arch/x86/scripts/test_get_len.c | 99 +++++++++++++++++++++++++++++++++++++++
>> arch/x86/scripts/user_include.h | 49 +++++++++++++++++++
>
> Hmmm, we have two architectures that uses scripts/ and three that
> uses tools/.
> I prefer the latter name as what we have ere is beyound what
> I generally recognize as a script.
>
> we have scripts/ in top-level and we do not rename this
> as we have this hardcoded too many places - but no reason to
> use the wrong name here.
>
>> diff --git a/arch/x86/include/asm/inat.h b/arch/x86/include/asm/inat.h
>> index 01e079a..9090665 100644
>> --- a/arch/x86/include/asm/inat.h
>> +++ b/arch/x86/include/asm/inat.h
>> @@ -20,7 +20,9 @@
>> * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
>> *
>> */
>> +#ifdef __KERNEL__
>> #include <linux/types.h>
>> +#endif
>>
>> /* Instruction attributes */
>> typedef u32 insn_attr_t;
>
> Why this?
> If you need this to use this file from userspace then could we do some
> other trick to make this OK?
>
> I see it repeated several times below.
> [If this has already been discussed I have missed it - sorry].
>
>
>> diff --git a/arch/x86/scripts/Makefile b/arch/x86/scripts/Makefile
>> new file mode 100644
>> index 0000000..f08859e
>> --- /dev/null
>> +++ b/arch/x86/scripts/Makefile
>> @@ -0,0 +1,19 @@
>> +PHONY += posttest
>> +quiet_cmd_posttest = TEST $@
>> + cmd_posttest = objdump -d $(objtree)/vmlinux | awk -f $(srctree)/arch/x86/scripts/distill.awk | $(obj)/test_get_len
>> +
>
> You are using the native objdump here.
> But I assume this fails miserably when you build x86 on a powerpc host.
> In other words - you broke an allyesconfig build for -next...
> We have $(OBJDUMP) for this.
Ah, I see... Would you know actual name of x86-objdump on the powerpc
(or any other crosscompiling host)? I just set "OBJDUMP=objdump" is OK?
I'm not so sure about cross-compiling kernel...
>> +posttest: $(obj)/test_get_len vmlinux
>> + $(call cmd,posttest)
>> +
>> +test_get_len_SRC = $(srctree)/arch/x86/scripts/test_get_len.c $(srctree)/arch/x86/lib/insn.c $(srctree)/arch/x86/lib/inat.c
>> +test_get_len_INC = $(srctree)/arch/x86/include/asm/inat.h $(srctree)/arch/x86/include/asm/insn.h $(objtree)/arch/x86/lib/inat-tables.c
>> +
>> +quiet_cmd_test_get_len = CC $@
>> + cmd_test_get_len = $(CC) -Wall $(test_get_len_SRC) -I$(objtree)/arch/x86/lib/ -I$(srctree)/arch/x86/include -include $(srctree)/arch/x86/scripts/user_include.h -o $@
>
> Is there a specific reason why you cannot use the standard hostprogs-y for this?
> It will take care of dependency tracking etc.
> What you have above is a hopeless incomplete list of dependencies.
>
> You need to use HOST_EXTRACFLAGS to set additional -I options and the -include.
Thank you, I'll try to use hostprogs-y.
>> +
>> +static void usage()
>> +{
>> + fprintf(stderr, "usage: %s < distilled_disassembly\n", prog);
>> + exit(1);
>> +}
>
> It would be nice to tell the user what the program is supposed to do.
> I know this is a bit unusual but no reason to copy bad practice.
>
Sure, maybe copying usage line in distill.awk is more helpful for user...
Thank you,
--
Masami Hiramatsu
Software Engineer
Hitachi Computer Products (America), Inc.
Software Solutions Division
e-mail: mhiramat@redhat.com
next prev parent reply other threads:[~2009-07-16 17:37 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-07-16 15:56 [PATCH -tip -v12 00/11] tracing: kprobe-based event tracer and x86 instruction decoder Masami Hiramatsu
2009-07-16 15:56 ` Masami Hiramatsu
2009-07-16 15:57 ` [PATCH -tip -v12 01/11] x86: instruction decoder API Masami Hiramatsu
2009-07-16 15:57 ` Masami Hiramatsu
2009-07-16 16:19 ` H. Peter Anvin
2009-07-16 16:52 ` Masami Hiramatsu
2009-07-16 16:37 ` Sam Ravnborg
2009-07-16 17:28 ` Masami Hiramatsu
2009-07-16 17:28 ` Masami Hiramatsu
2009-07-16 20:00 ` Sam Ravnborg
2009-07-16 20:48 ` Masami Hiramatsu
2009-07-16 20:48 ` Masami Hiramatsu
2009-07-16 15:57 ` [PATCH -tip -v12 02/11] x86: x86 instruction decoder build-time selftest Masami Hiramatsu
2009-07-16 15:57 ` Masami Hiramatsu
2009-07-16 16:29 ` Sam Ravnborg
2009-07-16 17:37 ` Masami Hiramatsu [this message]
2009-07-16 17:37 ` Masami Hiramatsu
2009-07-16 19:40 ` Masami Hiramatsu
2009-07-16 19:40 ` Masami Hiramatsu
2009-07-16 19:55 ` Sam Ravnborg
2009-07-16 20:16 ` Masami Hiramatsu
2009-07-16 20:16 ` Masami Hiramatsu
2009-07-16 15:57 ` [PATCH -tip -v12 03/11] kprobes: checks probe address is instruction boudary on x86 Masami Hiramatsu
2009-07-16 15:57 ` Masami Hiramatsu
2009-07-16 15:57 ` [PATCH -tip -v12 04/11] kprobes: cleanup fix_riprel() using insn decoder " Masami Hiramatsu
2009-07-16 15:57 ` Masami Hiramatsu
2009-07-16 15:57 ` [PATCH -tip -v12 05/11] x86: add pt_regs register and stack access APIs Masami Hiramatsu
2009-07-16 15:57 ` Masami Hiramatsu
2009-07-16 15:57 ` Masami Hiramatsu
2009-07-16 15:57 ` Masami Hiramatsu
2009-07-16 15:57 ` [PATCH -tip -v12 06/11] tracing: ftrace dynamic ftrace_event_call support Masami Hiramatsu
2009-07-16 15:57 ` [PATCH -tip -v12 07/11] tracing: Introduce TRACE_FIELD_ZERO() macro Masami Hiramatsu
2009-07-16 15:57 ` [PATCH -tip -v12 08/11] tracing: add kprobe-based event tracer Masami Hiramatsu
2009-07-16 15:57 ` [PATCH -tip -v12 09/11] tracing: Kprobe-tracer supports more than 6 arguments Masami Hiramatsu
2009-07-16 15:57 ` [PATCH -tip -v12 10/11] tracing: Generate names for each kprobe event automatically Masami Hiramatsu
2009-07-16 15:57 ` [PATCH -tip -v12 11/11] tracing: Add kprobes event profiling interface Masami Hiramatsu
2009-07-16 15:57 ` 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=4A5F6571.3020002@redhat.com \
--to=mhiramat@redhat.com \
--cc=ak@linux.intel.com \
--cc=ananth@in.ibm.com \
--cc=avi@redhat.com \
--cc=dle-develop@lists.sourceforge.net \
--cc=fweisbec@gmail.com \
--cc=hpa@zytor.com \
--cc=jkenisto@us.ibm.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=przemyslaw@pawelczyk.it \
--cc=rostedt@goodmis.org \
--cc=srikar@linux.vnet.ibm.com \
--cc=systemtap@sources.redhat.com \
--cc=vegard.nossum@gmail.com \
/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.