Received: by 10.192.165.156 with SMTP id m28csp433150imm; Thu, 19 Apr 2018 01:22:18 -0700 (PDT) X-Google-Smtp-Source: AIpwx4+QkbWg0ad8E/YD4BW/NeQpGSVyMUBDgeJjYBYFHOm14L8DYE1CuefdOz7clsvlqeE4XBPd X-Received: by 10.99.138.202 with SMTP id y193mr4379020pgd.224.1524126138050; Thu, 19 Apr 2018 01:22:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1524126138; cv=none; d=google.com; s=arc-20160816; b=YCC64m+7pDbvv8T31asir0mlCZVSUilBr20Rqkgl1olg+9i8aTTKcKNBWsdSJ1j1AX i0l0QkytBNynjGmW+Bi0aoFVqIP2Pznr2FjksctXpHk8jRpm7S9DFQ2aEqLLi8Bk3ebX mP8vXJ8P7BRjHAazvjWmUCLq+fIBQTeRfI1KiJiPmk4lxiKQd01UashjZLFnFpoHPLXb CKkKKD6Bk8zDD8qDESRRf2d1ETc5HyF33/5B0fBOkiDFq/2k9AwQzy2yTVLSRZTu0Sh7 OEHSnnMvN91EYTPQqfR9P/FO6QjiMkj2PGn4xRSea0F0wPQrGgHNlwvqiC0M2AN7pmsI PW8A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-language :content-transfer-encoding:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:dkim-signature :arc-authentication-results; bh=Es9FQ0tXfhZMd3uSOwF29aRkTvjxdtpn4PLL8IbWxGw=; b=Fpny2nTseol9aWx1oP4zki0HBOHGgGVkSZvKlCRAMipquoCJFEferDHlyopdX4Y/9q XaD/LbWPOCZCZLlCMz3+VpKD99yHOZo7RkdV8jdadD71s29cUh/SCzM6ge1yXcmN4ODM LQ2g0/qLMtZt5yzfkqdosxCOFCYbri4B8JTVxGKFlICTK1MsaT13/oQLqKUTanANqQvU eLDK3ytWCYwirJWvhuX74dc6CbCTqaVj1ciAv5yzr+U/ECmyHdi/JBKR7suN/0vT8rv7 4GlbIdJXD2/sOxPreFh2N62P/5ONh+SbMlgxFj+NRBOssWmgbyXgVLsL0MqGTsYB5mMk Z9XA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=Y7CtcjU4; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id az11-v6si2850187plb.81.2018.04.19.01.22.04; Thu, 19 Apr 2018 01:22:18 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=Y7CtcjU4; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752252AbeDSITn (ORCPT + 99 others); Thu, 19 Apr 2018 04:19:43 -0400 Received: from mail-lf0-f65.google.com ([209.85.215.65]:36609 "EHLO mail-lf0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750884AbeDSITl (ORCPT ); Thu, 19 Apr 2018 04:19:41 -0400 Received: by mail-lf0-f65.google.com with SMTP id d20-v6so6499769lfe.3 for ; Thu, 19 Apr 2018 01:19:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding:content-language; bh=Es9FQ0tXfhZMd3uSOwF29aRkTvjxdtpn4PLL8IbWxGw=; b=Y7CtcjU4Sp3kq/GqGe9FMaknkaIH/2Y3PlFVlzJOm9sqRWOp4N03adwtKBy0n9Uuw3 2YRZRlp/fVUOVQQ4DZpfmKVrTrBJxcoXuUnteAQu1WTX6JRtpeOrNy5nLdJgzDuFciui ZypTahxjhCLbHU6ls/3NJk+mzfgGdZEyzdtylohHo21fcugh5Pg7stw8GkDXdLogpgRD vE1PvCIYUESz5zHsMJIRaF1bBnPS8u3ulgnAwMBb1flwXKktLDTm12rJhpR5LR5QhuMI XFcfA7eNIYZQr2MzFE0FBEmjX7xmjAl62HsUwgVO7igRD6u8TBdL9tHmi+HNjxMtD7Li i0zg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=Es9FQ0tXfhZMd3uSOwF29aRkTvjxdtpn4PLL8IbWxGw=; b=rqbKP0v71u7HDkBmH+uYacCzr7jrL8rT8JcXnBpb3Xt8SfUktnmTlAElnRsUtXcVFR oa3WANfIBXW5/Zdm7dOHrf0UM0fYbzdB6sV0DN5gYO5eGF/MUqIs5rbFv3YejUAsj7ic 2dh4znTrxxWxpaP3hHWgi05fAzaKfdMH2CSDn6ahR5qIgTp1a2HMds16V4CYsUmA4btJ yaZqpw0R3MnBzyMX61FVA9Ggwh5fGuEmO1jinmvEOwhfMIlraMVWRpvBBSM5tfFLFZ8E cycan2lTsKd1QS+YL4Wr4rPHB6QYDNRF3Zn+SbyqGsC7q6keMO+RAYR2Cxw4F08SQsOx mWjQ== X-Gm-Message-State: ALQs6tC2N6BL+9x7hADVw4HVl/1IzZAD//9FnioC1Q5OWq+byh9AHxPH J/NoE2QP4/BWtUNanxZjl44= X-Received: by 2002:a19:c1c9:: with SMTP id r192-v6mr3462296lff.108.1524125979987; Thu, 19 Apr 2018 01:19:39 -0700 (PDT) Received: from [10.17.182.9] (ll-74.141.223.85.sovam.net.ua. [85.223.141.74]) by smtp.gmail.com with ESMTPSA id r26-v6sm638179lfd.32.2018.04.19.01.19.38 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 19 Apr 2018 01:19:39 -0700 (PDT) Subject: Re: [Xen-devel] [PATCH 0/1] drm/xen-zcopy: Add Xen zero-copy helper DRM driver To: Dongwon Kim Cc: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= , Paul Durrant , "jgross@suse.com" , Artem Mygaiev , "airlied@linux.ie" , "Oleksandr_Andrushchenko@epam.com" , "linux-kernel@vger.kernel.org" , "dri-devel@lists.freedesktop.org" , "Potrola, MateuszX" , "xen-devel@lists.xenproject.org" , "daniel.vetter@intel.com" , "boris.ostrovsky@oracle.com" , Matt Roper References: <20180417075928.GT31310@phenom.ffwll.local> <20180417205744.GA15930@downor-Z87X-UD5H> <41487acb-a67a-8933-d0c3-702c19b0938e@gmail.com> <20180418073508.ptvntwedczpvl7bx@MacBook-Pro-de-Roger.local> <20180418101058.hyqk3gr3b2ibxswu@MacBook-Pro-de-Roger.local> <7d6710a76b9a42299139d7914358ed52@AMSPEX02CL03.citrite.net> <46489b33-e6fc-b874-6cd4-dbb94c002ef8@gmail.com> <20180418105526.a4qtlhofrn3gubsl@MacBook-Pro-de-Roger.local> <11ec6f16-6eff-6439-2e66-f1ef14cdff21@gmail.com> <20180418160115.GA20588@downor-Z87X-UD5H> From: Oleksandr Andrushchenko Message-ID: Date: Thu, 19 Apr 2018 11:19:38 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 MIME-Version: 1.0 In-Reply-To: <20180418160115.GA20588@downor-Z87X-UD5H> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-US Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 04/18/2018 07:01 PM, Dongwon Kim wrote: > On Wed, Apr 18, 2018 at 03:42:29PM +0300, Oleksandr Andrushchenko wrote: >> On 04/18/2018 01:55 PM, Roger Pau Monné wrote: >>> On Wed, Apr 18, 2018 at 01:39:35PM +0300, Oleksandr Andrushchenko wrote: >>>> On 04/18/2018 01:18 PM, Paul Durrant wrote: >>>>>> -----Original Message----- >>>>>> From: Xen-devel [mailto:xen-devel-bounces@lists.xenproject.org] On Behalf >>>>>> Of Roger Pau Monné >>>>>> Sent: 18 April 2018 11:11 >>>>>> To: Oleksandr Andrushchenko >>>>>> Cc: jgross@suse.com; Artem Mygaiev ; >>>>>> Dongwon Kim ; airlied@linux.ie; >>>>>> Oleksandr_Andrushchenko@epam.com; linux-kernel@vger.kernel.org; dri- >>>>>> devel@lists.freedesktop.org; Potrola, MateuszX >>>>>> ; xen-devel@lists.xenproject.org; >>>>>> daniel.vetter@intel.com; boris.ostrovsky@oracle.com; Matt Roper >>>>>> >>>>>> Subject: Re: [Xen-devel] [PATCH 0/1] drm/xen-zcopy: Add Xen zero-copy >>>>>> helper DRM driver >>>>>> >>>>>> On Wed, Apr 18, 2018 at 11:01:12AM +0300, Oleksandr Andrushchenko >>>>>> wrote: >>>>>>> On 04/18/2018 10:35 AM, Roger Pau Monné wrote: >>>>>> After speaking with Oleksandr on IRC, I think the main usage of the >>>>>> gntdev extension is to: >>>>>> >>>>>> 1. Create a dma-buf from a set of grant references. >>>>>> 2. Share dma-buf and get a list of grant references. >>>>>> >>>>>> I think this set of operations could be broken into: >>>>>> >>>>>> 1.1 Map grant references into user-space using the gntdev. >>>>>> 1.2 Create a dma-buf out of a set of user-space virtual addresses. >>>>>> >>>>>> 2.1 Map a dma-buf into user-space. >>>>>> 2.2 Get grefs out of the user-space addresses where the dma-buf is >>>>>> mapped. >>>>>> >>>>>> So it seems like what's actually missing is a way to: >>>>>> >>>>>> - Create a dma-buf from a list of user-space virtual addresses. >>>>>> - Allow to map a dma-buf into user-space, so it can then be used with >>>>>> the gntdev. >>>>>> >>>>>> I think this is generic enough that it could be implemented by a >>>>>> device not tied to Xen. AFAICT the hyper_dma guys also wanted >>>>>> something similar to this. >>>> Ok, so just to summarize, xen-zcopy/hyper-dmabuf as they are now, >>>> are no go from your POV? > FYI, > > our use-case is "surface sharing" or "graphic obj sharing" where a client > application in one guest renders and export this render target(e.g. EGL surface) > as dma-buf. This dma-buf is then exported to another guest/host via hyper_dmabuf > drv where a compositor is running. This importing domain creates a dmabuf with > shared reference then it is imported as EGL image that later can be used as > texture object via EGL api. > Mapping dmabuf to the userspace or vice versa > might be possible with modifying user space drivers/applications but it is an > unnecessary extra step from our perspective. +1. I also feel like if it is implemented in the kernel space it will be *much* more easier then inventing workarounds with gntdev, user-space and helper dma-buf driver (which obviously can be implemented). Of course, this approach is easier for Xen as we do not touch its kernel code ;) But there is a demand for changes as number of embedded/multimedia use-cases is constantly growing and we have to react. > Also, we want to keep all objects > in the kernel level. > >>> My opinion is that there seems to be a more generic way to implement >>> this, and thus I would prefer that one. >>> >>>> Instead, we have to make all that fancy stuff >>>> with VAs <-> device-X and have that device-X driver live out of drivers/xen >>>> as it is not a Xen specific driver? >>> That would be my preference if feasible, simply because it can be >>> reused by other use-cases that need to create dma-bufs in user-space. >> There is a use-case I have: a display unit on my target has a DMA >> controller which can't do scatter-gather, e.g. it only expects a >> single starting address of the buffer. >> In order to create a dma-buf from grefs in this case >> I allocate memory with dma_alloc_xxx and then balloon pages of the >> buffer and finally map grefs onto this DMA buffer. >> This way I can give this shared buffer to the display unit as its bus >> addresses are contiguous. >> >> With the proposed solution (gntdev + device-X) I won't be able to achieve >> this, >> as I have no control over from where gntdev/balloon drivers get the pages >> (even more, those can easily be out of DMA address space of the display >> unit). >> >> Thus, even if implemented, I can't use this approach. >>> In any case I just knew about dma-bufs this morning, there might be >>> things that I'm missing. >>> >>> Roger.