News for hackers. Stuff that matters.
Re:Low Latency Optimization: Understanding Pages (Part 1) by vgatherps on Tuesday November 29, 2022 @07:41AM (#33786851)
Nothing needs to be changed about your kernel to bypass it.

You can outright install the openonload drivers, preload to intercept epoll, and it literally just works.

Going to efvi can cut out ~1us but that requires specifically targeting efvi, and has more operational / code setup pain. Works on stock Linux all the same though

Re:Low Latency Optimization: Understanding Pages (Part 1) by pca006132 on Tuesday November 29, 2022 @09:16AM (#33787840)
Wondering if there is any guide to programming and accurately measuring low latency stuff. I am working on some low level memory management code and would like to see the latency behavior, but I always get several microseconds of standard deviation (~10%) when I try to benchmark it.

I am pinning the cores, disabled SMT and turbo boost, but haven't tried isolcpu because this has to reboot the computer.

Re:Low Latency Optimization: Understanding Pages (Part 1) by vgatherps on Tuesday November 29, 2022 @09:44AM (#33788190)
Really? With Google Bench or Criterion I've gotten pretty good resolution on microbenchmarks

The gold standard (in my experience) for latency measurement is setting up a packet splitting, marking your outbound packets with some hash/id of the inbound packet, taking hardware timestamps of all these on some dedicated host, and putting it all together after the fact. Ultimately packet-in to packet out is all the matters anyways

You can actually get pretty solid internal timestamps (how long did I take to fully process event X) with TSC counters, but you then have a coordinated omissions problem: https://www.programmingtalks.org/talk/how-not-to-measure-lat...

Re:Low Latency Optimization: Understanding Pages (Part 1) by deadcanard on Tuesday November 29, 2022 @11:47AM (#33789885)
Have you tried one the link of the article: https://docs.kernel.org/admin-guide/kernel-per-CPU-kthreads....? Also try running "perf stat -d" on your run and see anything pops out