target-arm: kvm: Differentiate registers based on write-back levels
commit4b7a6bf402bd064605c287eecadc493ccf2d4897
authorChristoffer Dall <christoffer.dall@linaro.org>
Tue, 21 Jul 2015 10:18:45 +0000 (21 11:18 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Tue, 21 Jul 2015 10:18:45 +0000 (21 11:18 +0100)
tree2da235a74cae51293675444895aaa89a507bd1ac
parenta1bc040dabc12039944e22d9529f20d6132400dd
target-arm: kvm: Differentiate registers based on write-back levels

Some registers like the CNTVCT register should only be written to the
kernel as part of machine initialization or on vmload operations, but
never during runtime, as this can potentially make time go backwards or
create inconsistent time observations between VCPUs.

Introduce a list of registers that should not be written back at runtime
and check this list on syncing the register state to the KVM state.

Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
Message-id: 1437046488-10773-1-git-send-email-christoffer.dall@linaro.org
[PMM: tweaked a few comments, added the new argument to the stub
 write_list_to_kvmstate() in target-arm/kvm-stub.c]
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
target-arm/kvm-stub.c
target-arm/kvm.c
target-arm/kvm32.c
target-arm/kvm64.c
target-arm/kvm_arm.h
target-arm/machine.c