<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Tlb-Shootdown on Jasper</title><link>https://jasper-aa64.github.io/tags/tlb-shootdown/</link><description>Recent content in Tlb-Shootdown on Jasper</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Wed, 04 Nov 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://jasper-aa64.github.io/tags/tlb-shootdown/index.xml" rel="self" type="application/rss+xml"/><item><title>Low-Latency Trading — Context Switches, Page Tables and the TLB</title><link>https://jasper-aa64.github.io/posts/low-latency-context-switch-page-table-tlb/</link><pubDate>Wed, 04 Nov 2026 00:00:00 +0000</pubDate><guid>https://jasper-aa64.github.io/posts/low-latency-context-switch-page-table-tlb/</guid><description>Threads are lighter than processes because the TLB and caches stay usable after the switch, not because the switch itself is cheaper. The TLB has no MESI: when any thread in a process changes the page tables, every core still holding that page table gets interrupted, and pinning and isolcpus cannot prevent it, so once a hot-path process is running its address space is read-only.</description></item><item><title>Trading System Notes #3: Memory Pools and Allocators</title><link>https://jasper-aa64.github.io/posts/hot-path-memory-allocators/</link><pubDate>Thu, 17 Sep 2026 00:00:00 +0000</pubDate><guid>https://jasper-aa64.github.io/posts/hot-path-memory-allocators/</guid><description>Every technique in this post does the same thing at a different layer: move an uncertain, kernel-involving operation off the hot path and force it to happen once, upfront, before it can ambush a single request. An object pool replaces malloc&amp;rsquo;s variable-cost search with an always-O(1) free list. mlockall and careful mallopt tuning stop the kernel from quietly taking pages back — and pre-faulting closes the one gap mlock alone leaves open. A hand-rolled arena allocator makes the STL itself cooperate with a custom allocator backed by bump-pointer memory. std::pmr solves the same STL-cooperation problem the standard library&amp;rsquo;s way — trading compile-time speed for runtime flexibility.</description></item></channel></rss>