This is the mail archive of the systemtap-cvs@sourceware.org mailing list for the systemtap project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[SCM] systemtap: system-wide probe/trace tool branch, master, updated. release-1.6-278-g0da35ea


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "systemtap: system-wide probe/trace tool".

The branch, master has been updated
       via  0da35eae7b0cb6ba0e4541eea7a77d1efa50a5be (commit)
       via  0a4d32384ed8f9e282ce87ba3cd6bd9a4256210b (commit)
       via  5b1fa53b0c15142cc3bd5fe2c1a76ca90f05eac6 (commit)
       via  929eb962cbd543251f4faf25d6fc9b3ab3021623 (commit)
      from  b82890944fa875ae6f1f46886da7c813882b3f44 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 0da35eae7b0cb6ba0e4541eea7a77d1efa50a5be
Author: Josh Stone <jistone@redhat.com>
Date:   Thu Oct 6 13:00:09 2011 -0700

    PR3217: Add STP_LEGACY_PRINT option to use the old form
    
    * translate.cxx (c_unparser::visit_print_format): Alternate using
      STP_LEGACY_PRINT between the new compiled printfs and the old
      _stp_[s]printf, so we can make sure both still work.
      (c_unparser::emit_compiled_printf_locals): Conditionalize.
      (c_unparser::emit_compiled_printfs): Conditionalize.
    * testsuite/lib/stap_run2.exp: Show extra args used in stap_run2.
    * testsuite/systemtap.printf/*.exp: Run -DSTP_LEGACY_PRINT too in all
      the tests using stap_run2.  Others will require greater restructuring
      to achieve this...

commit 0a4d32384ed8f9e282ce87ba3cd6bd9a4256210b
Author: Josh Stone <jistone@redhat.com>
Date:   Thu Oct 6 12:33:59 2011 -0700

    PR3217: Make compiled-printf functions noinline
    
    When running systemtap.printf/int1.stp, I got:
    
        ...: In function â??probe_1997â??:
        ...:3885:1: error: the frame size of 772 bytes is larger than 256 bytes [-Werror=frame-larger-than=]
    
    It's not yet clear to me why gcc claims so much stack space here, as
    even in the compiled printf functions, most of the local variables have
    very limited scope.  For now, marking them noinline solves the issue,
    but this deserves closer inspection...
    
    * translate.cxx (c_unparser::emit_compiled_printfs): Mark each generated
      printf function as noinline.

commit 5b1fa53b0c15142cc3bd5fe2c1a76ca90f05eac6
Author: Josh Stone <jistone@redhat.com>
Date:   Tue Sep 27 15:30:13 2011 -0700

    PR3217: Merge similar compiled-printfs
    
    It's pretty common for tapset wildcards to expand to lots of probes with
    slightly different handlers (e.g. syscall.*), and we'd like for the
    newly expanded printf code to not be duplicated so much.
    
    This patch keeps a hash in the translator of visited format strings, so
    we can output a compiled version of that only once.  This requires some
    new argument space in the context, but we can optimize by realizing that
    (1) printfs never nest when arguments are precomputed, (2) string
    arguments are immutable and need not be copied, and (3) return strings
    for sprintf can write directly to the caller's tmpvar.
    
    * translate.cxx (c_unparser::compiled_printfs): New map for storing
      pair(print_to_stream, format_string) -> compiled printf name.
      (c_unparser::emit_compiled_printfs): New, emit the expanded function
      body for every compiled printf.
      (c_unparser::emit_compiled_printf_locals): New, emit a union-struct of
      context locals for all compiled printfs.
      (c_unparser::emit_common_header): Call emit_compiled_printf*.
      (c_unparser::declare_compiled_printf): New, called to declare that we
      need this printf -- add it to the map if it's not already there.
      (c_tmpcounter::visit_print_format): Declare printfs as we see them.
      (c_unparser::get_compiled_printf): New, get the name for a previously
      declared printf function.
      (c_unparser::visit_print_format): Get the compiled printf function.

commit 929eb962cbd543251f4faf25d6fc9b3ab3021623
Author: Josh Stone <jistone@redhat.com>
Date:   Tue Jun 7 16:50:20 2011 -0700

    PR3217: Compiled printf
    
    This translates script-level printf statements into unrolled printing
    statements.  The compiled code is faster, but also larger.
    
    * runtime/vsprintf.c (_stp_vsprint_memory): Factored out for %s/%m/%M.
      (_stp_vsprint_memory_size): Factored out for size of %s/%m/%M.
      (_stp_vsprint_memory_size): Factored out for %b.
      (_stp_vsprint_binary_size): Factored out for size of %b.
    * staptree.h (print_format::format_flag): Match the same definitions
      used by print_flag in runtime/vsprintf.c.
      (print_format::conversion_type): Collapse numeric types into one.
      (print_format::format_component::base): New field to classify numeric.
      (print_format::set_flag, print_format::test_flag): New, for convenience.
    * elaborate.cxx (typeresolution_info::visit_print_format): Handle the
      changes in conversion_type.
    * staptree.cxx (print_format::components_to_string): Parse out the new
      and impoved format_component.
      (print_format::string_to_components): Create the new format_component.
    * translate.cxx (c_unparser::visit_print_format): Generate unrolled code
      for printf statements.

-----------------------------------------------------------------------

Summary of changes:
 elaborate.cxx                             |    8 +-
 runtime/vsprintf.c                        |  341 +++++++++---------
 staptree.cxx                              |   83 ++--
 staptree.h                                |   23 +-
 testsuite/lib/stap_run2.exp               |    2 +-
 testsuite/systemtap.printf/basic1.exp     |    1 +
 testsuite/systemtap.printf/basic2.exp     |    1 +
 testsuite/systemtap.printf/basic3.exp     |    1 +
 testsuite/systemtap.printf/basic4.exp     |    1 +
 testsuite/systemtap.printf/basic5.exp     |    1 +
 testsuite/systemtap.printf/basic6.exp     |    1 +
 testsuite/systemtap.printf/bin6.exp       |  Bin 2741 -> 2796 bytes
 testsuite/systemtap.printf/char1.exp      |    1 +
 testsuite/systemtap.printf/int1.exp       |    1 +
 testsuite/systemtap.printf/memory1.exp    |    1 +
 testsuite/systemtap.printf/print.exp      |    1 +
 testsuite/systemtap.printf/print_char.exp |    1 +
 testsuite/systemtap.printf/println.exp    |    1 +
 testsuite/systemtap.printf/ptr-1.2.exp    |    1 +
 testsuite/systemtap.printf/ptr-1.3.exp    |    1 +
 testsuite/systemtap.printf/string1.exp    |    1 +
 translate.cxx                             |  585 ++++++++++++++++++++++++-----
 22 files changed, 737 insertions(+), 320 deletions(-)


hooks/post-receive
--
systemtap: system-wide probe/trace tool


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]