From: Paul Durrant <xadimgnik@gmail.com>
To: David Woodhouse <dwmw2@infradead.org>, qemu-devel@nongnu.org
Cc: "Kevin Wolf" <kwolf@redhat.com>,
"Hanna Reitz" <hreitz@redhat.com>,
"Stefano Stabellini" <sstabellini@kernel.org>,
"Anthony Perard" <anthony.perard@citrix.com>,
"Marc-André Lureau" <marcandre.lureau@redhat.com>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Richard Henderson" <richard.henderson@linaro.org>,
"Eduardo Habkost" <eduardo@habkost.net>,
"Michael S. Tsirkin" <mst@redhat.com>,
"Marcel Apfelbaum" <marcel.apfelbaum@gmail.com>,
"Jason Wang" <jasowang@redhat.com>,
"Marcelo Tosatti" <mtosatti@redhat.com>,
"Cleber Rosa" <crosa@redhat.com>,
"Philippe Mathieu-Daudé" <philmd@linaro.org>,
"Wainer dos Santos Moschetta" <wainersm@redhat.com>,
"Beraldo Leal" <bleal@redhat.com>,
qemu-block@nongnu.org, xen-devel@lists.xenproject.org,
kvm@vger.kernel.org, "Bernhard Beschow" <shentey@gmail.com>,
"Joel Upham" <jupham125@gmail.com>
Subject: Re: [PATCH v2 03/24] hw/xen: select kernel mode for per-vCPU event channel upcall vector
Date: Tue, 24 Oct 2023 16:02:49 +0100 [thread overview]
Message-ID: <bd55f12a-1a01-40fb-a61a-dd5ddbd58557@xen.org> (raw)
In-Reply-To: <20231019154020.99080-4-dwmw2@infradead.org>
On 19/10/2023 16:39, David Woodhouse wrote:
> From: David Woodhouse <dwmw@amazon.co.uk>
>
> A guest which has configured the per-vCPU upcall vector may set the
> HVM_PARAM_CALLBACK_IRQ param to fairly much anything other than zero.
>
> For example, Linux v6.0+ after commit b1c3497e604 ("x86/xen: Add support
> for HVMOP_set_evtchn_upcall_vector") will just do this after setting the
> vector:
>
> /* Trick toolstack to think we are enlightened. */
> if (!cpu)
> rc = xen_set_callback_via(1);
>
> That's explicitly setting the delivery to GSI#1, but it's supposed to be
> overridden by the per-vCPU vector setting. This mostly works in Qemu
> *except* for the logic to enable the in-kernel handling of event channels,
> which falsely determines that the kernel cannot accelerate GSI delivery
> in this case.
>
> Add a kvm_xen_has_vcpu_callback_vector() to report whether vCPU#0 has
> the vector set, and use that in xen_evtchn_set_callback_param() to
> enable the kernel acceleration features even when the param *appears*
> to be set to target a GSI.
>
> Preserve the Xen behaviour that when HVM_PARAM_CALLBACK_IRQ is set to
> *zero* the event channel delivery is disabled completely. (Which is
> what that bizarre guest behaviour is working round in the first place.)
>
> Fixes: 91cce756179 ("hw/xen: Add xen_evtchn device for event channel emulation")
> Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
> ---
> hw/i386/kvm/xen_evtchn.c | 6 ++++++
> include/sysemu/kvm_xen.h | 1 +
> target/i386/kvm/xen-emu.c | 7 +++++++
> 3 files changed, 14 insertions(+)
>
Reviewed-by: Paul Durrant <paul@xen.org>
next prev parent reply other threads:[~2023-10-24 15:03 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-19 15:39 [PATCH v2 0/24] Get Xen PV shim running in Qemu, add net & console David Woodhouse
2023-10-19 15:39 ` [PATCH v2 01/24] i386/xen: Don't advertise XENFEAT_supervisor_mode_kernel David Woodhouse
2023-10-19 15:39 ` [PATCH v2 02/24] i386/xen: fix per-vCPU upcall vector for Xen emulation David Woodhouse
2023-10-19 15:39 ` [PATCH v2 03/24] hw/xen: select kernel mode for per-vCPU event channel upcall vector David Woodhouse
2023-10-24 15:02 ` Paul Durrant [this message]
2023-10-19 15:40 ` [PATCH v2 04/24] hw/xen: don't clear map_track[] in xen_gnttab_reset() David Woodhouse
2023-10-24 15:03 ` Paul Durrant
2023-10-19 15:40 ` [PATCH v2 05/24] hw/xen: fix XenStore watch delivery to guest David Woodhouse
2023-10-24 15:19 ` Paul Durrant
2023-10-24 15:27 ` David Woodhouse
2023-10-19 15:40 ` [PATCH v2 06/24] i386/xen: Ignore VCPU_SSHOTTMR_future flag in set_singleshot_timer() David Woodhouse
2023-10-19 15:40 ` [PATCH v2 07/24] hw/xen: Clean up event channel 'type_val' handling to use union David Woodhouse
2023-10-19 15:40 ` [PATCH v2 08/24] include: update Xen public headers to Xen 4.17.2 release David Woodhouse
2023-10-19 15:40 ` [PATCH v2 09/24] i386/xen: advertise XEN_HVM_CPUID_UPCALL_VECTOR in CPUID David Woodhouse
2023-10-19 15:40 ` [PATCH v2 10/24] hw/xen: populate store frontend nodes with XenStore PFN/port David Woodhouse
2023-10-24 15:36 ` Paul Durrant
2023-10-19 15:40 ` [PATCH v2 11/24] hw/xen: automatically assign device index to block devices David Woodhouse
2023-10-19 15:40 ` [PATCH v2 12/24] hw/xen: add get_frontend_path() method to XenDeviceClass David Woodhouse
2023-10-19 15:40 ` [PATCH v2 13/24] hw/xen: do not repeatedly try to create a failing backend device David Woodhouse
2023-10-19 15:40 ` [PATCH v2 14/24] hw/xen: update Xen console to XenDevice model David Woodhouse
2023-10-19 15:40 ` [PATCH v2 15/24] hw/xen: add support for Xen primary console in emulated mode David Woodhouse
2023-10-19 15:40 ` [PATCH v2 16/24] hw/xen: handle soft reset for primary console David Woodhouse
2023-10-24 15:44 ` Paul Durrant
2023-10-24 15:48 ` David Woodhouse
2023-10-24 16:22 ` Paul Durrant
2023-10-24 18:38 ` David Woodhouse
2023-10-19 15:40 ` [PATCH v2 17/24] hw/xen: only remove peers of PCI NICs on unplug David Woodhouse
2023-10-19 15:40 ` [PATCH v2 18/24] hw/xen: update Xen PV NIC to XenDevice model David Woodhouse
2023-10-19 15:40 ` [PATCH v2 19/24] hw/i386/pc: support '-nic' for xen-net-device David Woodhouse
2023-10-19 15:40 ` [PATCH v2 20/24] hw/xenpv: fix '-nic' support " David Woodhouse
2023-10-19 15:40 ` [PATCH v2 21/24] net: do not delete nics in net_cleanup() David Woodhouse
2023-10-19 15:40 ` [PATCH v2 22/24] tests/avocado: switch to using xen-net-device for Xen guest tests David Woodhouse
2023-10-23 7:33 ` David Woodhouse
2023-10-19 15:40 ` [PATCH v2 23/24] xen-platform: unplug AHCI disks David Woodhouse
2023-10-19 15:40 ` [PATCH v2 24/24] docs: update Xen-on-KVM documentation 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=bd55f12a-1a01-40fb-a61a-dd5ddbd58557@xen.org \
--to=xadimgnik@gmail.com \
--cc=anthony.perard@citrix.com \
--cc=bleal@redhat.com \
--cc=crosa@redhat.com \
--cc=dwmw2@infradead.org \
--cc=eduardo@habkost.net \
--cc=hreitz@redhat.com \
--cc=jasowang@redhat.com \
--cc=jupham125@gmail.com \
--cc=kvm@vger.kernel.org \
--cc=kwolf@redhat.com \
--cc=marcandre.lureau@redhat.com \
--cc=marcel.apfelbaum@gmail.com \
--cc=mst@redhat.com \
--cc=mtosatti@redhat.com \
--cc=paul@xen.org \
--cc=pbonzini@redhat.com \
--cc=philmd@linaro.org \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=richard.henderson@linaro.org \
--cc=shentey@gmail.com \
--cc=sstabellini@kernel.org \
--cc=wainersm@redhat.com \
--cc=xen-devel@lists.xenproject.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).