All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Alex Bennée" <alex.bennee@linaro.org>
To: "Philippe Mathieu-Daudé" <philmd@linaro.org>
Cc: David Woodhouse <dwmw2@infradead.org>,
	Paolo Bonzini <pbonzini@redhat.com>, Paul Durrant <paul@xen.org>,
	Joao Martins <joao.m.martins@oracle.com>,
	Ankur Arora <ankur.a.arora@oracle.com>,
	Thomas Huth <thuth@redhat.com>,
	qemu-devel@nongnu.org
Subject: Re: [RFC PATCH 10/21] i386/xen: handle guest hypercalls
Date: Tue, 06 Dec 2022 10:41:40 +0000	[thread overview]
Message-ID: <87tu28n77u.fsf@linaro.org> (raw)
In-Reply-To: <d203e13d-e2f9-5816-030d-c1449bde364d@linaro.org>


Philippe Mathieu-Daudé <philmd@linaro.org> writes:

> +Thomas
>
> On 6/12/22 02:10, David Woodhouse wrote:
>> On Mon, 2022-12-05 at 23:11 +0100, Philippe Mathieu-Daudé wrote:
>>> On 5/12/22 18:31, David Woodhouse wrote:
>>>> From: Joao Martins <joao.m.martins@oracle.com>
>>>>
>>>> This means handling the new exit reason for Xen but still
>>>> crashing on purpose. As we implement each of the hypercalls
>>>> we will then return the right return code.
>>>>
>>>> Signed-off-by: Joao Martins <joao.m.martins@oracle.com>
>>>> [dwmw2: Add CPL to hypercall tracing, disallow hypercalls from CPL > 0]
>>>> Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
>>>> ---
>>>>    target/i386/kvm/kvm.c    |  5 +++++
>>>>    target/i386/trace-events |  3 +++
>>>>    target/i386/xen.c        | 45 ++++++++++++++++++++++++++++++++++++++++
>>>>    target/i386/xen.h        |  1 +
>>>>    4 files changed, 54 insertions(+)
>>>>
>>>> diff --git a/target/i386/kvm/kvm.c b/target/i386/kvm/kvm.c
>>>> index 4b21d03250..6396d11f1e 100644
>>>> --- a/target/i386/kvm/kvm.c
>>>> +++ b/target/i386/kvm/kvm.c
>>>> @@ -5468,6 +5468,11 @@ int kvm_arch_handle_exit(CPUState *cs, struct kvm_run *run)
>>>>            assert(run->msr.reason == KVM_MSR_EXIT_REASON_FILTER);
>>>>            ret = kvm_handle_wrmsr(cpu, run);
>>>>            break;
>>>> +#ifdef CONFIG_XEN
>>>
>>> CONFIG_XEN is set when the _host_ has Xen development files available.
>>>
>>> IIUC here you want to check if Xen HVM guest support is enabled.
>>>
>>> You might want to use a different CONFIG_XEN_xxx key, which itself
>>> depends on CONFIG_XEN.
>> Yeah, I'd be interested in opinions on that one.
>> Strictly, the only one that *needs* to be a configure option is
>> CONFIG_XEN for the Xen libraries, which is support for actually running
>> on Xen.
>> Any time KVM is present, we *could* pull in the rest of the xenfv
>> machine support unconditionally, since that's no longer dependent on
>> true Xen.
>> But because there's a non-trivial amount of code in the event
>> channel
>> and grant table stuff, *perhaps* we want to make it optional? I don't
>> really want to call that CONFIG_KVM_XEN since as noted, it's
>> theoretically possible to do it with TCG or other accelerators too. So
>> we could call it CONFIG_XEN_EMULATION.
>
> I concur CONFIG_KVM_XEN is confusing; CONFIG_XEN_EMULATION /
> CONFIG_XEN_EMU sounds better.
>
> Is it useful to have the CONFIG_XEN_EMU code under target/i386/ built
> without having the xenfv machine built in?
>
> I rather have hw/ and target/ features disentangled, so I'd use
> CONFIG_XEN_EMU under target/ and CONFIG_XENFV_MACHINE under hw/,
> eventually having CONFIG_XEN_EMU depending on CONFIG_XENFV_MACHINE
> and -- for now -- CONFIG_KVM.

You should also probably be aware of:

  Subject: [QEMU][PATCH v2 00/11] Introduce xenpv machine for arm architecture 
  Date: Thu, 1 Dec 2022 18:59:52 -0800
  Message-ID: <20221202030003.11441-1-vikram.garhwal@amd.com>

which moves some of the previously i386 only Xen code into common
backend code.

-- 
Alex Bennée


  parent reply	other threads:[~2022-12-06 10:43 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-05 17:31 [RFC PATCH 00/21] Xen HVM support under KVM David Woodhouse
2022-12-05 17:31 ` [RFC PATCH 01/21] include: import xen public headers David Woodhouse
2022-12-05 17:31 ` [RFC PATCH 02/21] i386/xen: Add xen-version machine property and init KVM Xen support David Woodhouse
2022-12-05 17:31 ` [RFC PATCH 03/21] i386/kvm: handle Xen HVM cpuid leaves David Woodhouse
2022-12-05 21:58   ` Philippe Mathieu-Daudé
2022-12-06  0:18     ` David Woodhouse
2022-12-06  7:58       ` Philippe Mathieu-Daudé
2022-12-06  8:05         ` David Woodhouse
2022-12-05 17:31 ` [RFC PATCH 04/21] xen-platform-pci: allow its creation with XEN_EMULATE mode David Woodhouse
2022-12-05 17:31 ` [RFC PATCH 05/21] hw/xen_backend: refactor xen_be_init() David Woodhouse
2022-12-05 17:31 ` [RFC PATCH 06/21] pc_piix: handle XEN_EMULATE backend init David Woodhouse
2022-12-05 17:31 ` [RFC PATCH 07/21] xen-platform-pci: register xen-mmio as RAM for XEN_EMULATE David Woodhouse
2022-12-05 17:31 ` [RFC PATCH 08/21] xen_platform: exclude vfio-pci from the PCI platform unplug David Woodhouse
2022-12-05 22:03   ` Philippe Mathieu-Daudé
2022-12-05 17:31 ` [RFC PATCH 09/21] pc_piix: allow xenfv machine with XEN_EMULATE David Woodhouse
2022-12-05 22:06   ` Philippe Mathieu-Daudé
2022-12-06  0:59     ` David Woodhouse
2022-12-05 17:31 ` [RFC PATCH 10/21] i386/xen: handle guest hypercalls David Woodhouse
2022-12-05 22:11   ` Philippe Mathieu-Daudé
2022-12-06  1:10     ` David Woodhouse
2022-12-06  8:16       ` Philippe Mathieu-Daudé
2022-12-06  9:40         ` David Woodhouse
2022-12-06 11:07           ` Philippe Mathieu-Daudé
2022-12-06 11:30             ` David Woodhouse
2022-12-06 10:41         ` Alex Bennée [this message]
2022-12-05 17:31 ` [RFC PATCH 11/21] i386/xen: implement HYPERCALL_xen_version David Woodhouse
2022-12-05 17:31 ` [RFC PATCH 12/21] i386/xen: set shared_info page David Woodhouse
2022-12-05 22:17   ` Philippe Mathieu-Daudé
2022-12-06  2:20     ` David Woodhouse
2022-12-06  8:26       ` Philippe Mathieu-Daudé
2022-12-06 10:00         ` Dr. David Alan Gilbert
2022-12-07 11:15           ` David Woodhouse
2022-12-05 17:31 ` [RFC PATCH 13/21] i386/xen: implement HYPERVISOR_hvm_op David Woodhouse
2022-12-05 22:13   ` Philippe Mathieu-Daudé
2022-12-06  1:18     ` David Woodhouse
2022-12-05 17:31 ` [RFC PATCH 14/21] i386/xen: implement HYPERVISOR_vcpu_op David Woodhouse
2022-12-05 22:18   ` Philippe Mathieu-Daudé
2022-12-05 17:31 ` [RFC PATCH 15/21] i386/xen: handle register_vcpu_info David Woodhouse
2022-12-05 17:31 ` [RFC PATCH 16/21] i386/xen: handle register_vcpu_time_memory_area David Woodhouse
2022-12-05 17:31 ` [RFC PATCH 17/21] i386/xen: handle register_runstate_memory_area David Woodhouse
2022-12-05 17:31 ` [RFC PATCH 18/21] kvm/ioapic: mark gsi-2 used in ioapic routing init David Woodhouse
2022-12-05 22:25   ` Philippe Mathieu-Daudé
2022-12-06  1:21     ` David Woodhouse
2022-12-05 17:31 ` [RFC PATCH 19/21] i386/xen: handle event channel upcall related hypercalls David Woodhouse
2022-12-05 17:31 ` [RFC PATCH 20/21] i386/xen: implement HYPERVISOR_event_channel_op David Woodhouse
2022-12-05 17:31 ` [RFC PATCH 21/21] i386/xen: implement HYPERVISOR_sched_op David Woodhouse

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87tu28n77u.fsf@linaro.org \
    --to=alex.bennee@linaro.org \
    --cc=ankur.a.arora@oracle.com \
    --cc=dwmw2@infradead.org \
    --cc=joao.m.martins@oracle.com \
    --cc=paul@xen.org \
    --cc=pbonzini@redhat.com \
    --cc=philmd@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=thuth@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.