diff options
author | Marc Zyngier <marc.zyngier@arm.com> | 2019-01-19 10:29:54 -0500 |
---|---|---|
committer | Marc Zyngier <marc.zyngier@arm.com> | 2019-02-19 16:05:35 -0500 |
commit | 32f139551954512bfdf9d558341af453bb8b12b4 (patch) | |
tree | d7fc878ae67aab3ab2300b3ca72e51f03ff3482b /virt/kvm | |
parent | d18232ea8a9480606c53e91d7e2d062c3c151815 (diff) |
arm/arm64: KVM: Statically configure the host's view of MPIDR
We currently eagerly save/restore MPIDR. It turns out to be
slightly pointless:
- On the host, this value is known as soon as we're scheduled on a
physical CPU
- In the guest, this value cannot change, as it is set by KVM
(and this is a read-only register)
The result of the above is that we can perfectly avoid the eager
saving of MPIDR_EL1, and only keep the restore. We just have
to setup the host contexts appropriately at boot time.
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Acked-by: Christoffer Dall <christoffer.dall@arm.com>
Signed-off-by: Christoffer Dall <christoffer.dall@arm.com>
Diffstat (limited to 'virt/kvm')
-rw-r--r-- | virt/kvm/arm/arm.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/virt/kvm/arm/arm.c b/virt/kvm/arm/arm.c index 4d55f98f97f7..3dd240ea9e76 100644 --- a/virt/kvm/arm/arm.c +++ b/virt/kvm/arm/arm.c | |||
@@ -1561,6 +1561,7 @@ static int init_hyp_mode(void) | |||
1561 | kvm_cpu_context_t *cpu_ctxt; | 1561 | kvm_cpu_context_t *cpu_ctxt; |
1562 | 1562 | ||
1563 | cpu_ctxt = per_cpu_ptr(&kvm_host_cpu_state, cpu); | 1563 | cpu_ctxt = per_cpu_ptr(&kvm_host_cpu_state, cpu); |
1564 | kvm_init_host_cpu_context(cpu_ctxt, cpu); | ||
1564 | err = create_hyp_mappings(cpu_ctxt, cpu_ctxt + 1, PAGE_HYP); | 1565 | err = create_hyp_mappings(cpu_ctxt, cpu_ctxt + 1, PAGE_HYP); |
1565 | 1566 | ||
1566 | if (err) { | 1567 | if (err) { |