From: "Alex Bennée" <alex.bennee@linaro.org>
To: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Cc: "Akihiko Odaki" <akihiko.odaki@daynix.com>,
"Huang Rui" <ray.huang@amd.com>,
"Marc-André Lureau" <marcandre.lureau@gmail.com>,
"Philippe Mathieu-Daudé" <philmd@linaro.org>,
"Gerd Hoffmann" <kraxel@redhat.com>,
"Michael S . Tsirkin" <mst@redhat.com>,
"Stefano Stabellini" <sstabellini@kernel.org>,
"Antonio Caggiano" <quic_acaggian@quicinc.com>,
"Dr . David Alan Gilbert" <dgilbert@redhat.com>,
"Robert Beckett" <bob.beckett@collabora.com>,
"Gert Wollny" <gert.wollny@collabora.com>,
qemu-devel@nongnu.org,
"Gurchetan Singh" <gurchetansingh@chromium.org>,
ernunes@redhat.com, "Alyssa Ross" <hi@alyssa.is>,
"Roger Pau Monné" <roger.pau@citrix.com>,
"Alex Deucher" <alexander.deucher@amd.com>,
"Stefano Stabellini" <stefano.stabellini@amd.com>,
"Christian König" <christian.koenig@amd.com>,
"Xenia Ragiadakou" <xenia.ragiadakou@amd.com>,
"Pierre-Eric Pelloux-Prayer" <pierre-eric.pelloux-prayer@amd.com>,
"Honglei Huang" <honglei1.huang@amd.com>,
"Julia Zhang" <julia.zhang@amd.com>,
"Chen Jiqian" <Jiqian.Chen@amd.com>,
"Yiwei Zhang" <zzyiwei@chromium.org>
Subject: Re: [PATCH v14 00/14] Support blob memory and venus on qemu
Date: Sun, 23 Jun 2024 17:44:46 +0100 [thread overview]
Message-ID: <87o77rvcap.fsf@draig.linaro.org> (raw)
In-Reply-To: <6e11b143-2310-4d82-a7d6-da2ff73a3261@collabora.com> (Dmitry Osipenko's message of "Sat, 22 Jun 2024 01:25:32 +0300")
Dmitry Osipenko <dmitry.osipenko@collabora.com> writes:
> On 6/21/24 11:59, Alex Bennée wrote:
>> Dmitry Osipenko <dmitry.osipenko@collabora.com> writes:
>>
>>> On 6/19/24 20:37, Alex Bennée wrote:
>>>> So I've been experimenting with Aarch64 TCG with an Intel backend like
>>>> this:
>>>>
>>>> ./qemu-system-aarch64 \
>>>> -M virt -cpu cortex-a76 \
>>>> -device virtio-net-pci,netdev=unet \
>>>> -netdev user,id=unet,hostfwd=tcp::2222-:22 \
>>>> -m 8192 \
>>>> -object memory-backend-memfd,id=mem,size=8G,share=on \
>>>> -serial mon:stdio \
>>>> -kernel ~/lsrc/linux.git/builds/arm64.initramfs/arch/arm64/boot/Image \
>>>> -append "console=ttyAMA0" \
>>>> -device qemu-xhci -device usb-kbd -device usb-tablet \
>>>> -device virtio-gpu-gl-pci,blob=true,venus=true,hostmem=4G \
>>>> -display sdl,gl=on -d plugin,guest_errors,trace:virtio_gpu_cmd_res_create_blob,trace:virtio_gpu_cmd_res_back_\*,trace:virtio_gpu_cmd_res_xfer_toh_3d,trace:virtio_gpu_cmd_res_xfer_fromh_3d,trace:address_space_map
>>>>
>>>> And I've noticed a couple of things. First trying to launch vkmark to
>>>> run a KMS mode test fails with:
>>>>
>>> ...
>>>> virgl_render_server[1875931]: vkr: failed to import resource: invalid res_id 5
>>>> virgl_render_server[1875931]: vkr: vkAllocateMemory resulted in CS error
>>>> virgl_render_server[1875931]: vkr: ring_submit_cmd: vn_dispatch_command failed
>>>>
>>>> More interestingly when shutting stuff down we see weirdness like:
>>>>
>>>> address_space_map as:0x561b48ec48c0 addr 0x1008ac4b0:18 write:1 attrs:0x1
>>>> virgl_render_server[1875931]: vkr: destroying context 3 (vkmark) with a valid instance
>>>> virgl_render_server[1875931]: vkr: destroying device with valid objects
>>>> vkr_context_remove_object: -7438602987017907480
>>>> vkr_context_remove_object: 7
>>>> vkr_context_remove_object: 5
>>>>
>>>> which indicates something has gone very wrong. I'm not super familiar
>>>> with the memory allocation patterns but should stuff that is done as
>>>> virtio_gpu_cmd_res_back_attach() be find-able in the list of resources?
>>>
>>> This is expected to fail. Vkmark creates shmem virgl GBM FB BO on guest
>>> that isn't exportable on host. AFAICT, more code changes should be
>>> needed to support this case.
>>
>> There are a lot of acronyms there. If this is pure guest memory why
>> isn't it exportable to the host? Or should the underlying mesa library
>> be making sure the allocation happens from the shared region?
>>
>> Is vkmark particularly special here?
>
> Actually, you could get it to work to a some degree if you'll compile
> virglrenderer with -Dminigbm_allocation=true. On host use GTK/Wayland
> display.
I'll give that a go.
> Vkmark isn't special. It's virglrenderer that has a room for
> improvement. ChromeOS doesn't use KMS in VMs, proper KMS support was
> never a priority for Venus.
Is there a tracking bug for KMS support for Venus? Or Venus should work
fine if virglrenderer can export the buffer to the host?
<snip>
>>>>
>>>> This could be a false positive or it could be a race between the guest
>>>> kernel clearing memory while we are still doing
>>>> virtio_gpu_ctrl_response.
>>>>
>>>> What do you think?
>>>
>>> The memcpy warning looks a bit suspicion, but likely is harmless. I
>>> don't see such warning with TSAN and x86 VM.
>>
>> TSAN can only pick up these interactions with TCG guests because it can
>> track guest memory accesses. With a KVM guest we have no visibility of
>> the guest accesses.
>
> I couldn't reproduce this issue with my KVM/TCG/ARM64 setups. Fox x86 I
> checked both KVM and TCG, TSAN only warns about vitio-net memcpy's for
> me.
Hmm OK. I'll keep an eye out as I test the next version.
--
Alex Bennée
Virtualisation Tech Lead @ Linaro
prev parent reply other threads:[~2024-06-23 16:45 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-16 1:03 [PATCH v14 00/14] Support blob memory and venus on qemu Dmitry Osipenko
2024-06-16 1:03 ` [PATCH v14 01/14] virtio-gpu: Use trace events for tracking number of in-flight fences Dmitry Osipenko
2024-06-16 1:03 ` [PATCH v14 02/14] virtio-gpu: Move fence_poll timer to VirtIOGPUGL Dmitry Osipenko
2024-06-16 1:03 ` [PATCH v14 03/14] virtio-gpu: Move print_stats " Dmitry Osipenko
2024-06-16 1:03 ` [PATCH v14 04/14] virtio-gpu: Handle virtio_gpu_virgl_init() failure Dmitry Osipenko
2024-06-16 1:03 ` [PATCH v14 05/14] virtio-gpu: Unrealize GL device Dmitry Osipenko
2024-06-16 1:03 ` [PATCH v14 06/14] virtio-gpu: Use pkgconfig version to decide which virgl features are available Dmitry Osipenko
2024-06-16 1:03 ` [PATCH v14 07/14] virtio-gpu: Support context-init feature with virglrenderer Dmitry Osipenko
2024-06-16 1:03 ` [PATCH v14 08/14] virtio-gpu: Don't require udmabuf when blobs and virgl are enabled Dmitry Osipenko
2024-06-16 1:03 ` [PATCH v14 09/14] virtio-gpu: Add virgl resource management Dmitry Osipenko
2024-06-16 1:03 ` [PATCH v14 10/14] virtio-gpu: Support blob scanout using dmabuf fd Dmitry Osipenko
2024-06-16 9:20 ` Akihiko Odaki
2024-06-16 1:03 ` [PATCH v14 11/14] virtio-gpu: Support suspension of commands processing Dmitry Osipenko
2024-06-16 1:03 ` [PATCH v14 12/14] virtio-gpu: Handle resource blob commands Dmitry Osipenko
2024-06-16 9:23 ` Akihiko Odaki
2024-06-19 16:00 ` Dmitry Osipenko
2024-06-19 15:27 ` Alex Bennée
2024-06-19 15:59 ` Dmitry Osipenko
2024-06-16 1:03 ` [PATCH v14 13/14] virtio-gpu: Register capsets dynamically Dmitry Osipenko
2024-06-16 1:03 ` [PATCH v14 14/14] virtio-gpu: Support Venus context Dmitry Osipenko
2024-06-19 17:37 ` [PATCH v14 00/14] Support blob memory and venus on qemu Alex Bennée
2024-06-20 17:34 ` Dmitry Osipenko
2024-06-21 8:59 ` Alex Bennée
2024-06-21 22:25 ` Dmitry Osipenko
2024-06-23 16:44 ` Alex Bennée [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=87o77rvcap.fsf@draig.linaro.org \
--to=alex.bennee@linaro.org \
--cc=Jiqian.Chen@amd.com \
--cc=akihiko.odaki@daynix.com \
--cc=alexander.deucher@amd.com \
--cc=bob.beckett@collabora.com \
--cc=christian.koenig@amd.com \
--cc=dgilbert@redhat.com \
--cc=dmitry.osipenko@collabora.com \
--cc=ernunes@redhat.com \
--cc=gert.wollny@collabora.com \
--cc=gurchetansingh@chromium.org \
--cc=hi@alyssa.is \
--cc=honglei1.huang@amd.com \
--cc=julia.zhang@amd.com \
--cc=kraxel@redhat.com \
--cc=marcandre.lureau@gmail.com \
--cc=mst@redhat.com \
--cc=philmd@linaro.org \
--cc=pierre-eric.pelloux-prayer@amd.com \
--cc=qemu-devel@nongnu.org \
--cc=quic_acaggian@quicinc.com \
--cc=ray.huang@amd.com \
--cc=roger.pau@citrix.com \
--cc=sstabellini@kernel.org \
--cc=stefano.stabellini@amd.com \
--cc=xenia.ragiadakou@amd.com \
--cc=zzyiwei@chromium.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 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.