eeaaefe9fa
Profiling QEMU during Fedora 35 for PPC64 boot revealed that 6.39% of total time was being spent in helper_insns_inc(), on a POWER9 machine. To avoid calling this helper every time PMCs had to be incremented, an inline implementation of PMC5 increment and check for overflow was developed. This led to a reduction of about 12% in Fedora's boot time. Signed-off-by: Leandro Lupori <leandro.lupori@eldorado.org.br> Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com> Message-Id: <20221025202424.195984-4-leandro.lupori@eldorado.org.br> Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
28 lines
667 B
C
28 lines
667 B
C
/*
|
|
* PMU emulation helpers for TCG IBM POWER chips
|
|
*
|
|
* Copyright IBM Corp. 2021
|
|
*
|
|
* Authors:
|
|
* Daniel Henrique Barboza <danielhb413@gmail.com>
|
|
*
|
|
* This work is licensed under the terms of the GNU GPL, version 2 or later.
|
|
* See the COPYING file in the top-level directory.
|
|
*/
|
|
|
|
#ifndef POWER8_PMU_H
|
|
#define POWER8_PMU_H
|
|
|
|
#if defined(TARGET_PPC64) && !defined(CONFIG_USER_ONLY)
|
|
|
|
#define PMC_COUNTER_NEGATIVE_VAL 0x80000000UL
|
|
|
|
void cpu_ppc_pmu_init(CPUPPCState *env);
|
|
void pmu_update_summaries(CPUPPCState *env);
|
|
#else
|
|
static inline void cpu_ppc_pmu_init(CPUPPCState *env) { }
|
|
static inline void pmu_update_summaries(CPUPPCState *env) { }
|
|
#endif
|
|
|
|
#endif
|