qemu-e2k/hw/ppc
Suraj Jitindar Singh 5cc7e69f6d target/ppc: Work [S]PURR implementation and add HV support
The Processor Utilisation of Resources Register (PURR) and Scaled
Processor Utilisation of Resources Register (SPURR) provide an estimate
of the resources used by the thread, present on POWER7 and later
processors.

Currently the [S]PURR registers simply count at the rate of the
timebase.

Preserve this behaviour but rework the implementation to store an offset
like the timebase rather than doing the calculation manually. Also allow
hypervisor write access to the register along with the currently
available read access.

Signed-off-by: Suraj Jitindar Singh <sjitindarsingh@gmail.com>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
[ clg: rebased on current ppc tree ]
Signed-off-by: Cédric Le Goater <clg@kaod.org>
Message-Id: <20191128134700.16091-3-clg@kaod.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2019-12-17 10:39:48 +11:00
..
e500-ccsr.h ppc: do not use ../ in include files 2013-03-01 13:57:33 +01:00
e500.c sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
e500.h platform-bus-device: use device plug callback instead of machine_done notifier 2018-05-10 18:10:56 +01:00
e500plat.c Include hw/boards.h a bit less 2019-08-16 13:31:53 +02:00
fdt.c target/ppc: Split page size information into a separate allocation 2018-04-27 18:05:22 +10:00
fw_cfg.c hw/ppc: Implement fw_cfg_arch_key_name() 2019-05-23 14:10:31 +02:00
Kconfig spapr/xive: add KVM support 2019-05-29 11:39:45 +10:00
mac_newworld.c core: replace getpagesize() with qemu_real_host_page_size 2019-10-26 15:38:06 +02:00
mac_oldworld.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
mac.h ide: Include hw/ide/internal a bit less outside hw/ide/ 2019-08-16 13:31:52 +02:00
Makefile.objs ppc/pnv: Add a PNOR model 2019-12-17 10:39:47 +11:00
mpc8544_guts.c sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
mpc8544ds.c Include hw/boards.h a bit less 2019-08-16 13:31:53 +02:00
pnv_bmc.c ppc/pnv: Create BMC devices at machine init 2019-12-17 10:39:47 +11:00
pnv_core.c ppc/pnv: Introduce a POWER10 PnvChip and a powernv10 machine 2019-12-17 10:39:48 +11:00
pnv_homer.c ppc/pnv: Link "chip" property to PnvHomer::chip pointer 2019-12-17 10:39:47 +11:00
pnv_lpc.c ppc/pnv: add a LPC Controller model for POWER10 2019-12-17 10:39:48 +11:00
pnv_occ.c ppc/pnv: Link "psi" property to PnvOCC::psi pointer 2019-12-17 10:39:47 +11:00
pnv_pnor.c ppc/pnv: Add a PNOR model 2019-12-17 10:39:47 +11:00
pnv_psi.c ppc/pnv: add a PSI bridge model for POWER10 2019-12-17 10:39:48 +11:00
pnv_xscom.c ppc/pnv: Introduce a POWER10 PnvChip and a powernv10 machine 2019-12-17 10:39:48 +11:00
pnv.c ppc/pnv: add a LPC Controller model for POWER10 2019-12-17 10:39:48 +11:00
ppc4xx_devs.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
ppc4xx_pci.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
ppc405_boards.c hw: Move M48T59 device from hw/timer/ to hw/rtc/ subdirectory 2019-10-24 20:20:45 +02:00
ppc405_uc.c Include hw/boards.h a bit less 2019-08-16 13:31:53 +02:00
ppc405.h ppc4xx: Export ECB and PLB emulation 2017-09-08 09:30:55 +10:00
ppc440_bamboo.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
ppc440_pcix.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
ppc440_uc.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
ppc440.h ppc440_uc: Basic emulation of PPC440 DMA controller 2018-07-03 09:56:52 +10:00
ppc_booke.c sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
ppc.c target/ppc: Work [S]PURR implementation and add HV support 2019-12-17 10:39:48 +11:00
ppce500_spin.c Clean up inclusion of sysemu/sysemu.h 2019-08-16 13:31:53 +02:00
prep_systemio.c sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
prep.c hw: Move M48T59 device from hw/timer/ to hw/rtc/ subdirectory 2019-10-24 20:20:45 +02:00
rs6000_mc.c ppc: rs6000_mc: drop usage of memory_region_allocate_system_memory() 2019-10-23 23:37:42 -03:00
sam460ex.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
spapr_caps.c ppc: fix memory leak in spapr_caps_add_properties 2019-08-21 17:17:11 +10:00
spapr_cpu_core.c ppc: Add intc_destroy() handlers to SpaprInterruptController/PnvChip 2019-11-18 11:49:11 +01:00
spapr_drc.c ppc: fix memory leak in spapr_dt_drc() 2019-08-21 17:17:11 +10:00
spapr_events.c ppc/spapr_events: fix potential NULL pointer dereference in rtas_event_log_dequeue 2019-11-26 10:12:58 +11:00
spapr_hcall.c spapr: Simplify ovec diff 2019-12-17 10:39:48 +11:00
spapr_iommu.c memory: allow memory_region_register_iommu_notifier() to fail 2019-10-04 18:49:18 +02:00
spapr_irq.c spapr: Pass the maximum number of vCPUs to the KVM interrupt controller 2019-12-17 10:39:48 +11:00
spapr_ovec.c spapr: Simplify ovec diff 2019-12-17 10:39:48 +11:00
spapr_pci_nvlink2.c spapr/pci: Convert types to QEMU coding style 2019-08-29 09:46:07 +10:00
spapr_pci_vfio.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
spapr_pci.c core: replace getpagesize() with qemu_real_host_page_size 2019-10-26 15:38:06 +02:00
spapr_rng.c Clean up inclusion of sysemu/sysemu.h 2019-08-16 13:31:53 +02:00
spapr_rtas_ddw.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
spapr_rtas.c spapr: Stop providing RTAS blob 2019-10-04 10:25:23 +10:00
spapr_rtc.c Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00
spapr_tpm_proxy.c spapr-tpm-proxy: Drop misleading check 2019-10-04 10:25:23 +10:00
spapr_vio.c spapr: Replace spapr_vio_qirq() helper with spapr_vio_irq_pulse() helper 2019-10-04 19:08:22 +10:00
spapr.c spapr: Simplify ovec diff 2019-12-17 10:39:48 +11:00
trace-events spapr: Remove unhelpful tracepoints from spapr_irq_free_xics() 2019-10-04 19:08:22 +10:00
virtex_ml507.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00