Live data from Hacker News

Magic-trace – High-resolution traces of what a process is doing

github.com

141–146 of 146 posts

Re: Magic-trace – High-resolution traces of what a process is doing

#141
post #53

Earlier quoted context omitted.

Pretty much yes. Cost is more than just monetary. There are significant indirect costs as well.

> There are significant indirect costs as well. Can you elaborate on these costs? Do you have knowledge of JS's internal needs and resources to suggest a better alternative? They are not just hapless consumers of a dead language; they actively maintain it and invest in it because it works well for them. The language itself gives them the kind of guarantees they want in their work, and their work on the language and s…

You seem eerily passionate about JS all over this thread.

Nowhere did I mention that Ocaml was a dead language or a dying language. I simply stated that there are insurmountable switching costs which incentivizes them to contribute to the larger Ocaml community.

Re: Magic-trace – High-resolution traces of what a process is doing

#142

Thanks, good to see a new perf tool (and not just another procfs top clone :-). I've started using processor trace in the cloud, thanks to bare-metal instances, but for years I couldn't touch it (not available in VMs). There's a wealth of new information it provides, and we need better tooling on top of it, like magic-trace. Glad to see "overhead" mentioned and quantified. I'd put the 2-10% at the top though, as that…

We are similarly sad about how unavailable Intel PT is in VMs. In 2022, being unavailable on Macs and VMs raises the barrier to entry extraordinarily high for many people in our target audience. Not sure if working outside of work is your cup of tea, but we've found Intel NUCs to be Good point about overhead. I've moved the 2%-10% number front and center, and wrote up a bit more detail about where that comes from in…

(Perfetto developer here)

The Perfetto UI already supports flamegraphs btw (we use it for memory profiling and CPU stack sampling). We've never bothered to implement it for userspace slices because we've never had high frequency data there to make that a worthwhile view of the data.

Contributions for this upstream are very welcome :)

Re: Magic-trace – High-resolution traces of what a process is doing

#143

Earlier quoted context omitted.

Of course they use it for trading and everything around for many years.

they use it for the control plane. it's clearly not used for actually submitting trades.

that is what i thought. the actual trading code is probably in c or c++ or is in an fpga being controlled by the trading code.

Re: Magic-trace – High-resolution traces of what a process is doing

#144
post #104
post #90

Earlier quoted context omitted.

DDIO operates mostly transparently to software, with the I/O controller feeding DMAs into a slice of L3. Hardware can opt out by setting PCIe TLP header hints, and you have some system-wide configurability via MSRs, but it's not something a userspace application can take into its own hands.

so is this taken advantage of by the OnLoad drivers of solarflare cards, for example?

Noticed this just now. It is.

Re: Magic-trace – High-resolution traces of what a process is doing

#145
post #129
post #59

Earlier quoted context omitted.

Windows has Windows Performance Analyzer, GPUView and PIX so most game devs are covered on that front :)

Do people still use GPUView? It hasn't seen a lot of development in years AFAIK and wondered if it was still working and useful. PIX is great! It gets regular updates and an active and responsive Discord channel.

We use it internally, I'm not entirely certain of external usage. It still works and is good for tracking command packet scheduling and inter-process wait chains.

Yup, PIX is THE tool for game developers. Direct3D team also has a very responsive discord channel :)

Re: Magic-trace – High-resolution traces of what a process is doing

#146
post #86
post #78

Earlier quoted context omitted.

For low-latency strategies, AMD's lack of DDIO [0] makes it a non-starter. The memory latency is a big gap to close. [0] https://www.intel.com/content/www/us/en/io/data-direct-i-o-t...

how do you access this DDIO feature if you are writing a C or C++ application? intrinsics?

It's configurable via MSR. You can also disable it system-wide or on a PCIe port basis. I detailed it all here:

https://www.jabperf.com/skip-the-line-with-intel-ddio/

Post reply on HN