From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1163894AbeBOP2u (ORCPT ); Thu, 15 Feb 2018 10:28:50 -0500 Received: from bhuna.collabora.co.uk ([46.235.227.227]:56374 "EHLO bhuna.collabora.co.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1163874AbeBOP2r (ORCPT ); Thu, 15 Feb 2018 10:28:47 -0500 Subject: Re: [PATCH v3 1/2] drm/virtio: Add window server support To: Gerd Hoffmann Cc: linux-kernel@vger.kernel.org, Zach Reizner , kernel@collabora.com, dri-devel@lists.freedesktop.org, virtualization@lists.linux-foundation.org, "Michael S. Tsirkin" , David Airlie , Jason Wang , Stefan Hajnoczi References: <20180126135803.29781-1-tomeu.vizoso@collabora.com> <20180126135803.29781-2-tomeu.vizoso@collabora.com> <20180201163623.5cs2ysykg5wgulf4@sirius.home.kraxel.org> <49785e0d-936a-c3b4-62dd-aafc7083a942@collabora.com> <20180205122017.4vb5nlpodkq2uhxa@sirius.home.kraxel.org> <20180205160322.sntv5uoqp5o7flnh@sirius.home.kraxel.org> <20180206142302.vdjyqmnoypydci4t@sirius.home.kraxel.org> <04687943-847b-25a7-42ef-a21b4c7ef0cf@collabora.com> <20180212114540.iygbha554busy4ip@sirius.home.kraxel.org> From: Tomeu Vizoso Message-ID: <5ca446c7-582c-6871-c13f-9fc44c535ebc@collabora.com> Date: Thu, 15 Feb 2018 16:28:41 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 MIME-Version: 1.0 In-Reply-To: <20180212114540.iygbha554busy4ip@sirius.home.kraxel.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 02/12/2018 12:45 PM, Gerd Hoffmann wrote:>>>> 4. QEMU pops data+buffers from the virtqueue, looks up shmem FD for each >>>> resource, sends data + FDs to the compositor with SCM_RIGHTS >>> >>> BTW: Is there a 1:1 relationship between buffers and shmem blocks? Or >>> does the wayland protocol allow for offsets in buffer meta data, so you >>> can place multiple buffers in a single shmem block? >> >> The latter: >> https://wayland.freedesktop.org/docs/html/apa.html#protocol-spec-wl_shm_pool > > Ah, good, that makes it alot easier. > > So, yes, using ivshmem would be one option. Tricky part here is the > buffer management though. It's just a raw piece of memory. The guest > proxy could mmap the pci bar and manage it. But then it is again either > unmodified guest + copying the data, or modified client (which requests > buffers from guest proxy) for zero-copy. What if at VIRTIO_GPU_CMD_RESOURCE_CREATE_2D time we created a ivshmem device to back that resource. The ivshmem device would in turn be backed by a hostmem device that wraps a shmem FD. The guest client can then export that resource/BO and pass the FD to the guest proxy. The guest proxy would import it and put the resource_id in the equivalent message in our protocol extension. QEMU would get that resource id from vsock, look up which hostmem device is associated with that resource, and pass its FD to the compositor. > We also need a solution for the keymap shmem block. I guess the keymap > doesn't change all that often, so maybe it is easiest to just copy it > over (host proxy -> guest proxy) instead of trying to map the host shmem > into the guest? Not sure if that would be much simpler than creating a ivshmem+hostmem combo that wraps the incoming shmem FD and then having virtio-gpu create a BO that imports it. Regards, Tomeu From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tomeu Vizoso Subject: Re: [PATCH v3 1/2] drm/virtio: Add window server support Date: Thu, 15 Feb 2018 16:28:41 +0100 Message-ID: <5ca446c7-582c-6871-c13f-9fc44c535ebc@collabora.com> References: <20180126135803.29781-1-tomeu.vizoso@collabora.com> <20180126135803.29781-2-tomeu.vizoso@collabora.com> <20180201163623.5cs2ysykg5wgulf4@sirius.home.kraxel.org> <49785e0d-936a-c3b4-62dd-aafc7083a942@collabora.com> <20180205122017.4vb5nlpodkq2uhxa@sirius.home.kraxel.org> <20180205160322.sntv5uoqp5o7flnh@sirius.home.kraxel.org> <20180206142302.vdjyqmnoypydci4t@sirius.home.kraxel.org> <04687943-847b-25a7-42ef-a21b4c7ef0cf@collabora.com> <20180212114540.iygbha554busy4ip@sirius.home.kraxel.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from bhuna.collabora.co.uk (bhuna.collabora.co.uk [IPv6:2a00:1098:0:82:1000:25:2eeb:e3e3]) by gabe.freedesktop.org (Postfix) with ESMTPS id 71CB46E520 for ; Thu, 15 Feb 2018 15:28:47 +0000 (UTC) In-Reply-To: <20180212114540.iygbha554busy4ip@sirius.home.kraxel.org> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Gerd Hoffmann Cc: "Michael S. Tsirkin" , David Airlie , Stefan Hajnoczi , Jason Wang , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, virtualization@lists.linux-foundation.org, kernel@collabora.com List-Id: dri-devel@lists.freedesktop.org T24gMDIvMTIvMjAxOCAxMjo0NSBQTSwgR2VyZCBIb2ZmbWFubiB3cm90ZTo+Pj4+IDQuIFFFTVUg cG9wcyAKZGF0YStidWZmZXJzIGZyb20gdGhlIHZpcnRxdWV1ZSwgbG9va3MgdXAgc2htZW0gRkQg Zm9yIGVhY2gKID4+Pj4gcmVzb3VyY2UsIHNlbmRzIGRhdGEgKyBGRHMgdG8gdGhlIGNvbXBvc2l0 b3Igd2l0aCBTQ01fUklHSFRTCiA+Pj4KID4+PiBCVFc6IElzIHRoZXJlIGEgMToxIHJlbGF0aW9u c2hpcCBiZXR3ZWVuIGJ1ZmZlcnMgYW5kIHNobWVtIGJsb2Nrcz8gIE9yCiA+Pj4gZG9lcyB0aGUg d2F5bGFuZCBwcm90b2NvbCBhbGxvdyBmb3Igb2Zmc2V0cyBpbiBidWZmZXIgbWV0YSBkYXRhLCBz byB5b3UKID4+PiBjYW4gcGxhY2UgbXVsdGlwbGUgYnVmZmVycyBpbiBhIHNpbmdsZSBzaG1lbSBi bG9jaz8KID4+CiA+PiBUaGUgbGF0dGVyOgogPj4gCmh0dHBzOi8vd2F5bGFuZC5mcmVlZGVza3Rv cC5vcmcvZG9jcy9odG1sL2FwYS5odG1sI3Byb3RvY29sLXNwZWMtd2xfc2htX3Bvb2wKID4KID4g QWgsIGdvb2QsIHRoYXQgbWFrZXMgaXQgYWxvdCBlYXNpZXIuCiA+CiA+IFNvLCB5ZXMsIHVzaW5n IGl2c2htZW0gd291bGQgYmUgb25lIG9wdGlvbi4gIFRyaWNreSBwYXJ0IGhlcmUgaXMgdGhlCiA+ IGJ1ZmZlciBtYW5hZ2VtZW50IHRob3VnaC4gIEl0J3MganVzdCBhIHJhdyBwaWVjZSBvZiBtZW1v cnkuICBUaGUgZ3Vlc3QKID4gcHJveHkgY291bGQgbW1hcCB0aGUgcGNpIGJhciBhbmQgbWFuYWdl IGl0LiAgQnV0IHRoZW4gaXQgaXMgYWdhaW4gZWl0aGVyCiA+IHVubW9kaWZpZWQgZ3Vlc3QgKyBj b3B5aW5nIHRoZSBkYXRhLCBvciBtb2RpZmllZCBjbGllbnQgKHdoaWNoIHJlcXVlc3RzCiA+IGJ1 ZmZlcnMgZnJvbSBndWVzdCBwcm94eSkgZm9yIHplcm8tY29weS4KCldoYXQgaWYgYXQgVklSVElP X0dQVV9DTURfUkVTT1VSQ0VfQ1JFQVRFXzJEIHRpbWUgd2UgY3JlYXRlZCBhIGl2c2htZW0gCmRl dmljZSB0byBiYWNrIHRoYXQgcmVzb3VyY2UuIFRoZSBpdnNobWVtIGRldmljZSB3b3VsZCBpbiB0 dXJuIGJlIGJhY2tlZCAKYnkgYSBob3N0bWVtIGRldmljZSB0aGF0IHdyYXBzIGEgc2htZW0gRkQu CgpUaGUgZ3Vlc3QgY2xpZW50IGNhbiB0aGVuIGV4cG9ydCB0aGF0IHJlc291cmNlL0JPIGFuZCBw YXNzIHRoZSBGRCB0byB0aGUgCmd1ZXN0IHByb3h5LiBUaGUgZ3Vlc3QgcHJveHkgd291bGQgaW1w b3J0IGl0IGFuZCBwdXQgdGhlIHJlc291cmNlX2lkIGluIAp0aGUgZXF1aXZhbGVudCBtZXNzYWdl IGluIG91ciBwcm90b2NvbCBleHRlbnNpb24uCgpRRU1VIHdvdWxkIGdldCB0aGF0IHJlc291cmNl IGlkIGZyb20gdnNvY2ssIGxvb2sgdXAgd2hpY2ggaG9zdG1lbSBkZXZpY2UgCmlzIGFzc29jaWF0 ZWQgd2l0aCB0aGF0IHJlc291cmNlLCBhbmQgcGFzcyBpdHMgRkQgdG8gdGhlIGNvbXBvc2l0b3Iu CgogPiBXZSBhbHNvIG5lZWQgYSBzb2x1dGlvbiBmb3IgdGhlIGtleW1hcCBzaG1lbSBibG9jay4g IEkgZ3Vlc3MgdGhlIGtleW1hcAogPiBkb2Vzbid0IGNoYW5nZSBhbGwgdGhhdCBvZnRlbiwgc28g bWF5YmUgaXQgaXMgZWFzaWVzdCB0byBqdXN0IGNvcHkgaXQKID4gb3ZlciAoaG9zdCBwcm94eSAt PiBndWVzdCBwcm94eSkgaW5zdGVhZCBvZiB0cnlpbmcgdG8gbWFwIHRoZSBob3N0IHNobWVtCiA+ IGludG8gdGhlIGd1ZXN0PwoKTm90IHN1cmUgaWYgdGhhdCB3b3VsZCBiZSBtdWNoIHNpbXBsZXIg dGhhbiBjcmVhdGluZyBhIGl2c2htZW0raG9zdG1lbSAKY29tYm8gdGhhdCB3cmFwcyB0aGUgaW5j b21pbmcgc2htZW0gRkQgYW5kIHRoZW4gaGF2aW5nIHZpcnRpby1ncHUgY3JlYXRlIAphIEJPIHRo YXQgaW1wb3J0cyBpdC4KClJlZ2FyZHMsCgpUb21ldQpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9kcmktZGV2ZWwK