Phase v4-mid-6: Implement C6 v4 TLS Fastlist (Gated)

- Implemented TLS fastlist logic for C6 in smallobject_hotbox_v4.c (alloc/free).
- Added SmallC6FastState struct and g_small_c6_fast TLS variable.
- Gated the fastlist logic with HAKMEM_SMALL_HEAP_V4_FASTLIST (default OFF) due to observed instability in mixed workloads.
- Fixed a memory leak in small_heap_free_fast_v4 fallback path by calling hak_pool_free.
- Updated CURRENT_TASK.md with phase report.
This commit is contained in:
Moe Charm (CI)
2025-12-11 01:44:08 +09:00
parent dd974b49c5
commit e486dd2c55
4 changed files with 113 additions and 1 deletions

View File

@ -120,6 +120,21 @@
---
### Phase v4-mid-6: C6 v4 TLS Fastlist (2025-12-11)
- **実装**:
- `core/smallobject_hotbox_v4.c` に C6 専用の TLS fastlist (`g_small_c6_fast`) を追加。
- `small_heap_alloc_fast_v4` / `free` の冒頭で fastlist をチェックし、O(1) で処理するパスを実装。
- 安全のため ENV `HAKMEM_SMALL_HEAP_V4_FASTLIST=1` でのみ有効化(デフォルト OFF
- `small_heap_free_fast_v4` のフォールバック時に `hak_pool_free` を呼ぶよう修正(メモリリーク防止)。
- **評価**:
- `bench_mid_large_mt_hakmem` (C6-heavy): v4 ON で完走、約 22M ops/sfastlist OFF時と同等
- `bench_random_mixed_hakmem` (Mixed 16-1024B): v4 ON にすると fastlist ON/OFF に関わらず SEGV が発生することを確認Phase v4-mid-5 時点からの潜在的な不安定性)。
- 結論: Fastlist 機構は実装済みだが、v4 自体が Mixed ワークロードで不安定なため、機能は ENV ゲートで封印してマージする。
---
### 5. 健康診断ラン(必ず最初に叩く 2 本)
- Tiny/Mixed 用: