lkml.org 
[lkml]   [2008]   [Oct]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 01/11] ftrace: handle generic arch calls
    On Mon, Oct 27, 2008 at 01:41:41PM -0400, Steven Rostedt wrote:
    >
    > [
    > Resending patch.
    >
    > Sam, can you Ack this?
    >
    > -- Steve
    > ]
    >
    > From: Steven Rostedt <srostedt@redhat.com>
    > Subject: ftrace: handle generic arch calls
    >
    > The recordmcount script requires that the actual arch is passed in.
    > This works well when ARCH=i386 or ARCH=x86_64 but does not handle the
    > case of ARCH=x86.
    >
    > This patch adds a parameter to the function to pass in the number of
    > bits of the architecture. So that it can determine if x86 should be
    > run for x86_64 or i386 archs.
    >
    > Signed-off-by: Steven Rostedt <srostedt@redhat.com>
    > ---
    > scripts/Makefile.build | 10 ++++++++--
    > scripts/recordmcount.pl | 11 ++++++++++-
    > 2 files changed, 18 insertions(+), 3 deletions(-)
    >
    > Index: linux-compile.git/scripts/Makefile.build
    > ===================================================================
    > --- linux-compile.git.orig/scripts/Makefile.build 2008-10-22 15:09:04.000000000 -0400
    > +++ linux-compile.git/scripts/Makefile.build 2008-10-22 15:09:07.000000000 -0400
    > @@ -198,10 +198,16 @@ cmd_modversions = \
    > fi;
    > endif
    >
    > +ifdef CONFIG_64BIT
    > +arch_bits = 64
    > +else
    > +arch_bits = 32
    > +endif
    > +
    > ifdef CONFIG_FTRACE_MCOUNT_RECORD
    > cmd_record_mcount = perl $(srctree)/scripts/recordmcount.pl \
    > - "$(ARCH)" "$(OBJDUMP)" "$(OBJCOPY)" "$(CC)" "$(LD)" "$(NM)" "$(RM)" \
    > - "$(MV)" "$(@)";
    > + "$(ARCH)" "$(arch_bits)" "$(OBJDUMP)" "$(OBJCOPY)" "$(CC)" "$(LD)" \
    > + "$(NM)" "$(RM)" "$(MV)" "$(@)";
    > endif

    A simple $(if $(CONFIG_64BIT),64,32) in the command would be more dense.

    >
    > define rule_cc_o_c
    > Index: linux-compile.git/scripts/recordmcount.pl
    > ===================================================================
    > --- linux-compile.git.orig/scripts/recordmcount.pl 2008-10-22 15:09:04.000000000 -0400
    > +++ linux-compile.git/scripts/recordmcount.pl 2008-10-22 15:09:45.000000000 -0400
    > @@ -106,7 +106,8 @@ if ($#ARGV < 6) {
    > exit(1);
    > }
    >
    > -my ($arch, $objdump, $objcopy, $cc, $ld, $nm, $rm, $mv, $inputfile) = @ARGV;
    > +my ($arch, $bits, $objdump, $objcopy, $cc,
    > + $ld, $nm, $rm, $mv, $inputfile) = @ARGV;
    >
    > $objdump = "objdump" if ((length $objdump) == 0);
    > $objcopy = "objcopy" if ((length $objcopy) == 0);
    > @@ -129,6 +130,14 @@ my $function_regex; # Find the name of a
    > # (return offset and func name)
    > my $mcount_regex; # Find the call site to mcount (return offset)
    >
    > +if ($arch eq "x86") {
    > + if ($bits == 64) {
    > + $arch = "x86_64";
    > + } else {
    > + $arch = "i386";
    > + }
    > +}
    > +
    > if ($arch eq "x86_64") {
    > $section_regex = "Disassembly of section";
    > $function_regex = "^([0-9a-fA-F]+)\\s+<(.*?)>:";
    >

    This looks strange to my eyes.
    Why not do the more obvious:
    if ($arch eq "x86" && $bits == 64) {

    The change above is like trying to stick to the old i386/x86_64
    notation.

    Sam



    \
     
     \ /
      Last update: 2008-10-29 20:07    [W:0.024 / U:30.732 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site