target/ppc: Work [S]PURR implementation and add HV support
commit5cc7e69f6da5c52a0ac9f48ace40caf91fce807d
authorSuraj Jitindar Singh <sjitindarsingh@gmail.com>
Thu, 28 Nov 2019 13:46:55 +0000 (28 14:46 +0100)
committerDavid Gibson <david@gibson.dropbear.id.au>
Mon, 16 Dec 2019 23:39:48 +0000 (17 10:39 +1100)
treec8444b7abf282c8079f2b5eb4ccaa6f58b80e297
parent5d62725b2fefd59abf7225d620f7092fd34b8e11
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>
hw/ppc/ppc.c
include/hw/ppc/ppc.h
target/ppc/cpu.h
target/ppc/helper.h
target/ppc/timebase_helper.c
target/ppc/translate_init.inc.c