hocclk: add RAM bandwidth monitor

This commit is contained in:
souldbminersmwc
2026-04-11 19:00:22 -04:00
parent b7440a38a5
commit b417099a4a
6 changed files with 69 additions and 3 deletions

View File

@@ -117,6 +117,9 @@ static u32 g_gpu_freq = 0;
static u32 g_mem_freq = 0;
static u32 g_emc_lall = 0;
static u32 g_emc_lcpu = 0;
static u32 g_emc_bw_all = 0;
static u32 g_emc_bw_cpu = 0;
static u32 g_emc_bw_gpu = 0;
static u32 _clock_get_dev_freq(u32 id, u32 multiplier)
{
@@ -256,6 +259,10 @@ static void _clock_update_freqs(void)
// Get 1000 -> 100.0.
g_emc_lall = (u64)_actmon_dev_get_count_avg(ACTMON_DEV_MC_ALL) * 10 * 100 / (emc_freq * ACTMON_PERIOD_MS);
g_emc_lcpu = (u64)_actmon_dev_get_count_avg(ACTMON_DEV_MC_CPU) * 10 * 100 / (emc_freq * ACTMON_PERIOD_MS);
g_emc_bw_all = (u64)emc_freq * 8 * g_emc_lall / 1000 / 1000;
g_emc_bw_cpu = (u64)emc_freq * 8 * g_emc_lcpu / 1000 / 1000;
g_emc_bw_gpu = g_emc_bw_all > g_emc_bw_cpu ? g_emc_bw_all - g_emc_bw_cpu : 0;
}
@@ -288,3 +295,21 @@ u32 t210EmcLoadCpu()
_clock_update_freqs();
return g_emc_lcpu;
}
u32 t210EmcBwAll()
{
_clock_update_freqs();
return g_emc_bw_all;
}
u32 t210EmcBwCpu()
{
_clock_update_freqs();
return g_emc_bw_cpu;
}
u32 t210EmcBwGpu()
{
_clock_update_freqs();
return g_emc_bw_gpu;
}