Root cause identified by Task exploration agent: - box_carve_and_push_with_freelist() pops blocks from slab freelist without restoring headers before pushing to TLS SLL - Freelist blocks have stale data at offset 0 - When popped from TLS SLL, header validation fails - Error: [TLS_SLL_HDR_RESET] cls=1 got=0x00 expect=0xa1 Fix applied: 1. Added HEADER_MAGIC restoration before tls_sll_push() in box_carve_and_push_with_freelist() (carve_push_box.c:193-198) 2. Added tiny_region_id.h include for HEADER_MAGIC definition Results: - 20 threads: Header corruption ELIMINATED ✓ - 4 threads: Still shows 1 corruption (partial fix) - Suggests multiple freelist pop paths exist Additional work needed: - Check hakmem_tiny_alloc_new.inc freelist pops - Verify all freelist → TLS SLL paths write headers Reference: Same pattern as tiny_superslab_alloc.inc.h:159-169 (correct impl) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
73 lines
3.0 KiB
Makefile
73 lines
3.0 KiB
Makefile
core/box/carve_push_box.o: core/box/carve_push_box.c \
|
|
core/box/../hakmem_tiny.h core/box/../hakmem_build_flags.h \
|
|
core/box/../hakmem_trace.h core/box/../hakmem_tiny_mini_mag.h \
|
|
core/box/../tiny_tls.h core/box/../hakmem_tiny_superslab.h \
|
|
core/box/../superslab/superslab_types.h \
|
|
core/hakmem_tiny_superslab_constants.h \
|
|
core/box/../superslab/superslab_inline.h \
|
|
core/box/../superslab/superslab_types.h \
|
|
core/box/../superslab/../tiny_box_geometry.h \
|
|
core/box/../superslab/../hakmem_tiny_superslab_constants.h \
|
|
core/box/../superslab/../hakmem_tiny_config.h \
|
|
core/box/../tiny_debug_ring.h core/box/../tiny_remote.h \
|
|
core/box/../hakmem_tiny_superslab_constants.h \
|
|
core/box/../hakmem_tiny_config.h core/box/../hakmem_tiny_superslab.h \
|
|
core/box/../hakmem_tiny_integrity.h core/box/../hakmem_tiny.h \
|
|
core/box/../tiny_region_id.h core/box/../tiny_box_geometry.h \
|
|
core/box/../ptr_track.h core/box/../hakmem_super_registry.h \
|
|
core/box/carve_push_box.h core/box/capacity_box.h core/box/tls_sll_box.h \
|
|
core/box/../hakmem_build_flags.h core/box/../tiny_remote.h \
|
|
core/box/../ptr_track.h core/box/../ptr_trace.h \
|
|
core/box/../box/tiny_next_ptr_box.h core/hakmem_tiny_config.h \
|
|
core/tiny_nextptr.h core/hakmem_build_flags.h core/tiny_region_id.h \
|
|
core/superslab/superslab_inline.h core/box/../tiny_debug_ring.h \
|
|
core/box/../superslab/superslab_inline.h core/box/../tiny_refill_opt.h \
|
|
core/box/../tiny_region_id.h core/box/../box/slab_freelist_atomic.h \
|
|
core/box/../box/../superslab/superslab_types.h \
|
|
core/box/../box/tls_sll_box.h core/box/../tiny_box_geometry.h
|
|
core/box/../hakmem_tiny.h:
|
|
core/box/../hakmem_build_flags.h:
|
|
core/box/../hakmem_trace.h:
|
|
core/box/../hakmem_tiny_mini_mag.h:
|
|
core/box/../tiny_tls.h:
|
|
core/box/../hakmem_tiny_superslab.h:
|
|
core/box/../superslab/superslab_types.h:
|
|
core/hakmem_tiny_superslab_constants.h:
|
|
core/box/../superslab/superslab_inline.h:
|
|
core/box/../superslab/superslab_types.h:
|
|
core/box/../superslab/../tiny_box_geometry.h:
|
|
core/box/../superslab/../hakmem_tiny_superslab_constants.h:
|
|
core/box/../superslab/../hakmem_tiny_config.h:
|
|
core/box/../tiny_debug_ring.h:
|
|
core/box/../tiny_remote.h:
|
|
core/box/../hakmem_tiny_superslab_constants.h:
|
|
core/box/../hakmem_tiny_config.h:
|
|
core/box/../hakmem_tiny_superslab.h:
|
|
core/box/../hakmem_tiny_integrity.h:
|
|
core/box/../hakmem_tiny.h:
|
|
core/box/../tiny_region_id.h:
|
|
core/box/../tiny_box_geometry.h:
|
|
core/box/../ptr_track.h:
|
|
core/box/../hakmem_super_registry.h:
|
|
core/box/carve_push_box.h:
|
|
core/box/capacity_box.h:
|
|
core/box/tls_sll_box.h:
|
|
core/box/../hakmem_build_flags.h:
|
|
core/box/../tiny_remote.h:
|
|
core/box/../ptr_track.h:
|
|
core/box/../ptr_trace.h:
|
|
core/box/../box/tiny_next_ptr_box.h:
|
|
core/hakmem_tiny_config.h:
|
|
core/tiny_nextptr.h:
|
|
core/hakmem_build_flags.h:
|
|
core/tiny_region_id.h:
|
|
core/superslab/superslab_inline.h:
|
|
core/box/../tiny_debug_ring.h:
|
|
core/box/../superslab/superslab_inline.h:
|
|
core/box/../tiny_refill_opt.h:
|
|
core/box/../tiny_region_id.h:
|
|
core/box/../box/slab_freelist_atomic.h:
|
|
core/box/../box/../superslab/superslab_types.h:
|
|
core/box/../box/tls_sll_box.h:
|
|
core/box/../tiny_box_geometry.h:
|