我正在查看Linux内核中的exynos4_bus.c文件(drivers / devfreq)并遇到过这个结构:
struct exynos4_ppmu {
void __iomem *hw_base;
unsigned int ccnt;
unsigned int event;
unsigned int count[PPMU_PMNCNT_MAX];
bool ccnt_overflow;
bool count_overflow[PPMU_PMNCNT_MAX];
};
我想知道是否有人可以向我解释一下PPMU究竟是什么以及它在这段代码中的用途。
答案 0 :(得分:0)
请参阅:Kernel documenation和commit message
根据source,这似乎是三星ARM处理器的DVFS (dynamic voltage and frequency scaling) IP,与内存/总线频率有关。在该结构中收集统计数据,例如。 exynos4_read_ppmu()
,以确定电压和频率的执行方式。例如,请参阅exynos4_get_busier_dmc()
。如果DVFS由控制器或软件自动化,我不会看到;我找不到公开的数据表。