Files
hakmem/core/hakmem_tiny_sll_cap_box.inc

13 lines
579 B
PHP
Raw Permalink Normal View History

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
static inline uint32_t sll_cap_for_class(int class_idx, uint32_t mag_cap) {
// Phase12+: 旧 g_sll_cap_override は削除済み。ここでは通常capのみを使用する。
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
uint32_t cap = mag_cap;
if (class_idx <= 3) {
uint32_t mult = (g_sll_multiplier > 0 ? (uint32_t)g_sll_multiplier : 1u);
uint64_t want = (uint64_t)cap * (uint64_t)mult;
if (want > (uint64_t)TINY_TLS_MAG_CAP) cap = TINY_TLS_MAG_CAP; else cap = (uint32_t)want;
} else if (class_idx >= 4) {
cap = (mag_cap > 1u ? (mag_cap / 2u) : 1u);
}
return cap;
}