qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Sean Christopherson <seanjc@google.com>
To: "Alex Bennée" <alex.bennee@linaro.org>
Cc: 刘聪 <liucong2565@phytium.com.cn>,
	"Dmitry Osipenko" <dmitry.osipenko@collabora.com>,
	Jiqian.Chen@amd.com, akihiko.odaki@daynix.com,
	alexander.deucher@amd.com, christian.koenig@amd.com,
	gert.wollny@collabora.com, gurchetansingh@chromium.org,
	hi@alyssa.is, honglei1.huang@amd.com, julia.zhang@amd.com,
	kraxel@redhat.com, marcandre.lureau@redhat.com, mst@redhat.com,
	pbonzini@redhat.com, philmd@linaro.org,
	pierre-eric.pelloux-prayer@amd.com, qemu-devel@nongnu.org,
	ray.huang@amd.com, robdclark@gmail.com, roger.pau@citrix.com,
	slp@redhat.com, stefano.stabellini@amd.com,
	xenia.ragiadakou@amd.com, zzyiwei@chromium.org
Subject: Re: [PATCH v11 04/10] virtio-gpu: Support asynchronous fencing
Date: Mon, 28 Apr 2025 07:38:23 -0700	[thread overview]
Message-ID: <aA-S35Zw0EXYbDC6@google.com> (raw)
In-Reply-To: <87h629ix3n.fsf@draig.linaro.org>

On Sun, Apr 27, 2025, Alex Bennée wrote:
> 刘聪 <liucong2565@phytium.com.cn> writes:
> 
> > Hi Dmitry,
> >
> > The virglrender patch can fix the virgl issue, but the native context still
> > fails to run on my machine.  I'm not sure if anyone has successfully run it
> > on an ARM64 machine before.
> >
> > When running with Venus, the virtual machine can successfully run vkcube.
> > However, when using the native context, a KVM error is triggered. Both my
> > guest and host kernels are already updated to version 6.14.
> >
> > Here are the commands and error messages I encountered:
> >
> > ```
> > phytium@ubuntu:~/working/virglrenderer$
> > /opt/native-context-v11/bin/qemu-system-aarch64 --machine
> > virt,accel=kvm,memory-backend=mem1 -cpu host -smp 4 -m 4G -drive
> > file=/home/phytium/working/ubuntu24.04-aarch64-native-context,format=raw,if=virtio
> > -bios /usr/share/AAVMF/AAVMF_CODE.ms.fd -netdev user,id=net0 -device
> > virtio-net-pci,netdev=net0 -device
> > virtio-gpu-gl,hostmem=4G,blob=on,venus=on -object
> > memory-backend-memfd,id=mem1,size=4G -display sdl,gl=on,show-cursor=on
> > -device usb-ehci,id=usb -device usb-mouse,bus=usb.0 -device
> > usb-kbd,bus=usb.0
> > phytium@ubuntu:~/working/virglrenderer$ 
> > phytium@ubuntu:~/working/virglrenderer$
> > /opt/native-context-v11/bin/qemu-system-aarch64 --machine
> > virt,accel=kvm,memory-backend=mem1 -cpu host -smp 4 -m 4G -drive
> > file=/home/phytium/working/ubuntu24.04-aarch64-native-context,format=raw,if=virtio
> > -bios /usr/share/AAVMF/AAVMF_CODE.ms.fd -netdev user,id=net0 -device
> > virtio-net-pci,netdev=net0 -device
> > virtio-gpu-gl,hostmem=4G,blob=on,drm_native_context=on -object
> > memory-backend-memfd,id=mem1,size=4G -display sdl,gl=on,show-cursor=on
> > -device usb-ehci,id=usb -device usb-mouse,bus=usb.0 -device
> > usb-kbd,bus=usb.0
> > error: kvm run failed Bad address
> 
> That very much looks like a page not being accessible when trying to do
> something.

Yep.  The most likely scenario where KVM_RUN returns -EFAULT is when KVM can't
obtain a PFN for the faulting GPA.  Odds are good it's this code:

	pfn = __kvm_faultin_pfn(memslot, gfn, write_fault ? FOLL_WRITE : 0,
				&writable, &page);
	if (pfn == KVM_PFN_ERR_HWPOISON) {
		kvm_send_hwpoison_signal(hva, vma_shift);
		return 0;
	}
	if (is_error_noslot_pfn(pfn))   <==========
		return -EFAULT;

where under the hood, __kvm_faultin_pfn() is a wrapper to gup() and
follow_pfnmap_start() (and some other things).

If you can figure out which GPA is failing, then it's "just" a matter of figuring
out why KVM doesn't find a valid mapping.


  reply	other threads:[~2025-04-28 14:39 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-03-10 12:05 [PATCH v11 00/10] Support virtio-gpu DRM native context Dmitry Osipenko
2025-03-10 12:05 ` [PATCH v11 01/10] ui/sdl2: Restore original context after new context creation Dmitry Osipenko
2025-03-10 12:05 ` [PATCH v11 02/10] ui/sdl2: Implement dpy dmabuf functions Dmitry Osipenko
2025-03-10 12:05 ` [PATCH v11 03/10] virtio-gpu: Handle virgl fence creation errors Dmitry Osipenko
2025-03-10 12:05 ` [PATCH v11 04/10] virtio-gpu: Support asynchronous fencing Dmitry Osipenko
2025-04-10  9:54   ` Cong Liu
2025-04-10 21:59     ` Dmitry Osipenko
2025-04-11  1:42       ` 刘聪
2025-04-14 14:47         ` Dmitry Osipenko
2025-04-26 22:27           ` Dmitry Osipenko
2025-04-27 11:53             ` 刘聪
2025-04-27 12:54               ` Alex Bennée
2025-04-28 14:38                 ` Sean Christopherson [this message]
2025-04-27 14:16               ` Dmitry Osipenko
2025-04-28 10:07                 ` Alex Bennée
2025-04-28 12:51                   ` liucong2565
2025-04-28 13:55                     ` Alex Bennée
2025-03-10 12:05 ` [PATCH v11 05/10] virtio-gpu: Support DRM native context Dmitry Osipenko
2025-03-10 12:05 ` [PATCH v11 06/10] ui/sdl2: Don't disable scanout when display is refreshed Dmitry Osipenko
2025-03-10 12:05 ` [PATCH v11 07/10] ui/gtk: " Dmitry Osipenko
2025-03-10 12:05 ` [PATCH v11 08/10] docs/system: virtio-gpu: Add link to Mesa VirGL doc Dmitry Osipenko
2025-03-10 12:05 ` [PATCH v11 09/10] docs/system: virtio-gpu: Update Venus link Dmitry Osipenko
2025-03-10 12:05 ` [PATCH v11 10/10] docs/system: virtio-gpu: Document host/guest requirements Dmitry Osipenko
2025-03-10 12:25   ` Akihiko Odaki
2025-03-10 12:29     ` Dmitry Osipenko

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=aA-S35Zw0EXYbDC6@google.com \
    --to=seanjc@google.com \
    --cc=Jiqian.Chen@amd.com \
    --cc=akihiko.odaki@daynix.com \
    --cc=alex.bennee@linaro.org \
    --cc=alexander.deucher@amd.com \
    --cc=christian.koenig@amd.com \
    --cc=dmitry.osipenko@collabora.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=liucong2565@phytium.com.cn \
    --cc=marcandre.lureau@redhat.com \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=philmd@linaro.org \
    --cc=pierre-eric.pelloux-prayer@amd.com \
    --cc=qemu-devel@nongnu.org \
    --cc=ray.huang@amd.com \
    --cc=robdclark@gmail.com \
    --cc=roger.pau@citrix.com \
    --cc=slp@redhat.com \
    --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 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).