mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-05 00:33:55 -06:00
target/arm: Add a timer to predict PMU counter overflow
Make PMU overflow interrupts more accurate by using a timer to predict when they will overflow rather than waiting for an event to occur which allows us to otherwise check them. Signed-off-by: Aaron Lindsay <aaron@os.amperecomputing.com> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20190124162401.5111-3-aaron@os.amperecomputing.com Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
f4efb4b2a1
commit
4e7beb0cc0
3 changed files with 92 additions and 2 deletions
|
@ -746,6 +746,11 @@ struct ARMCPU {
|
|||
|
||||
/* Timers used by the generic (architected) timer */
|
||||
QEMUTimer *gt_timer[NUM_GTIMERS];
|
||||
/*
|
||||
* Timer used by the PMU. Its state is restored after migration by
|
||||
* pmu_op_finish() - it does not need other handling during migration
|
||||
*/
|
||||
QEMUTimer *pmu_timer;
|
||||
/* GPIO outputs for generic timer */
|
||||
qemu_irq gt_timer_outputs[NUM_GTIMERS];
|
||||
/* GPIO output for GICv3 maintenance interrupt signal */
|
||||
|
@ -1005,6 +1010,11 @@ void pmccntr_op_finish(CPUARMState *env);
|
|||
void pmu_op_start(CPUARMState *env);
|
||||
void pmu_op_finish(CPUARMState *env);
|
||||
|
||||
/*
|
||||
* Called when a PMU counter is due to overflow
|
||||
*/
|
||||
void arm_pmu_timer_cb(void *opaque);
|
||||
|
||||
/**
|
||||
* Functions to register as EL change hooks for PMU mode filtering
|
||||
*/
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue