New blog post: getting function names from CPU profile samples marselester.com/diy-cpu-prof… #linux
A follow-up post about symbolization: position independent executable (PIE) marselester.com/diy-cpu-prof… #linux
I recently learned that Linux implements processes and threads with light weight processes which are represented as task_struct in the kernel marselester.com/linux-proces….
I am curious about the reasons behind "Latency Numbers Every Programmer Should Know", so I wrote a post to educate myself a bit on this topic marselester.com/bandwitch-of….
TIL The useful work must take at least as long as the startup time (Half-Useful performance principle). For disks, this means reading/writing ~1MB per seek, for SSDs — 64KB. Tiny transfers are death for performance. This is from "Understanding Software Dynamics" book.
Produce and consume Celery tasks on Go side with Gopher Celery 🥬 github.com/marselester/gophe… #golang #python #celery
A peek under the hood of @ParcaDev continuous profiler (BPF agent) marselester.com/continuous-p… #bpf #golang
tcplife traces the lifespan of TCP sessions showing their duration, address details, throughput github.com/marselester/libbp… #bpf #ebpf #golang
A short post about running a BPF program in Kubernetes marselester.com/bpf-go-progr… #kubernetes #bpf #ebpf
"Exercises using the hip hinge position remain king for cycling performance" bashguardian.com/featured/sc…
4 days ago fentry support (similar to kprobes) was merged in github.com/cilium/ebpf which made possible porting tcpconnlat to Go github.com/marselester/libbp…. The tool shows the time taken to establish a TCP connection. #bpf #ebpf #golang
For example, "curl example.com" took 31.46 milliseconds to establish a connection.
Here I narrated my experience of writing Go & BPF programs in two posts:
1. execsnoop marselester.com/bpf-go-front…
2. tcpconnect marselester.com/bpf-go-front…
#bpf #ebpf #golang
Made a Go frontend for execsnoop to trace new process execution (bcc project) github.com/marselester/libbp… #bpf #ebpf #golang
Laplace's law says that the chance of encountering a bitter pistachio equals to the number of already eaten bitter ones + 1, divided by the total number of eaten pistachios + 2.
I got 0.13 = (2+1)/(20+2), so she'll be right.
Finally got tcpconnect (iovisor/bcc project) working after many attempts to port it to Go github.com/marselester/libbp…. Many thanks to kind folks from @ciliumproject. #bpf #ebpf #golang
Highly recommend "Systems Performance" book by Brendan Gregg brendangregg.com/systems-per….
I especially liked the case studies, I wish that chapter was as big as the others.



