Just to advertise the perf tool has inbuilt flamegraph generation code these days (well leaning on D3.js). So `perf script report flamegraph` will convert a perf.data file into a flamegraph.html. Similarly there is…
Agreed this is awesome, obviously sanitizers fill some of this gap currently but they aren't great with things like reference counting that RAII makes a doddle. Fwiw, here is an implementation of a runtime RAII style…
Somewhat related, "Data-type profiling for perf": https://lwn.net/Articles/955709/
For a collection of profilers you can also check out the Profilerpedia: https://profilerpedia.markhansen.co.nz/
This is awesome work and textual being able to support terminal or web (https://github.com/Textualize/textual-web) also gives hope that this can be more than a terminal app. I'm hoping that in the future features like…
Wouldn't all your kernel stacks then end up in whatever this handler is? Why not implement your approach and mail it to LKML :-)
prodfiler clearly has a market. It would be interesting to see the approach as something standard in the kernel tree, perhaps it can be added to perf's synthesis, etc. There is already BPF based profiling within perf to…
Allowing processes to sniff each others stacks has some fairly obvious security issues.
For every running application turn DWARF data into BPF maps. Does this scale?
AMD will have support in Zen4 and Linux 6.1 (which is LTS): https://lore.kernel.org/lkml/Yz%2FcpNTSacRMh1FK@gmail.com/ Further, precise events are fixed in Linux 6.2:…
DWARF bytecode is a full VM. Do compiler writers test their DWARF output? (my experience is not - especially for architectures out of the big 2 or 3) How does the kernel access the ELF file pages with the DWARF…
This could be a great Linux perf GSoC project. Projects and mentors are being looked for: https://wiki.linuxfoundation.org/gsoc/2023-gsoc-perf
Agner speaks about memory renaming back on Zen 2: https://www.agner.org/forum/viewtopic.php?t=41 Intel Alderlake has performance events for tracking it: https://github.com/intel/perfmon/blob/974c69919b2a9dfd8278cf...…
Twitter: "No need to recompile with frame pointers." Web page: "always-on profiling powered by eBPF technology." BPF stack traces are gathered using frame pointers:…
This seems relevant: Future of Memory Safety Challenges and Recommendations https://advocacy.consumerreports.org/wp-content/uploads/2023... """ Case Studies 1. The Python cryptographic authority is one of the most…
People try to get cute with 3-way compares. A real Java bug that inspired: https://errorprone.info/bugpattern/BadComparable public MyFile implements Comparable { ... long timestamp; ... @Override public int…
Fwiw, this would fail Android's Compatibility Test Suite: https://android.googlesource.com/platform/cts/+/3ece5ae7a51d...
Not having cognitive load motivates something like the LLAMA work: https://research.google/pubs/pub49008/
The Linux Foundation also has projects in the Google Summer-of-Code (GSoC): https://wiki.linuxfoundation.org/gsoc/google-summer-code-202... In 2022 GSoC is expanding eligibility to non-students:…
It can catch people by surprise that Java's narrowing conversions may not preserve the sign. For example, the following is broken: class TimestampedObject implements Comparable<TimestampedObject> { long timestamp; int…
String should be an interface/protocol. When I log a message, I want to pass a string. If I have to append large strings for a log message I don't want to run out of memory, I should be able to pass a rope/cord [1].…
Given there is before and after code, perhaps the translation can be automated. If the whole code base were auto-translated, what bugs could be detected and fed back to the C implementation? I'm assuming there is going…
The issue with BURS is that lookup tables can be 10s to 100s of MB. Most code generators will use dynamic programming, but hybrids have been considered: https://dl.acm.org/doi/10.1145/1133255.1133988 (Fast and flexible…
Just to advertise the perf tool has inbuilt flamegraph generation code these days (well leaning on D3.js). So `perf script report flamegraph` will convert a perf.data file into a flamegraph.html. Similarly there is…
Agreed this is awesome, obviously sanitizers fill some of this gap currently but they aren't great with things like reference counting that RAII makes a doddle. Fwiw, here is an implementation of a runtime RAII style…
Somewhat related, "Data-type profiling for perf": https://lwn.net/Articles/955709/
For a collection of profilers you can also check out the Profilerpedia: https://profilerpedia.markhansen.co.nz/
This is awesome work and textual being able to support terminal or web (https://github.com/Textualize/textual-web) also gives hope that this can be more than a terminal app. I'm hoping that in the future features like…
Wouldn't all your kernel stacks then end up in whatever this handler is? Why not implement your approach and mail it to LKML :-)
prodfiler clearly has a market. It would be interesting to see the approach as something standard in the kernel tree, perhaps it can be added to perf's synthesis, etc. There is already BPF based profiling within perf to…
Allowing processes to sniff each others stacks has some fairly obvious security issues.
For every running application turn DWARF data into BPF maps. Does this scale?
AMD will have support in Zen4 and Linux 6.1 (which is LTS): https://lore.kernel.org/lkml/Yz%2FcpNTSacRMh1FK@gmail.com/ Further, precise events are fixed in Linux 6.2:…
DWARF bytecode is a full VM. Do compiler writers test their DWARF output? (my experience is not - especially for architectures out of the big 2 or 3) How does the kernel access the ELF file pages with the DWARF…
This could be a great Linux perf GSoC project. Projects and mentors are being looked for: https://wiki.linuxfoundation.org/gsoc/2023-gsoc-perf
Agner speaks about memory renaming back on Zen 2: https://www.agner.org/forum/viewtopic.php?t=41 Intel Alderlake has performance events for tracking it: https://github.com/intel/perfmon/blob/974c69919b2a9dfd8278cf...…
Twitter: "No need to recompile with frame pointers." Web page: "always-on profiling powered by eBPF technology." BPF stack traces are gathered using frame pointers:…
This seems relevant: Future of Memory Safety Challenges and Recommendations https://advocacy.consumerreports.org/wp-content/uploads/2023... """ Case Studies 1. The Python cryptographic authority is one of the most…
People try to get cute with 3-way compares. A real Java bug that inspired: https://errorprone.info/bugpattern/BadComparable public MyFile implements Comparable { ... long timestamp; ... @Override public int…
Fwiw, this would fail Android's Compatibility Test Suite: https://android.googlesource.com/platform/cts/+/3ece5ae7a51d...
Not having cognitive load motivates something like the LLAMA work: https://research.google/pubs/pub49008/
The Linux Foundation also has projects in the Google Summer-of-Code (GSoC): https://wiki.linuxfoundation.org/gsoc/google-summer-code-202... In 2022 GSoC is expanding eligibility to non-students:…
It can catch people by surprise that Java's narrowing conversions may not preserve the sign. For example, the following is broken: class TimestampedObject implements Comparable<TimestampedObject> { long timestamp; int…
String should be an interface/protocol. When I log a message, I want to pass a string. If I have to append large strings for a log message I don't want to run out of memory, I should be able to pass a rope/cord [1].…
Given there is before and after code, perhaps the translation can be automated. If the whole code base were auto-translated, what bugs could be detected and fed back to the C implementation? I'm assuming there is going…
The issue with BURS is that lookup tables can be 10s to 100s of MB. Most code generators will use dynamic programming, but hybrids have been considered: https://dl.acm.org/doi/10.1145/1133255.1133988 (Fast and flexible…