[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH] x86/HVM: expose VM assist hypercall
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. Renaming it to do_vm_assist(), latch current->domain internally, and an arch_vm_assist_valid(d) helper can cover the final parameter. ~Andrew > COMPAT_CALL(vcpu_op), > HVM_CALL(physdev_op), > COMPAT_CALL(xen_version), > --- a/xen/include/asm-x86/config.h > +++ b/xen/include/asm-x86/config.h > @@ -319,6 +319,7 @@ extern unsigned long xen_phys_start; > #define VM_ASSIST_VALID NATIVE_VM_ASSIST_VALID > #define COMPAT_VM_ASSIST_VALID (NATIVE_VM_ASSIST_VALID & \ > ((1UL << COMPAT_BITS_PER_LONG) - 1)) > +#define HVM_VM_ASSIST_VALID (1UL << VMASST_TYPE_runstate_update_flag) > > #define ELFSIZE 64 >
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |