[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v10 49/59] i386/xen: handle HVMOP_get_param
From: |
David Woodhouse |
Subject: |
Re: [PATCH v10 49/59] i386/xen: handle HVMOP_get_param |
Date: |
Tue, 14 Feb 2023 16:50:08 +0100 |
User-agent: |
K-9 Mail for Android |
On 14 February 2023 16:47:13 CET, Paul Durrant <xadimgnik@gmail.com> wrote:
>On 01/02/2023 14:31, David Woodhouse wrote:
>> From: Joao Martins <joao.m.martins@oracle.com>
>>
>> Which is used to fetch xenstore PFN and port to be used
>> by the guest. This is preallocated by the toolstack when
>> guest will just read those and use it straight away.
>>
>> Signed-off-by: Joao Martins <joao.m.martins@oracle.com>
>> Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
>> ---
>> target/i386/kvm/xen-emu.c | 39 +++++++++++++++++++++++++++++++++++++++
>> 1 file changed, 39 insertions(+)
>>
>> diff --git a/target/i386/kvm/xen-emu.c b/target/i386/kvm/xen-emu.c
>> index 75e62bc02f..3d6ea7ca98 100644
>> --- a/target/i386/kvm/xen-emu.c
>> +++ b/target/i386/kvm/xen-emu.c
>> @@ -762,6 +762,42 @@ out:
>> return true;
>> }
>> +static bool handle_get_param(struct kvm_xen_exit *exit, X86CPU *cpu,
>> + uint64_t arg)
>> +{
>> + CPUState *cs = CPU(cpu);
>> + struct xen_hvm_param hp;
>> + int err = 0;
>> +
>> + /* No need for 32/64 compat handling */
>> + qemu_build_assert(sizeof(hp) == 16);
>> +
>> + if (kvm_copy_from_gva(cs, arg, &hp, sizeof(hp))) {
>> + err = -EFAULT;
>> + goto out;
>> + }
>> +
>> + if (hp.domid != DOMID_SELF && hp.domid != xen_domid) {
>> + err = -ESRCH;
>> + goto out;
>> + }
>> +
>> + switch (hp.index) {
>> + case HVM_PARAM_STORE_PFN:
>> + hp.value = XEN_SPECIAL_PFN(XENSTORE);
>
>Reviewed-by: Paul Durrant <paul@xen.org>
>
>... but this reminds me... I don't think you have code to seed the grant table
>in any of the patches. It is guest ABI that the XenStore PFN is in entry 1 of
>the grant table.
It's in there somewhere, perhaps in "phase 2" where we actually add a real
XenStore rather than this sequence of 59 (and counting).
I even made XenStore map the grant (not that it actually *uses* the address it
gets back).
- [PATCH v10 00/59] Xen HVM support under KVM, David Woodhouse, 2023/02/01
- [PATCH v10 53/59] hw/xen: Automatically add xen-platform PCI device for emulated Xen guests, David Woodhouse, 2023/02/01
- [PATCH v10 49/59] i386/xen: handle HVMOP_get_param, David Woodhouse, 2023/02/01
- [PATCH v10 14/59] xen: Permit --xen-domid argument when accel is KVM, David Woodhouse, 2023/02/01
- [PATCH v10 10/59] i386/xen: implement HYPERVISOR_xen_version, David Woodhouse, 2023/02/01
- [PATCH v10 29/59] hw/xen: Implement EVTCHNOP_status, David Woodhouse, 2023/02/01
- [PATCH v10 44/59] hw/xen: Support mapping grant frames, David Woodhouse, 2023/02/01
[PATCH v10 20/59] i386/xen: implement HYPERVISOR_vcpu_op, David Woodhouse, 2023/02/01
[PATCH v10 03/59] xen: Add XEN_DISABLED mode and make it default, David Woodhouse, 2023/02/01