fche changed the topic of #systemtap to: http://sourceware.org/systemtap; email systemtap@sourceware.org if answers here not timely, conversations may be logged
derek088_ has quit [Remote host closed the connection]
derek0883 has joined #systemtap
orivej has quit [Ping timeout: 240 seconds]
derek0883 has quit [Remote host closed the connection]
derek0883 has joined #systemtap
derek0883 has quit [Ping timeout: 265 seconds]
derek0883 has joined #systemtap
derek0883 has quit [Ping timeout: 265 seconds]
derek0883 has joined #systemtap
hpt has joined #systemtap
<kerneltoast> fche, the more i grok through the code needed to make per-cpu timers, the more i think it's just too high in overhead
<kerneltoast> add_timer_on() has a comment warning it's not very scalable: https://elixir.bootlin.com/linux/v5.10.9/source/kernel/time/timer.c#L1151
<kerneltoast> we also can't use mod_timer()
<kerneltoast> ok we can use mod_timer(), but it looks like affining a timer to a CPU is a feature in newer kernels
<kerneltoast> mod_timer() schedules timers onto the current CPU
<kerneltoast> so we would need a way to ensure our add_timer_on() CPU placement never gets broken
<kerneltoast> which is done via the TIMER_PINNED flag
<kerneltoast> TIMER_PINNED was exported in 4.8; in prior kernels it looks like you have to use mod_timer_pinned()
<kerneltoast> and mod_timer_pinned() exists in 2.6.32, wow
<kerneltoast> welp at least it's POSSIBLE to do per-cpu timers
<kerneltoast> it still seems really too expensive though
derek0883 has quit [Remote host closed the connection]
derek0883 has joined #systemtap
derek0883 has quit [Ping timeout: 244 seconds]
derek0883 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
orivej has joined #systemtap
derek0883 has quit [Remote host closed the connection]
derek088_ has joined #systemtap
orivej has quit [Ping timeout: 265 seconds]
orivej has joined #systemtap
wmealing has joined #systemtap
* wmealing waves
wmealing has quit [Remote host closed the connection]
irker979 has quit [Quit: transmission timeout]
derek088_ has quit [Remote host closed the connection]
derek0883 has joined #systemtap
orivej has quit [Ping timeout: 256 seconds]
khaled has joined #systemtap
orivej has joined #systemtap
wmealing has joined #systemtap
<wmealing> ive done something wrong.
<wmealing> stap: staptree.h:1349: virtual update_visitor::~update_visitor(): Assertion `values.empty()' failed.
<wmealing>
<wmealing> Aborted
<wmealing> i just needed to ask
<wmealing> the task value is nil
derek0883 has quit [Remote host closed the connection]
derek0883 has joined #systemtap
<wmealing> that'll do it every time
derek0883 has quit [Ping timeout: 264 seconds]
orivej has quit [Ping timeout: 264 seconds]
mjw has quit [Quit: Leaving]
derek0883 has joined #systemtap
tonyj_ has quit [Remote host closed the connection]
derek0883 has quit [Ping timeout: 264 seconds]
orivej has joined #systemtap
hpt has quit [Ping timeout: 246 seconds]
khaled has quit [Remote host closed the connection]
khaled has joined #systemtap
mjw has joined #systemtap
khaled has quit [Remote host closed the connection]
khaled has joined #systemtap
* wmealing yawns
<wmealing> how would i access argv in here, ive tried $argv but its bugging out
<wmealing> main obviously has an argv
<wmealing> i can see it in $$vars
<fche> hi wmealing
<wmealing> hi hi
<fche> if you can make stap have an assertion failure, we've done something wrong
<wmealing> i think ive figured it out.
<wmealing> i think its user error
<wmealing> been a while frank, ive been busy.
<wmealing> i'm now doing userspace probes.
<wmealing> because.. you know..
<fche> why not
<wmealing> exactly
<wmealing> just before i go any further, can i modify argv[0] on main entry ?
<wmealing> is that something i should be able to do
<fche> depends
<wmealing> on what
<fche> not sure :) whether you're trying to overwrite the string, or its pointer in argv[], maybe
* wmealing thinks
<wmealing> i think i want the string
<wmealing> maybe.. i have it working
<wmealing> i could just have it crash instead.
<fche> that's easier
<wmealing> ;)
<wmealing> waay easier
<fche> yeah writing a string into userspace, on top of another string in paged-in .data is doable
<fche> set_user_string()
<wmealing> thats where i'm at
<modem_> hi eveyrone
<modem_> happy new years 2021
* wmealing waves
<modem_> keep us up with this impressive and awesome project :-) THANKS
<wmealing> seriously though, i dont think people understand how powerful stap is
<fche> :)
tonyj_ has joined #systemtap
tromey has joined #systemtap
amerey has joined #systemtap
orivej has quit [Ping timeout: 265 seconds]
mjw has quit [Quit: Leaving]
mjw has joined #systemtap
orivej has joined #systemtap
derek0883 has joined #systemtap
derek0883 has quit [Remote host closed the connection]
derek0883 has joined #systemtap
fdalleau_away is now known as fdalleau
derek0883 has quit [Remote host closed the connection]
derek0883 has joined #systemtap
* kerneltoast works on stap despite having never used it
<kerneltoast> fche, do you have any other ideas that don't need staprun changes, aside from the per-cpu timer one?
<fche> wonder how much farther one could push my timestamp-the-last-commit draft from last week
<kerneltoast> translation please, urban dictionary isn't helping
<fche> no lingo jingo there
<fche> I mean the patch I showed you last week, the one that saved jiffies_64 or something
<fche> and conditionally called switch_subbuf
<fche> that you didn't like because what if this or that
modem_ has quit [Read error: Connection reset by peer]
<fche> hmmm why don't we put that into what's left of _print_flush() ? ie. called at the end of a probe handler, so it can't let little prints break up
modem has joined #systemtap
<fche> ie., don't associate it with a commit (one print op) but with the flush (one probe handler execution)
<kerneltoast> agentzh had that idea too
<kerneltoast> flush for every probe handler
<fche> well, that's what we've had there for years
<kerneltoast> flush for every probe handler and wait for staprun to consume before proceeding?
<fche> no, can't wait
<kerneltoast> oh yeah
<kerneltoast> tracepoints are evil
<kerneltoast> almost forgot
fdalleau has quit [Quit: Coyote finally caught me]
fdalleau has joined #systemtap
gavinguo___ has quit [*.net *.split]
gavinguo___ has joined #systemtap
derek0883 has quit [Remote host closed the connection]
tromey has quit [Quit: ERC (IRC client for Emacs 27.1)]
derek0883 has joined #systemtap
fdalleau is now known as fdalleau_away
derek0883 has quit [Remote host closed the connection]
derek0883 has joined #systemtap
derek0883 has quit [Remote host closed the connection]
amerey has quit [Quit: Leaving]
orivej has quit [Ping timeout: 240 seconds]
khaled has quit [Quit: Konversation terminated!]
<kerneltoast> fche, so i took the satanic approach
<kerneltoast> take a look
<kerneltoast> at least the implementation is nice and clean
<fche> doesn't it seem to require an explicit message of this sort, when there's that nice little read(2) coming up in just a second?
<fche> doesn't it seem WEIRD to ...
<kerneltoast> it's because relay controls the read()
<kerneltoast> and we don't
<kerneltoast> that's the whole crux of this problem
<fche> We could intervene
<kerneltoast> how
<fche> it's just a file_operations* vtable
<kerneltoast> h a c k y
<kerneltoast> the function that makes all of this a PITA is relay_file_poll()
<kerneltoast> if we could hijack relay_file_poll() then staprun wouldn't need that command, and we wouldn't need to have at least 1 subbuf switched to make relay wake up staprun
<kerneltoast> all we'd need is to swap the current subbuf in relay_file_poll() if there's data in it
<kerneltoast> but so hacky...
<fche> what wakes up staprun, if not kernel-side subbuf switching right now?
<kerneltoast> signals
<kerneltoast> poll_wait(filp, &buf->read_wait, wait); <--- this is where staprun is waiting
<fche> in the trickle-output case, what is waking it up
<fche> timeout?
<kerneltoast> yeah, but when there's a timeout there's no subbuf to read
<kerneltoast> maybe in a few years you can get some intern to slave away and get rid of relay from stap