2#include "pedigree/kernel/Metrics.h"
6static_assert(__atomic_always_lock_free(
sizeof(uint64_t),
nullptr),
7 "Kernel metrics require lock-free 64-bit counters");
8CpuCounters counters[CpuAffinityMask::MaximumCpus] = {};
10bool snapshot(
size_t cpu, Snapshot& result) {
11 if (cpu >= CpuAffinityMask::MaximumCpus) {
15 for (
size_t field = 0; field < Count; ++field) {
16 result.values[field] = __atomic_load_n(&counters[cpu].values[field], __ATOMIC_RELAXED);