From: Benjamin Leggett <benjamin@edera.io>
To: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Cc: David Airlie <airlied@redhat.com>,
Gerd Hoffmann <kraxel@redhat.com>,
Gurchetan Singh <gurchetansingh@chromium.org>,
Chia-I Wu <olvaffe@gmail.com>,
Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
Maxime Ripard <mripard@kernel.org>,
Thomas Zimmermann <tzimmermann@suse.de>,
Simona Vetter <simona@ffwll.ch>,
dri-devel@lists.freedesktop.org, virtualization@lists.linux.dev,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH] drm/virtio: use the DMA API for resource backing on Xen
Date: Tue, 18 Aug 2026 13:48:37 -0400 [thread overview]
Message-ID: <875x17tj4a.fsf@edera.io> (raw)
In-Reply-To: <657a88d7-e1d4-46ee-9b79-b33144e749dd@collabora.com>
Dmitry Osipenko <dmitry.osipenko@collabora.com> writes:
> On 8/7/26 01:54, Benjamin Leggett via B4 Relay wrote:
>> From: Benjamin Leggett <benjamin@edera.io>
>>
>> On a Xen PV domain page addresses bear no relation to the real machine
>> addresses the host would have to use to reach it.
>> virtio_ring.c handles this correctly, vring_use_map_api() returns true
>> for any xen_domain() regardless of VIRTIO_F_ACCESS_PLATFORM.
>>
>> virtio-gpu makes the same decision independently, but its copy
>> looks only at the feature bit:
>>
>> bool use_dma_api = !virtio_has_dma_quirk(vgdev->vdev);
>>
>> QEMU does not set iommu_platform on virtio-vga by default, so
>> VIRTIO_F_ACCESS_PLATFORM is not negotiated, use_dma_api is false, and
>> virtio_gpu_object_shmem_init() describes the framebuffer's backing pages
>> to the host with sg_phys(). Those are guest-physical addresses. In a PV
>> domain they resolve, on the host side, to pages belonging to some other
>> domain, so the host scans out unrelated memory.
>>
>> Move the decision into virtio_gpu_use_dma_api() and give it the
>> xen_domain() check, like vring_use_map_api() has. This
>> additionally enables the dma_sync_sgtable_for_device() calls in
>> virtgpu_vq.c, which are required for correctness whenever swiotlb
>> is in play.
>>
>> Reproduced with a Xen 4.21 PV dom0 nested inside QEMU 8.2 with
>> virtio-vga, on both a distro 6.8 kernel and 6.18 LTS. A PVH dom0
>> works fine and doesn't need this fix because it is identity-mapped,
>> only PV dom0s are affected.
>>
>> Fixes: a3b815f09bb8 ("drm/virtio: add iommu support.")
>> Signed-off-by: Ben Leggett <benjamin@edera.io>
>> ---
>> drivers/gpu/drm/virtio/virtgpu_drv.h | 20 ++++++++++++++++++++
>> drivers/gpu/drm/virtio/virtgpu_object.c | 2 +-
>> drivers/gpu/drm/virtio/virtgpu_vq.c | 6 +++---
>> 3 files changed, 24 insertions(+), 4 deletions(-)
>
> Feel free to send follow-up patches to fix problems reported by the
> Sashiko bot.
>
> Applied to drm-misc-fixes, thanks!
Thanks, a proposed followup for the Sashiko-bot reported issue
submitted: https://lore.kernel.org/dri-devel/20260814-virtgpu-from-host-sync-v4-1-64dd736b1779@edera.io/
prev parent reply other threads:[~2026-08-18 17:48 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-06 22:54 [PATCH] drm/virtio: use the DMA API for resource backing on Xen Benjamin Leggett via B4 Relay
2026-08-06 22:54 ` Benjamin Leggett
2026-08-06 23:10 ` sashiko-bot
2026-08-06 23:53 ` Benjamin Leggett
2026-08-07 2:55 ` Benjamin Leggett
2026-08-11 15:49 ` Dmitry Osipenko
2026-08-14 13:41 ` Dmitry Osipenko
2026-08-18 17:48 ` Benjamin Leggett [this message]
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=875x17tj4a.fsf@edera.io \
--to=benjamin@edera.io \
--cc=airlied@redhat.com \
--cc=dmitry.osipenko@collabora.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=gurchetansingh@chromium.org \
--cc=kraxel@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=maarten.lankhorst@linux.intel.com \
--cc=mripard@kernel.org \
--cc=olvaffe@gmail.com \
--cc=simona@ffwll.ch \
--cc=tzimmermann@suse.de \
--cc=virtualization@lists.linux.dev \
/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.