Re: [PART1 V5 13/13] svm: Manage vcpu load/unload when enable AVIC

From: Paolo Bonzini
Date: Wed Jun 01 2016 - 14:38:15 EST




On 01/06/2016 20:18, Suravee Suthikulpanit wrote:
>>>
>>> + svm->avic_is_running = is_run;
>
> Shouldn't we do this below --->
>>>
>>> /* ID = 0xff (broadcast), ID > 0xff (reserved) */
>>> - if (h_physical_id >= AVIC_MAX_PHYSICAL_ID_COUNT)
>>> - return -EINVAL;
>>> + if (WARN_ON(h_physical_id >= AVIC_MAX_PHYSICAL_ID_COUNT))
>>> + return;
>
> <--- HERE

It doesn't really matter because these physical APIC IDs are not
reachable anyway so they don't have the IS_RUNNING field.

The avic_is_running field is only used in avic_vcpu_load, and again only
when h_physical_id is in range. I left the assignment before the
warning so that avic_vcpu_load does the right thing after a
(hypothetical) migration from an out-of-range physical CPU to an
in-range physical CPU.

Paolo