Moe Charm (CI)
cd3280eee7
Implement MADV_POPULATE_WRITE fix for SuperSlab allocation
...
Add support for MADV_POPULATE_WRITE (Linux 5.14+) to force page population
AFTER munmap trimming in SuperSlab fallback path.
Changes:
1. core/box/ss_os_acquire_box.c (lines 171-201):
- Apply MADV_POPULATE_WRITE after munmap prefix/suffix trim
- Fallback to explicit page touch for kernels < 5.14
- Always cleanup suffix region (remove MADV_DONTNEED path)
2. core/superslab_cache.c (lines 111-121):
- Use MADV_POPULATE_WRITE instead of memset for efficiency
- Fallback to memset if madvise fails
Testing Results:
- Page faults: Unchanged (~145K per 1M ops)
- Throughput: -2% (4.18M → 4.10M ops/s with HAKMEM_SS_PREFAULT=1)
- Root cause: 97.6% of page faults are from libc memset in initialization,
not from SuperSlab memory access
Conclusion: MADV_POPULATE_WRITE is effective for SuperSlab memory,
but overall page fault bottleneck comes from TLS/shared pool initialization.
Startup warmup remains the most effective solution (already implemented
in bench_random_mixed.c with +9.5% improvement).
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com >
2025-12-05 10:42:47 +09:00
..
2025-11-09 18:55:50 +09:00
2025-11-09 18:55:50 +09:00
2025-11-07 01:27:04 +09:00
2025-12-03 12:11:27 +09:00
2025-11-30 05:12:32 +09:00
2025-11-20 07:32:30 +09:00
2025-12-03 10:34:39 +09:00
2025-11-13 01:45:30 +09:00
2025-11-29 07:57:49 +09:00
2025-12-04 16:21:54 +09:00
2025-11-13 01:45:30 +09:00
2025-12-04 16:21:54 +09:00
2025-12-01 16:05:55 +09:00
2025-12-01 13:47:23 +09:00
2025-11-30 15:27:53 +09:00
2025-12-01 16:37:59 +09:00
2025-11-07 01:27:04 +09:00
2025-12-03 10:34:39 +09:00
2025-11-07 01:27:04 +09:00
2025-11-21 23:00:24 +09:00
2025-11-26 12:33:49 +09:00
2025-12-01 16:37:59 +09:00
2025-12-04 04:58:22 +09:00
2025-12-04 16:21:54 +09:00
2025-12-04 04:58:22 +09:00
2025-12-03 12:11:27 +09:00
2025-12-04 14:22:48 +09:00
2025-11-17 02:47:58 +09:00
2025-11-15 22:08:51 +09:00
2025-12-04 16:21:54 +09:00
2025-12-04 16:21:54 +09:00
2025-11-26 17:12:41 +09:00
2025-12-04 14:22:48 +09:00
2025-12-03 20:42:28 +09:00
2025-11-07 01:27:04 +09:00
2025-12-04 16:21:54 +09:00
2025-11-07 01:27:04 +09:00
2025-12-04 14:22:48 +09:00
2025-12-04 19:20:44 +09:00
2025-11-20 07:32:30 +09:00
2025-12-03 10:34:39 +09:00
2025-11-12 02:45:00 +09:00
2025-12-04 16:21:54 +09:00
2025-11-28 16:08:44 +09:00
2025-12-03 10:34:39 +09:00
2025-11-07 01:27:04 +09:00
2025-11-29 14:39:07 +09:00
2025-12-04 16:21:54 +09:00
2025-12-04 16:21:54 +09:00
2025-11-17 02:47:58 +09:00
2025-12-01 22:06:10 +09:00
2025-12-01 22:06:10 +09:00
2025-11-06 21:54:12 +09:00
2025-11-06 21:54:12 +09:00
2025-11-06 21:54:12 +09:00
2025-11-07 01:27:04 +09:00
2025-11-07 01:27:04 +09:00
2025-11-07 01:27:04 +09:00
2025-11-07 01:27:04 +09:00
2025-11-07 01:27:04 +09:00
2025-11-06 21:54:12 +09:00
2025-11-20 07:32:30 +09:00
2025-12-03 10:34:39 +09:00
2025-11-13 01:45:30 +09:00
2025-12-03 17:18:31 +09:00
2025-12-04 16:21:54 +09:00
2025-12-01 16:37:59 +09:00
2025-12-04 23:39:02 +09:00
2025-11-22 03:30:47 +09:00
2025-11-30 07:16:50 +09:00
2025-12-04 06:22:09 +09:00
2025-11-30 10:48:50 +09:00
2025-11-20 07:32:30 +09:00
2025-11-20 07:32:30 +09:00
2025-11-30 07:16:50 +09:00
2025-11-30 07:16:50 +09:00
2025-12-04 20:49:21 +09:00
2025-12-04 14:22:48 +09:00
2025-11-20 07:32:30 +09:00
2025-11-20 07:32:30 +09:00
2025-12-02 19:43:23 +09:00
2025-11-28 14:11:37 +09:00
2025-11-17 05:29:08 +09:00
2025-12-03 10:34:39 +09:00
2025-11-16 05:48:59 +09:00
2025-12-05 10:42:47 +09:00
2025-11-20 07:32:30 +09:00
2025-12-04 20:11:24 +09:00
2025-12-04 06:22:09 +09:00
2025-11-20 07:32:30 +09:00
2025-11-20 07:32:30 +09:00
2025-11-22 02:46:57 +09:00
2025-11-20 07:32:30 +09:00
2025-11-20 07:32:30 +09:00
2025-12-04 18:01:25 +09:00
2025-12-03 20:42:28 +09:00
2025-12-03 20:42:28 +09:00
2025-11-28 13:42:39 +09:00
2025-11-26 12:33:49 +09:00
2025-11-12 02:45:00 +09:00
2025-11-29 08:44:29 +09:00
2025-11-30 11:06:44 +09:00
2025-12-04 23:31:54 +09:00
2025-12-02 16:16:51 +09:00
2025-12-02 16:16:51 +09:00
2025-12-04 23:31:54 +09:00
2025-12-04 12:20:21 +09:00
2025-12-03 12:43:02 +09:00
2025-12-03 17:18:31 +09:00
2025-11-30 10:48:50 +09:00
2025-11-30 10:48:50 +09:00
2025-12-03 11:38:11 +09:00
2025-12-03 12:11:27 +09:00
2025-12-04 16:21:54 +09:00
2025-11-20 07:32:30 +09:00
2025-11-28 13:42:39 +09:00
2025-12-04 05:54:54 +09:00
2025-12-04 18:01:25 +09:00
2025-12-04 18:01:25 +09:00
2025-11-20 07:32:30 +09:00
2025-11-20 07:32:30 +09:00
2025-11-20 07:32:30 +09:00
2025-11-28 13:42:39 +09:00
2025-12-04 18:53:04 +09:00
2025-12-02 23:29:07 +09:00
2025-12-03 18:06:24 +09:00
2025-12-04 16:21:54 +09:00
2025-12-04 12:55:53 +09:00
2025-12-05 06:16:12 +09:00
2025-12-05 06:16:12 +09:00
2025-12-02 19:13:28 +09:00
2025-12-02 19:13:28 +09:00