Tiny: Enable P0→FC direct path for class7 (1KB) by default + docs

- Class7 (1KB): P0 direct-to-FastCache now default ON (HAKMEM_TINY_P0_DIRECT_FC_C7 unset or not '0').
- Keep A/B gates: HAKMEM_TINY_P0_ENABLE, HAKMEM_TINY_P0_DIRECT_FC (class5), HAKMEM_TINY_P0_DIRECT_FC_C7 (class7),
  HAKMEM_TINY_P0_DRAIN_THRESH (default 32), HAKMEM_TINY_P0_NO_DRAIN, HAKMEM_TINY_P0_LOG.
- P0 batch now supports class7 direct fill in addition to class5: gather (drain thresholded → freelist pop → linear carve)
  without writing into objects, then bulk-push into FC, update meta/active counters once.
- Docs: Update direct-FC defaults (class5+class7 ON) in docs/TINY_P0_BATCH_REFILL.md.

Notes
- Use tools/bench_rs_from_files.sh for RS(hakmem/system) to compare runs across CPUs.
- Next: parameter sweep for class7 (FC cap/batch limit/drain threshold) and perf counters A/B.
This commit is contained in:
Moe Charm (CI)
2025-11-09 23:15:02 +09:00
parent d9b334b968
commit 70ad1ffb87
9 changed files with 372 additions and 1184 deletions

13
core/tiny_fc_api.h Normal file
View File

@ -0,0 +1,13 @@
#ifndef TINY_FC_API_H
#define TINY_FC_API_H
#include <stddef.h>
// Push up to n pointers into the thread-local FastCache for class_idx.
// Returns the number of items actually pushed (<= room).
int tiny_fc_push_bulk(int class_idx, void** arr, int n);
// Returns current free room in FastCache for class_idx (cap - top).
int tiny_fc_room(int class_idx);
#endif