This is the mail archive of the systemtap@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]

Re: [SYSTEMTAP/PATCH 0/4] RT aware systemtap patch set


Ping!

do we care about making stap -rt aware. Just an fyi that I revisited
my patch specially 2nd patch and found some serious improvement to be
done.. RCU use to replace rd/wr lock just not right, So I am spinning
the patch series. Also I am thinking to come up with locking helper
function API on raw_locking vs existing spin lock so to avoid
cluttering the code.


On Tue, Sep 9, 2014 at 12:38 PM, Santosh Shukla <sshukla@mvista.com> wrote:
> Hi,
>
> I wanted to run systemtap on -rt kernel version 3.14.12-rt9 and noticed bunch of preemptible
> bug_on.This is initial effort to make systemtap rt-aware. Tested on 3.14.12-rt
> kernel.  Patchset based on stap upstream link [1], build on commit-id [2].
> Patchset can work on master branch with little tweak in patch set.
>
> I have also tested this patch set in 3.10.40-rt38 kernel noticed few preemptible
> bug_on but those were coming from kernel and no improvement observed in
> systemtap side.
>
> Change summary -
> - Replaced read lock with rcu_read_lock such that read_lock_irqsave lock substituion is
>   rcu_read_lock + local_irq_save and for read_unlock_irqsave lock substitution is
>   local_irq_restore followed bu rcu_read_unlock.
>
> - Replaced write_lock_irqsave/restore with raw_spinlock_irqsave/restore for -rt kernel.
>   And for non-rt kernel those raw_ lock should get replaced by normal spin_lock.
>
> - Replaced hlist api to rcu type api.
>
> Test script used for testing :
> /usr/local/stap/bin/stap -v testsuite/systemtap.examples/network/netdev.stp
> /usr/local/stap/bin/stap -v testsuite/systemtap.examples/network/tcpdumplike.stp
>
> Few other test example script used :
> cat ../test-indent.stp
> probe kernel.function("*@net/socket.c").call
> {
>                   printf ("%s -> %s\n", thread_indent(1), probefunc())
> }
> probe kernel.function("*@net/socket.c").return
> {
>                   printf ("%s <- %s\n", thread_indent(-1), probefunc())
> }
>
>
> Like know feedback, comment on patch set. also Does it make sense to maintain
> systemtap -rt version in upstream.. do we care?
>
> [1] git://sourceware.org/git/systemtap.git
> [2] git checkout 8f0fcd995f7f650a2ee0a94539f90c99e6d19e1d
>
> Santosh Shukla (4):
>   rt : replace __stp_tf_task_work_list_lock to raw_
>   rt : replace read write lock with rcu
>   rt : stp_utrace.c : replace utrace->lock with raw_lock
>   rt : replace utrace_struct lock to raw lock
>
>  runtime/linux/addr-map.c        |   16 ++++---
>  runtime/linux/runtime.h         |    2 +-
>  runtime/linux/task_finder2.c    |   14 +++---
>  runtime/linux/task_finder_map.c |   38 ++++++++-------
>  runtime/stp_utrace.c            |  100 +++++++++++++++++++--------------------
>  runtime/task_finder_vma.c       |   43 +++++++++--------
>  6 files changed, 112 insertions(+), 101 deletions(-)
>
> --
> 1.7.9.5
>


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