Files
hakmem/core/hakmem_ace_stats.h

34 lines
848 B
C
Raw Permalink Normal View History

#ifndef HAKMEM_ACE_STATS_H
#define HAKMEM_ACE_STATS_H
#include <stdint.h>
#include <stdatomic.h>
// Sampling mask: if zero → off; else sample when (ctr & mask)==0
void hkm_ace_stats_init(void);
void hkm_ace_set_sample_mask(uint32_t mask);
// MidPool (232KiB)
void hkm_ace_stat_mid_attempt(int hit);
// LargePool (64KiB1MiB)
void hkm_ace_stat_large_attempt(int hit);
// Fallback (malloc path for L1)
void hkm_ace_stat_l1_fallback(void);
// Free counters (L1 pools)
void hkm_ace_stat_mid_free(void);
void hkm_ace_stat_large_free(void);
// Snapshot for learner
typedef struct {
uint64_t mid_hit, mid_miss;
uint64_t large_hit, large_miss;
uint64_t l1_fallback;
uint64_t mid_free, large_free;
} hkm_ace_stats_snapshot_t;
void hkm_ace_stats_snapshot(hkm_ace_stats_snapshot_t* out, int reset);
#endif // HAKMEM_ACE_STATS_H