Re: Using virtio-gpu instead of virtwl

Alyssa Ross
2022-10-10T16:54:15Z

[-- Attachment #1: Type: text/plain, Size: 2444 bytes --]

Thomas Leonard <talex5@gmail.com> writes:

> On Tue, 9 Aug 2022 at 12:01, Alyssa Ross <hi@alyssa.is> wrote:
>>
>> On Mon, Mar 21, 2022 at 04:05:34PM +0000, Alyssa Ross wrote:
>> > On Mon, Mar 21, 2022 at 12:10:43PM +0000, Thomas Leonard wrote:
>> > > I think perhaps that crosvm is compiled without the "virgl_renderer"
>> > > feature (it's not in the default set), and this is causing it to crash
>> > > because that's also "self.default_component". I don't know how to
>> > > compile crosvm with virgl enabled, though.
>> >
>> > It wasn't easy, but I got it to build[1]. I hope that helps. It adds
>> > both virgl_renderer and virgl_renderer_next. I think virgl_renderer
>> > is on by default with --gpu, and virgl_renderer_next is used with the
>> > --gpu-render-server argument. Hopefully at least one of those does the
>> > right thing — let me know!
>> >
>> > [1]: https://github.com/NixOS/nixpkgs/pull/165128
>>
>> Small update: Nixpkgs unstable's crosvm package is now built with the
>> virgl_renderer and virgl_renderer_next features.
>
> I got this working eventually, but I had to apply a load of patches.
> How are you getting it to run?
>
> My patches are here: https://gitlab.com/talex5/crosvm/-/commits/main
>
> In particular:
> - It failed to start (when using virtio-gpu) because it doesn't have
> access to /nix/store, and

I haven't hit this one. I've mostly been testing with vhost-user —
maybe crosvm devices don't run sandboxed when run standalone for
vhost-user, since running that device is the only thing the crosvm
process is doing?

> - It failed to send Wayland keymaps because they need to be mapped read-only

The vhost-user-gpu frontend implementation we wrote for cloud-hypervisor[1]
will map buffers as read-only if mapping them read-write fails[2]. This
is only a workaround for crosvm not setting the flags correctly in the
vhost-user message, though. The real fix will be in crosvm.

Also, not all Wayland compositors require keymaps to be mapped
read-only. wlroots does, but Weston doesn't. I suspect Chromium
doesn't either, hence the bug persisting in crosvm.

[1]: https://spectrum-os.org/lists/archives/spectrum-devel/20220930210906.1696349-8-alyssa.ross@unikie.com/
[2]: https://spectrum-os.org/lists/archives/spectrum-devel/20b1f9da3af/s/?b=pkgs/applications/virtualization/cloud-hypervisor/0003-virtio-devices-add-a-GPU-device.patch#n247

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]