Re: [PART1 RFC v3 07/12] svm: Add interrupt injection via AVIC

Suravee Suthikulpanit
2016-04-05T15:57:07Z

Hi Paolo,

On 4/5/16 20:26, Suravee Suthikulpanit wrote:
>>> @@ -2877,8 +2895,10 @@ static int clgi_interception(struct vcpu_svm
>>> *svm)
>>> disable_gif(svm);
>>>
>>> /* After a CLGI no interrupts should come */
>>> - svm_clear_vintr(svm);
>>> - svm->vmcb->control.int_ctl &= ~V_IRQ_MASK;
>>> + if (!svm_vcpu_avic_enabled(svm)) {
>>> + svm_clear_vintr(svm);
>>> + svm->vmcb->control.int_ctl &= ~V_IRQ_MASK;
>>> + }
>>
>> This is for nested virtualization. Unless you support nested AVIC, the
>> L2 guest should run without AVIC (i.e. IsRunning should be false) and
>> use the old VINTR mechanism.
>
> I see. I am not planning to supported nested AVIC at the L2 level for
> the moment. If it is alright, I would like to get the basic AVIC and
> IOMMU in first (unless you have a different opinion).
>
> In that case, I think I should also make sure to not expose AVIC CPUID
> to the guest VM.

Actually, it should have already not set the AVIC CPUID in the L1 guest.

Thanks,
Suravee