custom-allocators
Custom allocator skill for memory allocation strategies. Use when implementing…
Virtual memory skill for paging, page tables, and TLB. Use when explaining page faults, multi-level page tables, TLB behavior, or virtual vs physical addressing. Activates on queries about virtual memory, page table, TLB, page fault, mmap paging, or x86-64 paging.
$ npx -y skills add mohitmishra786/low-level-dev-skills --skill virtual-memory-paging-and-tlb --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/virtual-memory-paging-and-tlbContext preview
The summary Claude sees to decide when to auto-load this skill.
Virtual memory skill for paging, page tables, and TLB. Use when explaining page faults, multi-level page tables, TLB behavior, or virtual vs physical addressing. Activates on queries about virtual memory, page table, TLB, page fault, mmap paging, or x86-64 paging.
name: virtual-memory-paging-and-tlb description: Virtual memory skill for paging, page tables, and TLB. Use when explaining page faults, multi-level page tables, TLB behavior, or virtual vs physical addressing. Activates on queries about virtual memory, page table, TLB, page fault, mmap paging, or x86-64 paging.
Explain virtual memory: paging, multi-level page tables, TLB role, page faults, and address translation — bridging OS kernels, embedded MPU, and performance analysis.
Virtual address (VA)
├── TLB lookup → physical on hit
└── TLB miss → page table walk → fill TLB
├── valid PTE → physical address
└── invalid → page fault (OS handles)CR3 → PML4 → PDPT → PD → PT → physical frame
Linux on x86_64 uses 4 KiB pages (default) and optional 2 MiB / 1 GiB huge pages.
| Fault | Typical cause | |-------|----------------| | Major | Disk read — file-backed page not in RAM | | Minor | Zero-fill or COW break | | Protection | User access to kernel page, W^X violation |
# Linux page fault stats grep pgfault /proc/vmstat
Large sparse address spaces + random pointer chasing → TLB misses dominate.
Mitigations:
Many MCUs use **MPU** (region-based) not full paging — no TLB, fixed region count. Application processors use MMU + OS.
See `skills/platform/riscv-privileged` for Sv39/Sv48.
cat /proc/self/maps pmap -x $$
/virtual-memory-paging-and-tlb Explain why 4 KiB random access hurts TLB and hugepage helps
| Symptom | Cause | Fix | |---------|-------|-----| | Segfault | Unmapped VA | Fix pointer; check `maps` | | Slow mmap workload | TLB thrashing | Huge pages; reduce regions | | COW spike after fork | Shared pages split on write | Expected; consider `MAP_POPULATE` | | W^X fault | JIT without mprotect dance | Separate RW and RX mappings | | Wrong phys on MCU | No MMU — linear map | Use linker script addresses |
A curated suite of AI agent skills for systems and low-level programming — C/C++, Rust, Zig, GPU, bare-metal firmware, Linux kernel/driver development, computer architecture, compiler internals, HPC, and more.
Repo: mohitmishra786/low-level-dev-skills
Custom allocator skill for memory allocation strategies. Use when implementing…
NUMA programming skill for multi-socket memory locality. Use when detecting NUMA topology,…
AF_XDP skill for high-performance XDP sockets. Use when creating AF_XDP sockets, configuring…
DPDK skill for userspace packet I/O. Use when initializing EAL, configuring PMD drivers,…
io_uring skill for Linux async I/O. Use when building high-performance servers with liburing,…
Bare-metal ADC and DAC skill. Use when configuring analog sampling, DMA-driven ADC,…