Files
hakmem/docs/archive/MAINLINE_INTEGRATION.md
Moe Charm (CI) 2ec6689dee Docs: Update ENV variable documentation after Ultra HEAP deletion
Updated documentation to reflect commit 6b791b97d deletions:

Removed ENV variables (6):
- HAKMEM_TINY_ULTRA_FRONT
- HAKMEM_TINY_ULTRA_L0
- HAKMEM_TINY_ULTRA_HEAP_DUMP
- HAKMEM_TINY_ULTRA_PAGE_DUMP
- HAKMEM_TINY_BG_REMOTE (no getenv, dead code)
- HAKMEM_TINY_BG_REMOTE_BATCH (no getenv, dead code)

Files updated (5):
- docs/analysis/ENV_CLEANUP_ANALYSIS.md: Updated BG/Ultra counts
- docs/analysis/ENV_QUICK_REFERENCE.md: Updated verification sections
- docs/analysis/ENV_CLEANUP_PLAN.md: Added REMOVED category
- docs/archive/TINY_LEARNING_LAYER.md: Added archive notice
- docs/archive/MAINLINE_INTEGRATION.md: Added archive notice

Changes: +71/-32 lines

Preserved ENV variables:
- HAKMEM_TINY_ULTRA_SLIM (active 4-layer fast path)
- HAKMEM_ULTRA_SLIM_STATS (Ultra SLIM statistics)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 04:51:59 +09:00

45 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Mainline Integration Plan (Tiny focus)
> **⚠️ ARCHIVE NOTICE (2025-11-26)**
> Several ENV variables and files referenced in this document were removed in commit 6b791b97d:
> - `HAKMEM_TINY_BG_REMOTE` (deleted)
> - `HAKMEM_TINY_BG_REMOTE_BATCH` (deleted)
>
> This document is kept for historical reference but may contain outdated information.
What we promoted to mainline (safe, general)
- Safer tiny refill into SLL (already integrated)
- `sll_refill_small_from_ss(class_idx, max_take)` now caps refill by the actual SLL free capacity, avoiding overtake and wasted meta->used increments.
- Entry order consolidation in the small fast path
- Prefer `SLL → Magazine → SuperSlab` in the normal (nonbench) path; Quick/FrontCache/Ultra tiers remain optin.
- Targeted remotedrain queue (compiled in, default OFF)
- Perclass Treiber queue for slabs that exceed remote thresholds; disabled by default via env knobs to preserve conservative behavior.
- PGO recipe (optin)
- Makefile targets for PGO on tiny benches are available, but not required for normal builds.
What remains benchonly (NOT promoted)
- SLLonly front (Magazine compiled out) and TLS warmup
- These are highly benchmarkspecific and are kept in benchonly builds.
- Freeside SLLfirst push without owner/stats
- Mainline preserves learning/stats semantics; bench builds can cut them out.
- Quick/FrontCache / 32/64 specialization hardwiring
- Retained as A/B options; not enabled by default in mainline.
Recommended “PerfMain” preset (optin, no bench macros)
- Environment (TinyHot biased but general):
- `HAKMEM_TINY_TLS_SLL=1`
- `HAKMEM_TINY_REFILL_MAX=96`
- `HAKMEM_TINY_REFILL_MAX_HOT=192`
- `HAKMEM_TINY_SPILL_HYST=16`
- `HAKMEM_TINY_BG_REMOTE=0` (keep targeted remote drain off by default)
- Keep Quick/FrontCache/Ultra OFF unless explicitly A/B tested
How to try PerfMain locally
- Build benches: `make bench_fast`
- Run tinyhot triad (no bench macros): `bash scripts/run_tiny_hot_triad.sh 60000`
- Run randommixed matrix: `bash scripts/run_random_mixed_matrix.sh 100000`
Notes
- LD_PRELOAD/app mode remains conservative (LD_SAFE staging). Tinyonly and passthrough modes are recommended for stability. The benchonly optimizations are intentionally not applied in LD mode.