4,395 karma · joined November 23, 2015
But I, personally, am happy to accept the 'Human Factors' side of reality.
Not clearly written in the original article is that "many" (I'm not sure what actual percentage, but vaguely "most") packages already have frame pointers enabled.
The problem packages that don't are exactly all of those upstream projects that intentionally compile with -fomit-frame-pointer because of those small performance gains. And those are also usually the exact same projects you end up wanting to profile or otherwise analyse :)
I work in the Support organisation at Canonical and the two most frequent projects I run into this with are Ceph and Openvswitch - they both compile with -fomit-frame-pointer by default upstream (and currently in the Ubuntu packages) which makes using perf (which I often need to do with both of those) a pain.
While you can do it, you have to record ~8kB of stack extra for every sample (times 1000 per second, times the number of CPUs...) and then unwind it later with the DWARF debug symbols. The resulting perf exports are multiple gigabytes for 0-2 minutes. Compared to maybe 25-200MB for frame-pointer enabled cases where I can usually then easily captured.
The problem is the product or upstream project wants to claim the absolute best performance, even 1% better, but the end user rarely needs that last 1% and both them and their support team would like to be able to easily use profiling in production to fix the random much more significant 10-100% performance bugs that inevitably crop up when actually using it and not benchmarking it :)
But I agree, this would be good.
But I think the decision here is basically that, in practice, it's very difficult to actually get people to follow the required practices, in practice. As has been shown in practice.
The product is generally installed onsite in a fast paced building industry that doesn’t have time/room to do it properly and often no supervision (1-2 often independent trades doing the installs) to ensure the appropriate measures are actually taken.
The risk has already been known for a while and in practice still lots of “YOLO” onsite cutting without even respirators.
If the packet loss starts at your wifi router, or your ISPs router. Or the next hop after you ISP. That all gives you a bit of an idea where the problem likely is. I solve problems like that all the time.
It’s effectively a kiosk mode.
It was always possible to do something like this, to inject the bpf code to run in-process and only export data occasionally just like the kernel side version - and the pieces already existed but no one had put all the pieces together, now someone has. Awesome!
Just need someone to implement this seamlessly into bpftrace :) That would be amazing!
If you want to understand why it's slow without this, I recently did a talk explaining the difference in tracing speed between strace and bpftrace (when tracing things in the kernel) that may help! In this case (which I didn't really cover), most function uprobes have to trap into the kernel and back twice (once on function entry and once on return, I explain why) - not as bad as the full strace example I explain in detail in the video - but still comparatively expensive.
https://www.youtube.com/watch?v=ZDTfcrp9pJI "bpftrace recipes: 5 real problems solved"
I re-ran this talk (mostly the same, a few minor updates) at the Riga Ubuntu Summit a couple of weeks ago but the videos aren't up yet. But the version above is mostly the same and was a pretty good recording :)
In space there is mostly no atmosphere, you have to radiate that heat which isn't quite as easy as it sounds: https://www.space.com/21059-space-station-cooling-system-exp...
But with the general power of the base model Apple Silicon I don't think most dev shops really need the higher end models, honestly.
I'm sure there is some kind of technical explanation but both Intel and NVIDIA seemed to managed 3+ scanouts even on low end parts for a long time.
4-6+ seconds is much more typical for a normal unit. Which is similar to normal-ish 200kW sports cars. A bit fast but not breath taking.
A good watch to understand the above
They then pluck the authorised token out of the cookie store.
Not sure if it’s related to this case or not but it was once much more popular even for sometimes human written files.
I took it to New Zealand on roaming and despite having a connection it spent so much time looking for the home network (“Three” in Australia) the battery would last half a day.