|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH] x86/HVM: expose VM assist hypercall
On 02.04.2020 21:49, Andrew Cooper wrote:
> On 02/04/2020 08:46, Jan Beulich wrote:
>> In preparation for the addition of VMASST_TYPE_runstate_update_flag
>> commit 72c538cca957 ("arm: add support for vm_assist hypercall") enabled
>> the hypercall for Arm. I consider it not logical that it then isn't also
>> exposed to x86 HVM guests (with the same single feature permitted to be
>> enabled as Arm has); Linux actually tries to use it afaict.
>>
>> Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
>
> I'd declare this a bug in 2529c850ea4. It was clearly intended as a
> common feature, and wasn't tested for HVM guests.
>
> However, ...
>
>>
>> --- a/xen/arch/x86/hvm/hypercall.c
>> +++ b/xen/arch/x86/hvm/hypercall.c
>> @@ -78,6 +78,11 @@ static long hvm_grant_table_op(
>> }
>> #endif
>>
>> +static long hvm_vm_assist(unsigned int cmd, unsigned int type)
>> +{
>> + return vm_assist(current->domain, cmd, type, HVM_VM_ASSIST_VALID);
>> +}
>> +
>> static long hvm_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
>> {
>> const struct vcpu *curr = current;
>> @@ -128,6 +133,7 @@ static const hypercall_table_t hvm_hyper
>> #ifdef CONFIG_GRANT_TABLE
>> HVM_CALL(grant_table_op),
>> #endif
>> + HVM_CALL(vm_assist),
>
> ... this means we've now got 3 stub functions making no-op ABI changes
> for the general vm_assist() function.
Not sure what you mean with "no-op" here. It's not like the
mask values would all be the same.
> Renaming it to do_vm_assist(), latch current->domain internally, and an
> arch_vm_assist_valid(d) helper can cover the final parameter.
I can certainly do this, but it very much seems to me to be a
request you'd call "scope creep". I was meaning to address the
issue at hand with a minimally invasive change. The bigger
variant you suggest is unlikely to cause backporting issues,
yes, but still ... Anyway, I'll do as you ask, to cut the
discussion short.
Jan
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |