From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_PASS,UNPARSEABLE_RELAY,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E5DB6C43381 for ; Mon, 18 Mar 2019 12:47:39 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 9F8D920811 for ; Mon, 18 Mar 2019 12:47:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727529AbfCRMrh (ORCPT ); Mon, 18 Mar 2019 08:47:37 -0400 Received: from bhuna.collabora.co.uk ([46.235.227.227]:59444 "EHLO bhuna.collabora.co.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725973AbfCRMrg (ORCPT ); Mon, 18 Mar 2019 08:47:36 -0400 Received: from [127.0.0.1] (localhost [127.0.0.1]) (Authenticated sender: tomeu) with ESMTPSA id 9EE34268B3F Subject: Re: [PATCH v3 1/2] drm/virtio: Add window server support From: Tomeu Vizoso 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 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> Message-ID: Date: Mon, 18 Mar 2019 13:47:31 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.5.0 MIME-Version: 1.0 In-Reply-To: <49785e0d-936a-c3b4-62dd-aafc7083a942@collabora.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org [Tomasz wants to comment, adding him to CC] On 2/5/18 9:19 AM, Tomeu Vizoso wrote: > On 1 February 2018 at 17:36, Gerd Hoffmann wrote: >> Hi, >> >> Sorry for joining the party late. Had a broken finger and was >> offline for a bunch of weeks (and a buif backlog afterwards ...). > > Hi, no problem, hope it's fine now. > >>> This is to allow clients running within VMs to be able to >>> communicate with a compositor in the host. Clients will use the >>> communication protocol that the compositor supports, and virtio-gpu >>> will assist with making buffers available in both sides, and >>> copying content as needed. >> >> Why not use virtio-vsock to run the wayland protocol? I don't like >> the idea to duplicate something with very simliar functionality in >> virtio-gpu. > > The reason for abandoning that approach was the type of objects that > could be shared via virtio-vsock would be extremely limited. Besides > that being potentially confusing to users, it would mean from the > implementation side that either virtio-vsock would gain a dependency on > the drm subsystem, or an appropriate abstraction for shareable buffers > would need to be added for little gain. > > Another factor that was taken into account was that the complexity > required for implementing passing protocol data around was very small > when compared with the buffer sharing mechanism. > >>> It is expected that a service in the guest will act as a proxy, >>> interacting with virtio-gpu to support unmodified clients. >> >> If you have a guest proxy anyway using virtio-sock for the protocol >> stream and virtio-gpu for buffer sharing (and some day 3d rendering >> too) should work fine I think. > > If I understand correctly your proposal, virtio-gpu would be used for > creating buffers that could be shared across domains, but something > equivalent to SCM_RIGHTS would still be needed in virtio-vsock? > > If so, that's what was planned initially, with the concern being that we > would be adding a bunch of complexity to virtio-vsock that would be only > used in this specific use case. Then we would also need to figure out > how virtio-vsock would be able to work with buffers from virtio-gpu > (either direct dependency or a new abstraction). > > If the mechanics of passing presentation data were very complex, I think > this approach would have more merit. But as you can see from the code, > it isn't that bad. > >>> When the client notifies the compositor that it can read from that > buffer, >>> the proxy should copy the contents from the SHM region to the >>> virtio-gpu resource and call DRM_VIRTGPU_TRANSFER_TO_HOST. >> >> What is the plan for the host side? I see basically two options. Either >> implement the host wayland proxy directly in qemu. Or >> implement it as separate process, which then needs some help from >> qemu to get access to the buffers. The later would allow qemu running >> independant from the desktop session. > > Regarding synchronizing buffers, this will stop becoming needed in > subsequent commits as all shared memory is allocated in the host and > mapped to the guest via KVM_SET_USER_MEMORY_REGION. > > This is already the case for buffers passed from the compositor to the > clients (see patch 2/2), and I'm working on the equivalent for buffers > from the guest to the host (clients still have to create buffers with > DRM_VIRTGPU_RESOURCE_CREATE but they will be only backend by host memory > so no calls to DRM_VIRTGPU_TRANSFER_TO_HOST are needed). > > But in the case that we still need a proxy for some reason on the host > side, I think it would be better to have it in the same process where > virtio-gpu is implemented. In crosvm's case it would be in a process > separate from the main VMM, as device processes are isolated from each > other with minijail (see > https://chromium.googlesource.com/chromiumos/platform/crosvm/ ). > > 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: Mon, 18 Mar 2019 13:47:31 +0100 Message-ID: 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> 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 4F28089248 for ; Mon, 18 Mar 2019 12:47:36 +0000 (UTC) In-Reply-To: <49785e0d-936a-c3b4-62dd-aafc7083a942@collabora.com> 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 , 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 W1RvbWFzeiB3YW50cyB0byBjb21tZW50LCBhZGRpbmcgaGltIHRvIENDXQoKT24gMi81LzE4IDk6 MTkgQU0sIFRvbWV1IFZpem9zbyB3cm90ZToKPiBPbiAxIEZlYnJ1YXJ5IDIwMTggYXQgMTc6MzYs IEdlcmQgSG9mZm1hbm4gPGtyYXhlbEByZWRoYXQuY29tPiB3cm90ZToKPj4gSGksCj4+Cj4+IFNv cnJ5IGZvciBqb2luaW5nIHRoZSBwYXJ0eSBsYXRlLiBIYWQgYSBicm9rZW4gZmluZ2VyIGFuZCB3 YXMKPj4gb2ZmbGluZSBmb3IgYSBidW5jaCBvZiB3ZWVrcyAoYW5kIGEgYnVpZiBiYWNrbG9nIGFm dGVyd2FyZHMgLi4uKS4KPiAKPiBIaSwgbm8gcHJvYmxlbSwgaG9wZSBpdCdzIGZpbmUgbm93Lgo+ IAo+Pj4gVGhpcyBpcyB0byBhbGxvdyBjbGllbnRzIHJ1bm5pbmcgd2l0aGluIFZNcyB0byBiZSBh YmxlIHRvCj4+PiBjb21tdW5pY2F0ZSB3aXRoIGEgY29tcG9zaXRvciBpbiB0aGUgaG9zdC4gQ2xp ZW50cyB3aWxsIHVzZSB0aGUKPj4+IGNvbW11bmljYXRpb24gcHJvdG9jb2wgdGhhdCB0aGUgY29t cG9zaXRvciBzdXBwb3J0cywgYW5kIHZpcnRpby1ncHUKPj4+IHdpbGwgYXNzaXN0IHdpdGggbWFr aW5nIGJ1ZmZlcnMgYXZhaWxhYmxlIGluIGJvdGggc2lkZXMsIGFuZAo+Pj4gY29weWluZyBjb250 ZW50IGFzIG5lZWRlZC4KPj4KPj4gV2h5IG5vdCB1c2UgdmlydGlvLXZzb2NrIHRvIHJ1biB0aGUg d2F5bGFuZCBwcm90b2NvbD8gSSBkb24ndCBsaWtlCj4+IHRoZSBpZGVhIHRvIGR1cGxpY2F0ZSBz b21ldGhpbmcgd2l0aCB2ZXJ5IHNpbWxpYXIgZnVuY3Rpb25hbGl0eSBpbiAKPj4gdmlydGlvLWdw dS4KPiAKPiBUaGUgcmVhc29uIGZvciBhYmFuZG9uaW5nIHRoYXQgYXBwcm9hY2ggd2FzIHRoZSB0 eXBlIG9mIG9iamVjdHMgdGhhdAo+IGNvdWxkIGJlIHNoYXJlZCB2aWEgdmlydGlvLXZzb2NrIHdv dWxkIGJlIGV4dHJlbWVseSBsaW1pdGVkLiBCZXNpZGVzCj4gdGhhdCBiZWluZyBwb3RlbnRpYWxs eSBjb25mdXNpbmcgdG8gdXNlcnMsIGl0IHdvdWxkIG1lYW4gZnJvbSB0aGUKPiBpbXBsZW1lbnRh dGlvbiBzaWRlIHRoYXQgZWl0aGVyIHZpcnRpby12c29jayB3b3VsZCBnYWluIGEgZGVwZW5kZW5j eSBvbgo+IHRoZSBkcm0gc3Vic3lzdGVtLCBvciBhbiBhcHByb3ByaWF0ZSBhYnN0cmFjdGlvbiBm b3Igc2hhcmVhYmxlIGJ1ZmZlcnMKPiB3b3VsZCBuZWVkIHRvIGJlIGFkZGVkIGZvciBsaXR0bGUg Z2Fpbi4KPiAKPiBBbm90aGVyIGZhY3RvciB0aGF0IHdhcyB0YWtlbiBpbnRvIGFjY291bnQgd2Fz IHRoYXQgdGhlIGNvbXBsZXhpdHkKPiByZXF1aXJlZCBmb3IgaW1wbGVtZW50aW5nIHBhc3Npbmcg cHJvdG9jb2wgZGF0YSBhcm91bmQgd2FzIHZlcnkgc21hbGwKPiB3aGVuIGNvbXBhcmVkIHdpdGgg dGhlIGJ1ZmZlciBzaGFyaW5nIG1lY2hhbmlzbS4KPiAKPj4+IEl0IGlzIGV4cGVjdGVkIHRoYXQg YSBzZXJ2aWNlIGluIHRoZSBndWVzdCB3aWxsIGFjdCBhcyBhIHByb3h5LCAKPj4+IGludGVyYWN0 aW5nIHdpdGggdmlydGlvLWdwdSB0byBzdXBwb3J0IHVubW9kaWZpZWQgY2xpZW50cy4KPj4KPj4g SWYgeW91IGhhdmUgYSBndWVzdCBwcm94eSBhbnl3YXkgdXNpbmcgdmlydGlvLXNvY2sgZm9yIHRo ZSBwcm90b2NvbCAKPj4gc3RyZWFtIGFuZCB2aXJ0aW8tZ3B1IGZvciBidWZmZXIgc2hhcmluZyAo YW5kIHNvbWUgZGF5IDNkIHJlbmRlcmluZwo+PiB0b28pIHNob3VsZCB3b3JrIGZpbmUgSSB0aGlu ay4KPiAKPiBJZiBJIHVuZGVyc3RhbmQgY29ycmVjdGx5IHlvdXIgcHJvcG9zYWwsIHZpcnRpby1n cHUgd291bGQgYmUgdXNlZCBmb3IKPiBjcmVhdGluZyBidWZmZXJzIHRoYXQgY291bGQgYmUgc2hh cmVkIGFjcm9zcyBkb21haW5zLCBidXQgc29tZXRoaW5nCj4gZXF1aXZhbGVudCB0byBTQ01fUklH SFRTIHdvdWxkIHN0aWxsIGJlIG5lZWRlZCBpbiB2aXJ0aW8tdnNvY2s/Cj4gCj4gSWYgc28sIHRo YXQncyB3aGF0IHdhcyBwbGFubmVkIGluaXRpYWxseSwgd2l0aCB0aGUgY29uY2VybiBiZWluZyB0 aGF0IHdlCj4gd291bGQgYmUgYWRkaW5nIGEgYnVuY2ggb2YgY29tcGxleGl0eSB0byB2aXJ0aW8t dnNvY2sgdGhhdCB3b3VsZCBiZSBvbmx5Cj4gdXNlZCBpbiB0aGlzIHNwZWNpZmljIHVzZSBjYXNl LiBUaGVuIHdlIHdvdWxkIGFsc28gbmVlZCB0byBmaWd1cmUgb3V0Cj4gaG93IHZpcnRpby12c29j ayB3b3VsZCBiZSBhYmxlIHRvIHdvcmsgd2l0aCBidWZmZXJzIGZyb20gdmlydGlvLWdwdQo+IChl aXRoZXIgZGlyZWN0IGRlcGVuZGVuY3kgb3IgYSBuZXcgYWJzdHJhY3Rpb24pLgo+IAo+IElmIHRo ZSBtZWNoYW5pY3Mgb2YgcGFzc2luZyBwcmVzZW50YXRpb24gZGF0YSB3ZXJlIHZlcnkgY29tcGxl eCwgSSB0aGluawo+IHRoaXMgYXBwcm9hY2ggd291bGQgaGF2ZSBtb3JlIG1lcml0LiBCdXQgYXMg eW91IGNhbiBzZWUgZnJvbSB0aGUgY29kZSwKPiBpdCBpc24ndCB0aGF0IGJhZC4KPiAKPj4+IFdo ZW4gdGhlIGNsaWVudCBub3RpZmllcyB0aGUgY29tcG9zaXRvciB0aGF0IGl0IGNhbiByZWFkIGZy b20gdGhhdAo+IGJ1ZmZlciwKPj4+IHRoZSBwcm94eSBzaG91bGQgY29weSB0aGUgY29udGVudHMg ZnJvbSB0aGUgU0hNIHJlZ2lvbiB0byB0aGUKPj4+IHZpcnRpby1ncHUgcmVzb3VyY2UgYW5kIGNh bGwgRFJNX1ZJUlRHUFVfVFJBTlNGRVJfVE9fSE9TVC4KPj4KPj4gV2hhdCBpcyB0aGUgcGxhbiBm b3IgdGhlIGhvc3Qgc2lkZT8gSSBzZWUgYmFzaWNhbGx5IHR3byBvcHRpb25zLiBFaXRoZXIgCj4+ IGltcGxlbWVudCB0aGUgaG9zdCB3YXlsYW5kIHByb3h5IGRpcmVjdGx5IGluIHFlbXUuIE9yCj4+ IGltcGxlbWVudCBpdCBhcyBzZXBhcmF0ZSBwcm9jZXNzLCB3aGljaCB0aGVuIG5lZWRzIHNvbWUg aGVscCBmcm9tCj4+IHFlbXUgdG8gZ2V0IGFjY2VzcyB0byB0aGUgYnVmZmVycy4gVGhlIGxhdGVy IHdvdWxkIGFsbG93IHFlbXUgcnVubmluZwo+PiBpbmRlcGVuZGFudCBmcm9tIHRoZSBkZXNrdG9w IHNlc3Npb24uCj4gCj4gUmVnYXJkaW5nIHN5bmNocm9uaXppbmcgYnVmZmVycywgdGhpcyB3aWxs IHN0b3AgYmVjb21pbmcgbmVlZGVkIGluCj4gc3Vic2VxdWVudCBjb21taXRzIGFzIGFsbCBzaGFy ZWQgbWVtb3J5IGlzIGFsbG9jYXRlZCBpbiB0aGUgaG9zdCBhbmQKPiBtYXBwZWQgdG8gdGhlIGd1 ZXN0IHZpYSBLVk1fU0VUX1VTRVJfTUVNT1JZX1JFR0lPTi4KPiAKPiBUaGlzIGlzIGFscmVhZHkg dGhlIGNhc2UgZm9yIGJ1ZmZlcnMgcGFzc2VkIGZyb20gdGhlIGNvbXBvc2l0b3IgdG8gdGhlCj4g Y2xpZW50cyAoc2VlIHBhdGNoIDIvMiksIGFuZCBJJ20gd29ya2luZyBvbiB0aGUgZXF1aXZhbGVu dCBmb3IgYnVmZmVycwo+IGZyb20gdGhlIGd1ZXN0IHRvIHRoZSBob3N0IChjbGllbnRzIHN0aWxs IGhhdmUgdG8gY3JlYXRlIGJ1ZmZlcnMgd2l0aAo+IERSTV9WSVJUR1BVX1JFU09VUkNFX0NSRUFU RSBidXQgdGhleSB3aWxsIGJlIG9ubHkgYmFja2VuZCBieSBob3N0IG1lbW9yeQo+IHNvIG5vIGNh bGxzIHRvIERSTV9WSVJUR1BVX1RSQU5TRkVSX1RPX0hPU1QgYXJlIG5lZWRlZCkuCj4gCj4gQnV0 IGluIHRoZSBjYXNlIHRoYXQgd2Ugc3RpbGwgbmVlZCBhIHByb3h5IGZvciBzb21lIHJlYXNvbiBv biB0aGUgaG9zdAo+IHNpZGUsIEkgdGhpbmsgaXQgd291bGQgYmUgYmV0dGVyIHRvIGhhdmUgaXQg aW4gdGhlIHNhbWUgcHJvY2VzcyB3aGVyZQo+IHZpcnRpby1ncHUgaXMgaW1wbGVtZW50ZWQuIElu IGNyb3N2bSdzIGNhc2UgaXQgd291bGQgYmUgaW4gYSBwcm9jZXNzCj4gc2VwYXJhdGUgZnJvbSB0 aGUgbWFpbiBWTU0sIGFzIGRldmljZSBwcm9jZXNzZXMgYXJlIGlzb2xhdGVkIGZyb20gZWFjaAo+ IG90aGVyIHdpdGggbWluaWphaWwgKHNlZQo+IGh0dHBzOi8vY2hyb21pdW0uZ29vZ2xlc291cmNl LmNvbS9jaHJvbWl1bW9zL3BsYXRmb3JtL2Nyb3N2bS8gKS4KPiAKPiBSZWdhcmRzLAo+IAo+IFRv bWV1Cj4gCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRy aS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA==