Radim,
On 9/14/17 08:23, Suravee Suthikulpanit wrote:
Radim,
On 9/14/17 08:20, Radim Krčmář wrote:
@@ -1594,6 +1593,12 @@ static int avic_init_vcpu(struct vcpu_svm *svm)
if (!avic)
return 0;
+ if (!kvm_vcpu_apicv_active(&svm->vcpu)) {
+ pr_debug("%s: Disable AVIC due to non-split irqchip.\n",
+ __func__);
We need to have an extra condition just because of this print ...
I removed the print altogether when applying -- I thought more about
that and it was aimed at people who wonder why AVIC was suddenly
disabled and it's unlikely that they will enable a debug message without
already knowing the reason,
Make sense. Thanks.
thanks.
@@ -4388,7 +4393,7 @@ static void svm_set_virtual_x2apic_mode(struct kvm_vcpu
*vcpu, bool set)
static bool svm_get_enable_apicv(struct kvm_vcpu *vcpu)
{
A close contender was pr_info_once() here:
if (avic && !irqchip_split(vcpu->kvm))
pr_info_once(...)
Looks good.
Actually, thinking about it again, this would not work either since
pr_xxx_once() would only print the message once per loading of kvm_amd module.
However, we would prefer the message to be printed per VM initialization. I also
tried adding the check and print this message in the kvm_x86_ops.vm_init(), but
this also does not work since the vm_init() function is called before the
kvm_vm_ioctl_enable_cap(KVM_CAP_SPLIT_IRQCHIP).
Therefore, pr_info() might be better here, even though this would get print per
VCPU initialization. Any other suggestions?
Thanks,
Suravee