fche changed the topic of #systemtap to: http://sourceware.org/systemtap; email systemtap@sourceware.org if answers here not timely, conversations may be logged
mjw has quit [Quit: Leaving]
khaled has quit [Quit: Konversation terminated!]
hpt has joined #systemtap
orivej has joined #systemtap
derek0883 has quit [Remote host closed the connection]
<agentzh> i've got a quick question. i've noted that stap can automatically skip the function prologue for function probes so as to work around the dwarf inaccuracy issues for -O0 compiled code. where does stap implement this please?
<agentzh> just curious about how stap knows about the size of the function prologue.
<agentzh> is it DW_AT_low_pc in dwarf?
<agentzh> no, seems not.
<fche> stap does not normally skip prologues
<fche> because normal gcc is good enough with its dwarf data not to make it necessary
<fche> but stap -P does trigger that heuristic
<fche> it's related to searching line-records and matching against declaration-address/source points
hpt has quit [Quit: Lost terminal]
derek0883 has joined #systemtap
<agentzh> fche: ah, i thought there was an easier way.
hpt has joined #systemtap
<agentzh> fche: strange enough, without stap -P, it also uses the correct post-prologue address for the probe.
<agentzh> so it's enabled by default actually?
<agentzh> in dwarf, the address is low_pc (addr) 0x00000000004004a6 <foo>
<agentzh> and in probe foo(), uaddr() gives addr: 4004ad
<agentzh> it's the same after-prologue pc as in gdb when doing "b foo".
<agentzh> (gdb) b foo
<agentzh> Breakpoint 1 at 0x4004ad: file test.c, line 7.
<agentzh> the disassembly of foo() is like this: https://gist.github.com/agentzh/b28acf339807b0f681fc4e36fb73fa1f
<agentzh> apparently stap does not use the first insturction's address.
<fche> it may enabled by default on some arches
<agentzh> nor the DW_AT_low_pc attribute value.
<agentzh> okay will check. thanks for the info.
<agentzh> okay it's indeed this option enabled by default. setting --prologue-searching=never makes the probe be placed at the first instruction of the function.
lijunlong has joined #systemtap
irker097 has quit [Quit: transmission timeout]
hpt has quit [Quit: Lost terminal]
hpt has joined #systemtap
derek0883 has quit [Remote host closed the connection]
derek0883 has joined #systemtap
derek0883 has quit [Remote host closed the connection]
derek0883 has joined #systemtap
derek0883 has quit [Remote host closed the connection]
fdalleau_away is now known as fdalleau
derek0883 has joined #systemtap
orivej has quit [Ping timeout: 240 seconds]
derek0883 has quit [Remote host closed the connection]
_whitelogger has joined #systemtap
derek0883 has joined #systemtap
derek0883 has quit [Remote host closed the connection]
orivej has joined #systemtap
tonyj_ has quit [Remote host closed the connection]
khaled has joined #systemtap
khaled has quit [Client Quit]
khaled has joined #systemtap
khaled has quit [Remote host closed the connection]
khaled has joined #systemtap
khaled has quit [Remote host closed the connection]
khaled has joined #systemtap
hpt has quit [Ping timeout: 276 seconds]
hpt has joined #systemtap
hpt has quit [Ping timeout: 272 seconds]
mjw has joined #systemtap
orivej has quit [Ping timeout: 276 seconds]
orivej has joined #systemtap
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #systemtap
mjw has quit [Quit: Leaving]
mjw has joined #systemtap
amerey has joined #systemtap
orivej has quit [Ping timeout: 240 seconds]
mcermak has joined #systemtap
mcermak has quit [Client Quit]
mcermak has joined #systemtap
derek0883 has joined #systemtap
mcermak_ has joined #systemtap
derek0883 has quit [Remote host closed the connection]
derek0883 has joined #systemtap
mjw has quit [Quit: Leaving]
tonyj has joined #systemtap
mcermak_ has quit [Remote host closed the connection]
mcermak has quit [Remote host closed the connection]
mcermak has joined #systemtap
tromey has joined #systemtap
amerey_ has joined #systemtap
amerey has quit [Ping timeout: 276 seconds]
zodbot has quit [Read error: Connection reset by peer]
derek0883 has quit [Remote host closed the connection]
derek0883 has joined #systemtap
orivej has joined #systemtap
zodbot has joined #systemtap
mjw has joined #systemtap
derek0883 has quit [Remote host closed the connection]
fdalleau is now known as fdalleau_away
derek0883 has joined #systemtap
derek0883 has quit [Remote host closed the connection]
derek0883 has joined #systemtap
<kerneltoast> fche, yo
derek0883 has quit [Ping timeout: 258 seconds]
<fche> oy
<kerneltoast> vey
<fche> well now
<kerneltoast> i'd like to talk to you about your car's extended warranty
<fche> nice try fed
<kerneltoast> we've been trying to reach you regarding your student loans
<kerneltoast> press 1 for forbearance
<kerneltoast> spin lock tracepoint recursion?
derek0883 has joined #systemtap
<kerneltoast> it's very tempting to roll our own stp_spin_lock_t impl...
<kerneltoast> in any case, the DEBUG_MEM routines need a notrace lock primitive because they are used outside of probe handlers
tromey has quit [Quit: ERC (IRC client for Emacs 27.1)]
<fche> what is the actual warning diagnostic text there?
<fche> what is the complaint?
<fche> so from atomic context?
<kerneltoast> yeah
<kerneltoast> nuking the spinlock tracepoint for DEBUG_MEM's lock would make that warning go away
<fche> rwlock_t used in probe_lock.h ..... hm why not raw_rwlock_t if such a thing exists
<kerneltoast> well, i don't think it exists
<kerneltoast> given that currently, for rt, STP_DEFINE_RWLOCK just converts the rwlock to a raw_spinlock
derek0883 has quit [Remote host closed the connection]
<fche> yeah we probably just need the same mapping done in the stp_probe context
<fche> probe_lock context
<kerneltoast> how's about making stp_spinlock_t and stp_rwlock_t custom lock implementations with atomics?
<kerneltoast> or we could call em notrace for clarity
<fche> not super interested in our own locking gadget implementation tbh
<kerneltoast> yeah
<fche> but backing those probe-locks down to raw_somethingorother_t is fine
<kerneltoast> we already do that though
<kerneltoast> changing the probe-locks to raw_spinlock_t would be disastrous
<kerneltoast> agentzh would cry
<fche> for concurrency, yes
<fche> we do not already do that for the probe_lock.h context I believe, which is why that code complained
<kerneltoast> _stp_runtime_context_trylock() and _stp_runtime_context_unlock() are currently self-rolled locks
<kerneltoast> we could also just screw over probe concurrency for rt only
<kerneltoast> :trollface:
<fche> yes, that is acceptable
<kerneltoast> that just covers the DEBUG_MEM issue
<fche> sure
derek0883 has joined #systemtap
<fche> yup
<kerneltoast> noice
<fche> if you could include ascii-art of agentzh crying at the loss of concurrency, that'd be golden
<kerneltoast> we actually don't have any customers using preempt_rt
derek0883 has quit [Remote host closed the connection]
irker327 has joined #systemtap
<irker327> systemtap: sultan systemtap.git:master * release-4.4-87-gb35054178 / runtime/linux/alloc.c: alloc: use rt-safe spin lock for DEBUG_MEM
<irker327> systemtap: sultan systemtap.git:master * release-4.4-88-g6d6795f49 / runtime/linux/common_session_state.h runtime/linux/probe_lock.h runtime/stp_helper_lock.h translate.cxx: runtime: make probe locks rt-safe
mcermak has quit [Quit: leaving]
mcermak has joined #systemtap
derek0883 has joined #systemtap
<agentzh> fche: good idea.
<fche> too late, oh well
<agentzh> heh
khaled has quit [Quit: Konversation terminated!]
amerey_ has quit [Quit: Leaving]