From nobody Tue Feb 10 18:20:08 2026 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4f9VGn6lwfz6RkVP for ; Tue, 10 Feb 2026 18:20:17 +0000 (UTC) (envelope-from marklmi@yahoo.com) Received: from sonic312-24.consmr.mail.gq1.yahoo.com (sonic312-24.consmr.mail.gq1.yahoo.com [98.137.69.205]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4f9VGn24Lkz3kbQ for ; Tue, 10 Feb 2026 18:20:16 +0000 (UTC) (envelope-from marklmi@yahoo.com) Authentication-Results: mx1.freebsd.org; none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1770747612; bh=CZmvQy++hIM+lCaViDWNtq2MyzXtBez4W9dvQeqA1vE=; h=Date:Subject:To:References:From:In-Reply-To:From:Subject:Reply-To; b=Buuj2Lj/zSClN8dFQ3tBaW35ASSrUlG6QfFV9doolzpr3r9N+KzkmwdC9td4nOcyfY4/ixjOCOo5ssrGFu0HHZG9GAnBC70Z6eXu5fXYz0dqlvDFZ8IwFuGQO+6s8Gei6d6j6Nzf+ple0gZGIaVC5zb/ZkPT89/fwMKirUG6jdAKS4GtR1CZ3G8I3GymCx2Dp1FeJNDecseaOXfgWMBExRL75vWLLskB7P2jKwOzbrT3uKPdf9zuqw/k+rvW/EJQAlOjUVNrGvuDI02EMfCnw8iGh8IHAVo7DZgFDU4qVhSjhmsIY3BeZ04g/wVsogrAYCx+RrvA/kV9DTtZ/fa+gw== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1770747612; bh=45OEqtshGzbmA70N0JRNrn2B9sI591ePoWdgKMb2QRB=; h=X-Sonic-MF:Date:Subject:To:From:From:Subject; b=UKQm6GPzKEFVJjgu6dQf82fvW3eP5KMiflySdeC46AzEkw+mIaANHT60lOp1T58PXgIv1RFSNzcpI/CA78Ad/HsNgfvUe4wpNNFY9b9rsDFPreTBeWjSgffl475f0FXUr4nHE/hQ9F+DRAq4WxwKNI1/tGDs9MbA0kPRvX/7iDZOfEh/BOG8DglQwjdBqPbOUCNr8BE9kAXL2OW+ZEFkj5GbGdlqKdEyi9Qkyq1jwxINONsqrdU1Rt6ijqz1hNzRWa/d/vl6Q1nbWnYZiTyWP4G1F7QLekHgw51kvXvE3bNE+RZJMoGpuR0sECZ5rQTQVT450N+U/UbQBegB3hgpiw== X-YMail-OSG: ho0YrY0VM1l.RZPfoAiusccekhTxg_EovMav3OmfDF6Dl12viuZLychA.ugmHl9 mRagbUoQTVKmUgo9c1kV6dxnQXxkTNQvW0hSrm1r72deoEcJIkGNw6W7.8DG4fa_OCPCxyiuLqvj bGsZ9C18kEf7Et3QJm9WTAb.d9dBFsraeluISoIpP0qQ40Iqxt7FEd8y6gf.6b4ohDGhIeyGJtP6 vfZheM3IG1A.lF.TuP6BNcRAGwn9SbHUGboGBhC_g3re4bOHenzM2teryCMniuxcVjHToOaE5fwa yzdiIuWHPYgKgrEmTwabR8QgZeaJEvLVJr4uwreb0oObzIUoUh9slUD2N3HDSqJHeJrIbauhvhZz 8trjqTpPpnipQogDyLGf52A2BsdrYj3h63dmTDzllHFvTG2m_HgG11PjsBH98.uZXrq9tGw5.eeu wIXZ0_TRivGh.gltbkUERuYTgckr0tZjI8be.lju3PvfLfd.Fh1128tKW8JEkzFVFnr7t0Y4J87o zOLvzNPEIS3ebzj2dtsvhhpvz_ocwR7EkQwSyRje6R26xL91wFdM.WaWf3sdJ55vrvSY8oa9Q.96 7_0CsKJ40eEgjtPj5cWsDoklluTqL6eR8eqH_KwM5s1BTyOtEW5B6nrl_YLzzVO8QHNRJPFcmQjg lH3DSKM6g6n.uhsCuRpxxyLGyyyPXrH.qfQ.Lvrf3kTcM2LlWQyRpgVf83I5TIjntz1VU2jSe2s7 ZvBqmwhBqSKZjKHO7nrIbGS.34jFaZpQdnMzyaeuPjXYWow6Wdrt4T9xWsBMvtrlSxqW0OPb9hyf _i2A2M_HtTImype30eCPY__WsDQ_hc8Cr.X9XSzgQbtYDlR02c0wcb5xzRB3vGCf.jMlYFKzDwwM AskQu18iA9MgQfn4ifeu.7t25tycYlB3RXM.gzZuRcL20bgsIYz8STCljSAFvR8LdccQtrAcYopo _U8UW5GEuBMglVyZ_j0pex6vRlr_TBsgTo4skjiKWSYAe0HD9PezfdXcp1BdQ8N3vQihey2EDSQf RopWpPGJnpdbvmVk3o3VAsvEEtwnJ3dAuW_Crn8yTCFgLbfcevS6Sekm2FhMev9Bx5h4SRzYa6ef j1hjhk4UyucxPjEPz5O3CVehWQf56LoNS0gbpio.yQac5_LEYv1NWb.q2nKBgctDTv0SWQUujW5c YcE2nW.ss7UnX4_5bozEN0td8ElUuDIBjE4yPkwJX2iidT50G7VS5PZ_CQO2sLsaIBaEwbgqp2pM cIhhsBSxIeah334dE5YFffuuACwPsyPjkDAwRUUd3DAlIxgYXXZ08xVqURrkL9TkDOlN_7cTeXXl F6a.zdl0kMHPLHlIngbqn1kpcQx9eYa9HOPLUAB9Pg6SDA5_VqxYU8H1c9qjgAdWScfUFLiTnWnT RVcjiXVWfedxV9CT7OjqB95bvYr3.HyvA7ALhx9mYSCVg5nBL87xlExoqo6jdxKc.xVuyfIkQ7gE jxva622Jcj1cdfH76l2XVAGmKo7vdmbaBWdNEfzJbqlIHXB6AoSxa6dUJoFvoYk.v6LYuWr_vwRH JoGOpjnWnV81MlbLC6rVLljeNLzAesn0i8tTKgkEHMQCb.gsFg8GjWSOjdNk7OCAS6QqJFYqP8GA 0Dxg2HFDw8iL5O3.re.r998DlhmW1ocnx48Zc0FR0MS1VGVe_L7NxEbuFaQ.SeXHhGNtzjP6jLLm qw80YZcqMAOurTp5JbRPwYHT659KopwsJ2pKKtLb8lCUmaNmdmGc0W5zFfKjC_K237pWKEAeac79 R5oCrTX1QYIrLZ34eFdUsVzPF5UUNQjVInLJ3evvbctWKsg1O6kZw3KIVBt6dpgDBgLqpLSmUY6e NDBfSHRFZcbiBIOsauDYu0ZZN9EqK3HJOSQExdXUcMvGVndgTF3G0ODm2L5GzY0ZWo8NXjpmiHhs jLqpfDhjhhH7eDNQjA0TMeySsp1Ns3_sovfvHczdJKW0R5vwagqdU.Y7Y0beFwRbSonIoXPo6L7S cWE6MFpyLucR3OcaRJrSIecH07aEyU1J1KnEJQ.S6sZt3w8FAAkRti3Xk0KCltRoaP9qAUS9ICLZ d2AEEoQcQtVwCkpbJvm5U0H4EX.MfE2L3Xa6Kou5Bd4cjOJyRZWK7mfRwZBKwbctREl3r3V5nbBy 3vtjpqbR0qe8nlv0Lnhvw8eDhb0w7Ii4RfpkKUAQ080aS0dQpjsw_yvEEiyjwLHunuLUmeCC5u6h Z2A9LPMgEpA8YLAqzlVXt63KRBMK3qPbn7n8vyfLV4bI3dJ_XgdWxJcoYIx3_5t1xUhxsCl.x9p. KwMK5M4guhX6rGPYO6lTD_GU9oYViR6amQPzzA_6N X-Sonic-MF: X-Sonic-ID: 78ebb1e3-5879-4745-aa4f-3c559eda13e8 Received: from sonic.gate.mail.ne1.yahoo.com by sonic312.consmr.mail.gq1.yahoo.com with HTTP; Tue, 10 Feb 2026 18:20:12 +0000 Received: by hermes--production-gq1-86969b76cd-nvz7p (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID 05e64bcf316f54c9a98c4621e06c8b8d; Tue, 10 Feb 2026 18:20:09 +0000 (UTC) Message-ID: <5ac3abe1-0a95-414b-9c5e-9f2ba03854eb@yahoo.com> Date: Tue, 10 Feb 2026 10:20:08 -0800 List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: git: 1ea0721e1a56 - main - vtgpu: Support virtio gpu on Parallels Desktop To: Andrew Turner , dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org References: <698b65c4.2198b.4fc2ec98@gitrepo.freebsd.org> Content-Language: en-US From: Mark Millard In-Reply-To: <698b65c4.2198b.4fc2ec98@gitrepo.freebsd.org> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Mailer: WebService/1.1.25178 mail.backend.jedi.jws.acl:role.jedi.acl.token.atz.jws.hermes.yahoo X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:36647, ipnet:98.137.64.0/20, country:US] X-Rspamd-Queue-Id: 4f9VGn24Lkz3kbQ X-Spamd-Bar: ---- On 2/10/26 09:07, Andrew Turner wrote: > The branch main has been updated by andrew: > > URL: https://cgit.FreeBSD.org/src/commit/?id=1ea0721e1a566fdb552b0a919c22667844a894d9 > > commit 1ea0721e1a566fdb552b0a919c22667844a894d9 > Author: Andrew Turner > AuthorDate: 2026-02-10 17:06:31 +0000 > Commit: Andrew Turner > CommitDate: 2026-02-10 17:06:31 +0000 > > vtgpu: Support virtio gpu on Parallels Desktop > > The Parallels Desktop Virtio GPU implementation doesn't handle > enqueuing the VIRTIO_GPU_CMD_RESOURCE_ATTACH_BACKING request and > memory list together. > > Work around this by splitting them before sending them to be enqueued. > > Sponsored by: Arm Ltd > Differential Revision: https://reviews.freebsd.org/D55147 > --- > sys/dev/virtio/gpu/virtio_gpu.c | 51 ++++++++++++++++++++++++++++++----------- > 1 file changed, 38 insertions(+), 13 deletions(-) > > diff --git a/sys/dev/virtio/gpu/virtio_gpu.c b/sys/dev/virtio/gpu/virtio_gpu.c > index 668eb170304a..b95bae9fe286 100644 > --- a/sys/dev/virtio/gpu/virtio_gpu.c > +++ b/sys/dev/virtio/gpu/virtio_gpu.c > @@ -445,21 +445,33 @@ vtgpu_alloc_virtqueue(struct vtgpu_softc *sc) > } > > static int > -vtgpu_req_resp(struct vtgpu_softc *sc, void *req, size_t reqlen, > - void *resp, size_t resplen) > +vtgpu_req_resp2(struct vtgpu_softc *sc, void *req1, size_t req1len, > + void *req2, size_t req2len, void *resp, size_t resplen) > { > struct sglist sg; > - struct sglist_seg segs[2]; > - int error; > + struct sglist_seg segs[3]; > + int error, rcount; > > - sglist_init(&sg, 2, segs); > + sglist_init(&sg, 3, segs); > > - error = sglist_append(&sg, req, reqlen); > + rcount = 1; > + error = sglist_append(&sg, req1, req1len); > if (error != 0) { > device_printf(sc->vtgpu_dev, > - "Unable to append the request to the sglist: %d\n", error); > + "Unable to append the request to the sglist: %d\n", > + error); > return (error); > } > + if (req2 != NULL) { > + error = sglist_append(&sg, req2, req2len); > + if (error != 0) { > + device_printf(sc->vtgpu_dev, > + "Unable to append the request to the sglist: %d\n", > + error); > + return (error); > + } > + rcount++; > + } > error = sglist_append(&sg, resp, resplen); > if (error != 0) { > device_printf(sc->vtgpu_dev, > @@ -467,7 +479,7 @@ vtgpu_req_resp(struct vtgpu_softc *sc, void *req, size_t reqlen, > error); > return (error); > } > - error = virtqueue_enqueue(sc->vtgpu_ctrl_vq, resp, &sg, 1, 1); > + error = virtqueue_enqueue(sc->vtgpu_ctrl_vq, resp, &sg, rcount, 1); > if (error != 0) { > device_printf(sc->vtgpu_dev, "Enqueue failed: %d\n", error); > return (error); > @@ -479,6 +491,13 @@ vtgpu_req_resp(struct vtgpu_softc *sc, void *req, size_t reqlen, > return (0); > } > > +static int > +vtgpu_req_resp(struct vtgpu_softc *sc, void *req, size_t reqlen, > + void *resp, size_t resplen) > +{ > + return (vtgpu_req_resp2(sc, req, reqlen, NULL, 0, resp, resplen)); > +} > + > static int > vtgpu_get_display_info(struct vtgpu_softc *sc) > { > @@ -559,9 +578,15 @@ static int > vtgpu_attach_backing(struct vtgpu_softc *sc) > { > struct { > + /* > + * Split the backing and mem request arguments as some > + * hypervisors, e.g. Parallels Desktop, don't work when > + * they are enqueued together. > + */ > struct { > struct virtio_gpu_resource_attach_backing backing; > - struct virtio_gpu_mem_entry mem[1]; > + char pad; > + struct virtio_gpu_mem_entry mem; > } req; > char pad; > struct virtio_gpu_ctrl_hdr resp; > @@ -577,11 +602,11 @@ vtgpu_attach_backing(struct vtgpu_softc *sc) > s.req.backing.resource_id = htole32(VTGPU_RESOURCE_ID); > s.req.backing.nr_entries = htole32(1); > > - s.req.mem[0].addr = htole64(sc->vtgpu_fb_info.fb_pbase); > - s.req.mem[0].length = htole32(sc->vtgpu_fb_info.fb_size); > + s.req.mem.addr = htole64(sc->vtgpu_fb_info.fb_pbase); > + s.req.mem.length = htole32(sc->vtgpu_fb_info.fb_size); > > - error = vtgpu_req_resp(sc, &s.req, sizeof(s.req), &s.resp, > - sizeof(s.resp)); > + error = vtgpu_req_resp2(sc, &s.req.backing, sizeof(s.req.backing), > + &s.req.mem, sizeof(s.req.mem), &s.resp, sizeof(s.resp)); > if (error != 0) > return (error); > > > Up to now, for the aarch64 macOS context, I've been using the below /boot/device.hints to only get the console that results from the change. since virtio_pci1 was not working. That has been sufficient for my context: Mostly I ssh in and do not use the console for much. (The long "virtio_pci1:" comment line below will wrap twice.) # cat /boot/device.hints # This is for virtio_gpu --for avoiding its use under Parallels: # dmesg -a | grep -i "virtio.*gpu" # virtio_pci1: mem 0x10000000-0x17ffffff,0x18008000-0x18008fff,0x18000000-0x18003fff at device 10.0 on pci0 hint.virtio_pci.1.disabled="1" Should the change committed mean that things would likely work if I then comment out the hint.virtio_pci.1.disabled assignment (once I manage to upgrade)? -- === Mark Millard marklmi at yahoo.com