Re: [PART1 RFC v2 09/10] svm: Do not intercept CR8 when enable AVIC

From: Suravee Suthikulpanit
Date: Mon Mar 14 2016 - 02:09:39 EST


Hi

On 03/07/2016 10:39 PM, Paolo Bonzini wrote:
+ svm_x86_ops.update_cr8_intercept = NULL;
> } else {
> svm_x86_ops.deliver_posted_interrupt = NULL;
> }
>@@ -1116,7 +1119,8 @@ static void init_vmcb(struct vcpu_svm *svm)
> set_cr_intercept(svm, INTERCEPT_CR0_WRITE);
> set_cr_intercept(svm, INTERCEPT_CR3_WRITE);
> set_cr_intercept(svm, INTERCEPT_CR4_WRITE);
>- set_cr_intercept(svm, INTERCEPT_CR8_WRITE);
>+ if (!avic)
Remember that AVIC enabled/disabled must be refreshed when the
.refresh_apicv_exec_ctrl callback is invoked, so it is not enough to use
the global variable.

Paolo


Good point. I'll fix this. By the way, how can we enable APICv only in certain VM? Does Qemu/KVM have any specific flags that we can pass to enable/disable this?

Thanks,
Suravee