From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on atuin.qyliss.net X-Spam-Level: X-Spam-Status: No, score=-3.6 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 Received: by atuin.qyliss.net (Postfix, from userid 496) id 2E5EC54792; Tue, 22 Mar 2022 11:09:05 +0000 (UTC) Received: from atuin.qyliss.net (localhost [IPv6:::1]) by atuin.qyliss.net (Postfix) with ESMTP id DAA7354741; Tue, 22 Mar 2022 11:08:37 +0000 (UTC) Received: by atuin.qyliss.net (Postfix, from userid 496) id BA88F5470F; Tue, 22 Mar 2022 11:08:34 +0000 (UTC) Received: from mail-lj1-x236.google.com (mail-lj1-x236.google.com [IPv6:2a00:1450:4864:20::236]) by atuin.qyliss.net (Postfix) with ESMTPS id 409875470D for ; Tue, 22 Mar 2022 11:08:30 +0000 (UTC) Received: by mail-lj1-x236.google.com with SMTP id g24so22239673lja.7 for ; Tue, 22 Mar 2022 04:08:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=aEuZjTflMHmeNDYdnfhkvsMgd5a1B0ztp1plrXqFsVA=; b=SYqLVWWFyDJ5YI6/sNGVKRJDv4M7QKnST27YXoKvQAOcOWDj6UUOxqhfZXjTx1h5eL apWEols7LORS2g+8e2CtGPOeWLsdLnzPQB1RHa2s+nWD53KZU21OlWCy560hhW8t12iE /0MWC3bvLf26khLB/CvWxmUuEVYbk8WRdDTa0eBQ3Y2l1iA3J/gc9VnBRoYODTHYGAM2 uFhlRfXO3SGeFWTjvWtFDEouo4hExosqXRr8z8STGyUmSmawxVbyiHFHfoEBEug9F6Q1 BtnXumHvpIYwQX30dvJQRzQ+uBLWT2tB7q/f7F3jVcT1HO367KmLnVRo/TXbsA9VZb1g AT7g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=aEuZjTflMHmeNDYdnfhkvsMgd5a1B0ztp1plrXqFsVA=; b=njVGarMoa4QfIAMHI8w5SYoxrY+WPJvcz738SgmLygWgwuVZR4FLh0Euk3L5k85AkJ UR2z8gqApR/j5JNevfYWte76iACSESBTfRv8OBksnqZLg+F9SUuygmG3EeR2cGDXEB+4 7QyeQn9jmgRO1fjdJZi8wPDq0nUYT8NXdVVxxpIxYJXwtdQpREjitwx8tq69rXRUKtww dQt2W4TPGSySTwgytalTEj0zLxgWfn0T+J7WsjwFTOOmaN0IR/O2MrTM0KkWe1d3FxOd ByNd+piZINtHmq4zp3Jpl6ZKe3YT73o6HSxzpCpCLGZaxqwoKZnZuqRjW3rOSFjAQu4L +S/A== X-Gm-Message-State: AOAM532m6fdUU68TL1jF5os0UHUQkQlsCHq5jppa+Q9EkXRPDiVpktEz jR6mOUJ28bduhgXqaJKxe2LDJPU2E8QwD8er6QsCK2bm8U0= X-Google-Smtp-Source: ABdhPJwgdSLAT3mVNAmC9u/PkU6g+u0QYirCyGq0hupxjgWO6rm6gtDOLX2cdgSFE0JiujhHngEeQ2p97DFTF8eQVjc= X-Received: by 2002:a05:651c:207:b0:244:c87a:1763 with SMTP id y7-20020a05651c020700b00244c87a1763mr18739363ljn.421.1647947308064; Tue, 22 Mar 2022 04:08:28 -0700 (PDT) MIME-Version: 1.0 References: <87o871tqqu.fsf@alyssa.is> <87bl2sp3p3.fsf@alyssa.is> <20220315140604.ta433j557jsoknkv@eve> <20220315202339.6bqrzsf4yjkggbup@eve> <20220321160534.w4oifq3cdygrobrm@eve> In-Reply-To: <20220321160534.w4oifq3cdygrobrm@eve> From: Thomas Leonard Date: Tue, 22 Mar 2022 11:08:15 +0000 Message-ID: Subject: Re: Using virtio-gpu instead of virtwl To: Alyssa Ross Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Message-ID-Hash: AURHZZWBDAGPCCNXDU5VJ6WVCPZA4PAN X-Message-ID-Hash: AURHZZWBDAGPCCNXDU5VJ6WVCPZA4PAN X-MailFrom: talex5@gmail.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-config-1; header-match-discuss.spectrum-os.org-0; header-match-discuss.spectrum-os.org-1; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: discuss@spectrum-os.org X-Mailman-Version: 3.3.5 Precedence: list List-Id: General high-level discussion about Spectrum Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: On Mon, 21 Mar 2022 at 16:05, Alyssa Ross wrote: > > On Mon, Mar 21, 2022 at 12:10:43PM +0000, Thomas Leonard wrote: > > Looking at the Linux virtio_gpu driver, it seems that using contexts > > requires virgl: > > > > static int virtio_gpu_context_init_ioctl(struct drm_device *dev, void > > *data, struct drm_file *file) > > { > > ... > > if (!vgdev->has_context_init || !vgdev->has_virgl_3d) > > return -EINVAL; > > > > https://github.com/torvalds/linux/blob/f443e374ae131c168a065ea1748feac6= b2e76613/drivers/gpu/drm/virtio/virtgpu_ioctl.c#L732 > > > > 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 =E2=80=94 let me know! > > [1]: https://github.com/NixOS/nixpkgs/pull/165128 Thanks, that is very helpful! I gave it a try, and it got a little further. But now, doing `modprobe virtio_gpu` in the VM crashes crosvm with: Stack trace of thread 2: #0 0x00007fa5fd0915f6 abort (libc.so.6 + 0x265f6) #1 0x00007fa5fcfc6bfd get_dlopen_handle.part.0 (libepoxy.so.0 + 0xc7bfd) #2 0x00007fa5fcfc7366 epoxy_egl_dlsym (libepoxy.so.0 + 0xc8366) #3 0x00007fa5fcfbf870 egl_single_resolver (libepoxy.so.0 + 0xc0870) #4 0x00007fa5fcfc1d2f epoxy_eglQueryString_global_rewrite_ptr (libepoxy.so.0 + 0xc2d2f) #5 0x0000561703e72ca1 virgl_egl_init (crosvm + 0x3deca1) #6 0x0000561703e72221 vrend_winsys_init (crosvm + 0x3de221) #7 0x0000561703e380dc virgl_renderer_init (crosvm + 0x3a40dc) #8 0x0000561703e35e44 _ZN12rutabaga_gfx14virgl_renderer13VirglRenderer4init17h96573d71589e47fcE (crosvm + 0x3a1e44) #9 0x0000561703e23124 _ZN12rutabaga_gfx13rutabaga_core15RutabagaBuilder5build17h694f3c234f8787ffE (crosvm + 0x38f124) #10 0x0000561703cdfb0f _ZN7devices6virtio3gpu10virtio_gpu9VirtioGpu3new17h43dded1b3497b0f1E (crosvm + 0x24bb0f) #11 0x0000561703d0feb2 _ZN7devices6virtio3gpu5build17hc6e82daf2d41f5feE (crosvm + 0x27beb2) #12 0x0000561703cbee32 _ZN3std10sys_common9backtrace28__rust_begin_short_backtrace17h8f078e46fd25a= 72dE (crosvm + 0x22ae32) #13 0x0000561703cf5e0d _ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h56= 05b62669a02b38E (crosvm + 0x261e0d) #14 0x0000561703ee8b43 _ZN3std3sys4unix6thread6Thread3new12thread_start17h3f45e1fefa031d31E (crosvm + 0x454b43) #15 0x00007fa5fceb6d40 start_thread (libpthread.so.0 + 0x8d40) #16 0x00007fa5fd16703f __clone (libc.so.6 + 0xfc03f) Stack trace of thread 1: #0 0x00007fa5fd1684b2 recvfrom (libc.so.6 + 0xfd4b2) #1 0x0000561703ec7b0c _ZN8sys_util3net13UnixSeqpacket20recv_as_vec_with_fds17hcc9cb638a4fdbca9E (crosvm + 0x433b0c) #2 0x0000561703b85b87 _ZN4base4tube4Tube4recv17hd85339bce7434d11E (crosvm + 0xf1b87) #3 0x0000561703b90395 _ZN7devices5proxy10child_proc17hde9579314b1fc020E (crosvm + 0xfc395) #4 0x0000000103001400 n/a (n/a + 0x0) It looks like it should be printing a message to stderr before calling abort, but I don't see it (https://github.com/anholt/libepoxy/blob/1.5.9/src/dispatch_common.c#L315). I also tried with --gpu=3Dbackend=3Dvirglrenderer,egl=3Dfalse, which crashe= s instead with: Stack trace of thread 2: #0 0x0000000000000000 n/a (n/a + 0x0) #1 0x00007fac70002b00 n/a (n/a + 0x0) I think I'll give up on virtio_gpu for now and try again after a few months= . --=20 talex5 (GitHub/Twitter) http://roscidus.com/blog/