Document that dev machine/env are kept constant across sessions

This commit is contained in:
Moe Charm (CI)
2025-12-10 15:19:10 +09:00
parent 677030d699
commit 31dd1e19d7

View File

@ -187,6 +187,8 @@ Do / Dont壊れやすいパターンの禁止
このリポジトリは Superslab / madvise / Pool v1 flatten など OS 依存の経路を多用します。 このリポジトリは Superslab / madvise / Pool v1 flatten など OS 依存の経路を多用します。
「いつの間にか壊れていた」を防ぐために、次の“健康診断ラン”と注意事項を守ってください。 「いつの間にか壊れていた」を防ぐために、次の“健康診断ラン”と注意事項を守ってください。
※ 開発マシンと OS 環境は、基本的にセッションを通じて同一構成(同一ハードウェア・同一カーネル設定)を維持して運用しています。性能の変化は「コード差分」か「明示的に変更した ENV」の影響として扱い、マシン側の揺らぎで説明しない方針です。
- DSO 領域には触らないSuperslab OS Box のフェンス) - DSO 領域には触らないSuperslab OS Box のフェンス)
- `core/box/ss_os_acquire_box.h``ss_os_madvise_guarded()`**libc/libm/ld.so など DSO 領域を dladdr で検出したら即スキップ** します。 - `core/box/ss_os_acquire_box.h``ss_os_madvise_guarded()`**libc/libm/ld.so など DSO 領域を dladdr で検出したら即スキップ** します。
- DSO に対する madvise 試行は **バグ扱い**`g_ss_madvise_disabled` / DSO-skip ログを必ず 1 回だけ出し、以降は触らない前提です。 - DSO に対する madvise 試行は **バグ扱い**`g_ss_madvise_disabled` / DSO-skip ログを必ず 1 回だけ出し、以降は触らない前提です。
@ -232,3 +234,7 @@ Do / Dont壊れやすいパターンの禁止
- Tiny / Superslab / Pool に手を入れたあと、まず上記の健康診断ランを 1 回だけ回してから長尺ベンチ・本番 A/B に進んでください。 - Tiny / Superslab / Pool に手を入れたあと、まず上記の健康診断ランを 1 回だけ回してから長尺ベンチ・本番 A/B に進んでください。
- 健康診断ランが落ちる場合は **新しい最適化を積む前に** Box 境界ptr 分類 / Superslab OS Box / Pool v1 flatten Boxを優先的に直します。 - 健康診断ランが落ちる場合は **新しい最適化を積む前に** Box 境界ptr 分類 / Superslab OS Box / Pool v1 flatten Boxを優先的に直します。
- ベンチや評価を始めるときは、`docs/analysis/ENV_PROFILE_PRESETS.md` のプリセットMIXED_TINYV3_C7_SAFE / C6_HEAVY_LEGACY_POOLV1 / DEBUG_TINY_FRONT_PERFから必ずスタートし、追加した ENV はメモを残してください。単発の ENV を散らすと再現が難しくなります。 - ベンチや評価を始めるときは、`docs/analysis/ENV_PROFILE_PRESETS.md` のプリセットMIXED_TINYV3_C7_SAFE / C6_HEAVY_LEGACY_POOLV1 / DEBUG_TINY_FRONT_PERFから必ずスタートし、追加した ENV はメモを残してください。単発の ENV を散らすと再現が難しくなります。
- 健康診断ラン(簡易チェック)は次の 2 本を必ず通す:
- Tiny/Mixed: `HAKMEM_PROFILE=MIXED_TINYV3_C7_SAFE ./bench_random_mixed_hakmem 1000000 400 1` 35〜38M ops/s / segv/assert なしで OK
- mid/smallmid C6: `HAKMEM_PROFILE=C6_HEAVY_LEGACY_POOLV1 ./bench_mid_large_mt_hakmem 1 1000000 400 1` 約29M ops/s / segv/assert なしで OK
- まとめて実行する場合は `scripts/verify_health_profiles.sh` を 1 回叩けば OKスループットは目安表示のみ、exit code だけで判定)。