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.3-263-g33d60a8


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  33d60a821c49313350cf6e575697600004567f6f (commit)
      from  a10f5ac4e63fc8c585376aa4ace4c3d317207933 (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 33d60a821c49313350cf6e575697600004567f6f
Author: Josh Stone <jistone@redhat.com>
Date:   Wed Nov 3 10:34:39 2010 -0700

    uprobes: Fix post_ssout handling of "rep ret" on x86
    
    That odd sequence is apparently used to coerce better behavior from the
    branch predictor on AMD K8.  GCC does this, so we need to be prepared to
    deal with it.
    
    In uprobe_post_ssout, most instructions just need a relative %ip fixup
    after single-stepping out-of-line.  A few are special though, either
    because their new %ip is not relative, or because their return address
    on the stack needs that relative SSOL adjustment, or even both.  This
    oddball "rep ret" is such a case, but we were missing the proper fixup
    due to the unexpected prefix.
    
    This patch moves that ip-fixup decoding to the validation phase in
    setup_uprobe_post_ssout, saving the flags UPFIX_RETURN and UPFIX_ABS_IP
    as needed.  In this same step, we reject probing these instructions if
    they have a prefix, as we haven't determined the correct behavior for
    them.  For "rep ret" we make an explicit exception, since we know that
    behaves just like a bare "ret".

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

Summary of changes:
 runtime/uprobes/uprobes_i386.c   |  111 ++++++++++++++++++++-----------
 runtime/uprobes/uprobes_i386.h   |    7 ++-
 runtime/uprobes/uprobes_x86.c    |  133 ++++++++++++++++++++++----------------
 runtime/uprobes/uprobes_x86.h    |    7 ++-
 runtime/uprobes/uprobes_x86_64.c |  125 ++++++++++++++++++++++--------------
 runtime/uprobes/uprobes_x86_64.h |    2 +
 runtime/uprobes2/uprobes_x86.c   |  133 ++++++++++++++++++++++----------------
 runtime/uprobes2/uprobes_x86.h   |    7 ++-
 8 files changed, 324 insertions(+), 201 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]