Files
hakmem/core/hakmem_tiny_ss_active_box.inc
Moe Charm (CI) 2878459132 Refactor: Extract 4 safe Box modules from hakmem_tiny.c (-73% total reduction)
Conservative refactoring with Task-sensei's safety analysis.

## Changes

**hakmem_tiny.c**: 616 → 562 lines (-54 lines, -9% this phase)
**Total reduction**: 2081 → 562 lines (-1519 lines, -73% cumulative) 🏆

## Extracted Modules (4 new LOW-risk boxes)

9. **ss_active_box** (6 lines)
   - ss_active_add() - atomic add to active counter
   - ss_active_inc() - atomic increment active counter
   - Pure utility functions, no dependencies
   - Risk: LOW

10. **eventq_box** (32 lines)
   - hak_thread_id16() - thread ID compression
   - eventq_push_ex() - event queue push with sampling
   - Intelligence/telemetry helpers
   - Risk: LOW

11. **sll_cap_box** (12 lines)
   - sll_cap_for_class() - SLL capacity policy
   - Hot classes get multiplier × mag_cap
   - Cold classes get mag_cap / 2
   - Risk: LOW

12. **ultra_batch_box** (20 lines)
   - g_ultra_batch_override[] - batch size overrides
   - g_ultra_sll_cap_override[] - SLL capacity overrides
   - ultra_batch_for_class() - batch size policy
   - Risk: LOW

## Cumulative Progress (12 boxes total)

**Phase 1** (5 boxes): 2081 → 995 lines (-52%)
**Phase 2** (3 boxes): 995 → 616 lines (-38%)
**Phase 3** (4 boxes): 616 → 562 lines (-9%)

**All 12 boxes**:
1. config_box (211 lines)
2. publish_box (419 lines)
3. globals_box (256 lines)
4. phase6_wrappers_box (122 lines)
5. ace_guard_box (100 lines)
6. tls_state_box (224 lines)
7. legacy_slow_box (96 lines)
8. slab_lookup_box (77 lines)
9. ss_active_box (6 lines) 
10. eventq_box (32 lines) 
11. sll_cap_box (12 lines) 
12. ultra_batch_box (20 lines) 

**Total extracted**: 1,575 lines across 12 coherent modules
**Remaining core**: 562 lines (highly focused)

## Safety Approach

- Task-sensei performed deep dependency analysis
- Extracted only LOW-risk candidates
- All dependencies verified at compile time
- Forward declarations already present
- No circular dependencies
- Build tested after each extraction 

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-21 03:20:42 +09:00

7 lines
298 B
C++

void ss_active_add(SuperSlab* ss, uint32_t n) {
atomic_fetch_add_explicit(&ss->total_active_blocks, n, memory_order_relaxed);
}
static inline __attribute__((always_inline)) void ss_active_inc(SuperSlab* ss) {
atomic_fetch_add_explicit(&ss->total_active_blocks, 1u, memory_order_relaxed);
}