From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Andrushchenko Subject: [PATCH v4 0/9] xen: dma-buf support for grant device Date: Fri, 15 Jun 2018 09:27:44 +0300 Message-ID: <20180615062753.9229-1-andr2000@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-lf0-x243.google.com (mail-lf0-x243.google.com [IPv6:2a00:1450:4010:c07::243]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8AE696E97F for ; Fri, 15 Jun 2018 06:28:03 +0000 (UTC) Received: by mail-lf0-x243.google.com with SMTP id i15-v6so13003258lfc.2 for ; Thu, 14 Jun 2018 23:28:03 -0700 (PDT) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-media@vger.kernel.org, jgross@suse.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com Cc: andr2000@gmail.com, daniel.vetter@intel.com, dongwon.kim@intel.com, Oleksandr Andrushchenko List-Id: dri-devel@lists.freedesktop.org RnJvbTogT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gPG9sZWtzYW5kcl9hbmRydXNoY2hlbmtvQGVw YW0uY29tPgoKVGhpcyB3b3JrIGlzIGluIHJlc3BvbnNlIHRvIG15IHByZXZpb3VzIGF0dGVtcHQg dG8gaW50cm9kdWNlIFhlbi9EUk0KemVyby1jb3B5IGRyaXZlciBbMV0gdG8gZW5hYmxlIExpbnV4 IGRtYS1idWYgQVBJIFsyXSBmb3IgWGVuIGJhc2VkCmZyb250ZW5kcy9iYWNrZW5kcy4gVGhlcmUg aXMgYWxzbyBhbiBleGlzdGluZyBoeXBlcl9kbWFidWYgYXBwcm9hY2gKYXZhaWxhYmxlIFszXSB3 aGljaCwgaWYgcmV3b3JrZWQgdG8gdXRpbGl6ZSB0aGUgcHJvcG9zZWQgc29sdXRpb24sCmNhbiBn cmVhdGx5IGJlbmVmaXQgYXMgd2VsbC4KClJGQyBmb3IgdGhpcyBzZXJpZXMgd2FzIHB1Ymxpc2hl ZCBhbmQgZGlzY3Vzc2VkIFs5XSwgY29tbWVudHMgYWRkcmVzc2VkLgoKVGhlIG9yaWdpbmFsIHJh dGlvbmFsZSBiZWhpbmQgdGhpcyB3b3JrIHdhcyB0byBlbmFibGUgemVyby1jb3B5aW5nCnVzZS1j YXNlcyB3aGlsZSB3b3JraW5nIHdpdGggWGVuIHBhcmEtdmlydHVhbCBkaXNwbGF5IGRyaXZlciBb NF06CndoZW4gdXNpbmcgWGVuIFBWIERSTSBmcm9udGVuZCBkcml2ZXIgdGhlbiBvbiBiYWNrZW5k IHNpZGUgb25lIHdpbGwKbmVlZCB0byBkbyBjb3B5aW5nIG9mIGRpc3BsYXkgYnVmZmVycycgY29u dGVudHMgKGZpbGxlZCBieSB0aGUKZnJvbnRlbmQncyB1c2VyLXNwYWNlKSBpbnRvIGJ1ZmZlcnMg YWxsb2NhdGVkIGF0IHRoZSBiYWNrZW5kIHNpZGUuClRha2luZyBpbnRvIGFjY291bnQgdGhlIHNp emUgb2YgZGlzcGxheSBidWZmZXJzIGFuZCBmcmFtZXMgcGVyCnNlY29uZCBpdCBtYXkgcmVzdWx0 IGluIHVubmVlZGVkIGh1Z2UgZGF0YSBidXMgb2NjdXBhdGlvbiBhbmQKcGVyZm9ybWFuY2UgbG9z cy4KClRoZSBoZWxwZXIgZHJpdmVyIFs0XSBhbGxvd3MgaW1wbGVtZW50aW5nIHplcm8tY29weWlu ZyB1c2UtY2FzZXMKd2hlbiB1c2luZyBYZW4gcGFyYS12aXJ0dWFsaXplZCBmcm9udGVuZCBkaXNw bGF5IGRyaXZlciBieSBpbXBsZW1lbnRpbmcKYSBEUk0vS01TIGhlbHBlciBkcml2ZXIgcnVubmlu ZyBvbiBiYWNrZW5kJ3Mgc2lkZS4KSXQgdXRpbGl6ZXMgUFJJTUUgYnVmZmVycyBBUEkgKGltcGxl bWVudGVkIG9uIHRvcCBvZiBMaW51eCBkbWEtYnVmKQp0byBzaGFyZSBmcm9udGVuZCdzIGJ1ZmZl cnMgd2l0aCBwaHlzaWNhbCBkZXZpY2UgZHJpdmVycyBvbgpiYWNrZW5kJ3Mgc2lkZToKCiAtIGEg ZHVtYiBidWZmZXIgY3JlYXRlZCBvbiBiYWNrZW5kJ3Mgc2lkZSBjYW4gYmUgc2hhcmVkCiAgIHdp dGggdGhlIFhlbiBQViBmcm9udGVuZCBkcml2ZXIsIHNvIGl0IGRpcmVjdGx5IHdyaXRlcwogICBp bnRvIGJhY2tlbmQncyBkb21haW4gbWVtb3J5IChpbnRvIHRoZSBidWZmZXIgZXhwb3J0ZWQgZnJv bQogICBEUk0vS01TIGRyaXZlciBvZiBhIHBoeXNpY2FsIGRpc3BsYXkgZGV2aWNlKQogLSBhIGR1 bWIgYnVmZmVyIGFsbG9jYXRlZCBieSB0aGUgZnJvbnRlbmQgY2FuIGJlIGltcG9ydGVkCiAgIGlu dG8gcGh5c2ljYWwgZGV2aWNlIERSTS9LTVMgZHJpdmVyLCB0aHVzIGFsbG93aW5nIHRvCiAgIGFj aGlldmUgbm8gY29weWluZyBhcyB3ZWxsCgpGaW5hbGx5LCBpdCB3YXMgZGlzY3Vzc2VkIGFuZCBk ZWNpZGVkIChbMV0sIFs1XSkgdGhhdCBpdCBpcyB3b3J0aAppbXBsZW1lbnRpbmcgc3VjaCB1c2Ut Y2FzZXMgdmlhIGV4dGVuc2lvbiBvZiB0aGUgZXhpc3RpbmcgWGVuIGdudGRldgpkcml2ZXIgaW5z dGVhZCBvZiBpbnRyb2R1Y2luZyBuZXcgRFJNIHNwZWNpZmljIGRyaXZlci4KUGxlYXNlIG5vdGUs IHRoYXQgdGhlIHN1cHBvcnQgb2YgZG1hLWJ1ZiBpcyBMaW51eCBvbmx5LAphcyBkbWEtYnVmIGlz IGEgTGludXggb25seSB0aGluZy4KCk5vdyB0byB0aGUgcHJvcG9zZWQgc29sdXRpb24uIFRoZSBj aGFuZ2VzICB0byB0aGUgZXhpc3RpbmcgWGVuIGRyaXZlcnMKaW4gdGhlIExpbnV4IGtlcm5lbCBm YWxsIGludG8gMiBjYXRlZ29yaWVzOgoxLiBETUEtYWJsZSBtZW1vcnkgYnVmZmVyIGFsbG9jYXRp b24gYW5kIGluY3JlYXNpbmcvZGVjcmVhc2luZyBtZW1vcnkKICAgcmVzZXJ2YXRpb24gb2YgdGhl IHBhZ2VzIG9mIHN1Y2ggYSBidWZmZXIuCiAgIFRoaXMgaXMgcmVxdWlyZWQgaWYgd2UgYXJlIGFi b3V0IHRvIHNoYXJlIGRtYS1idWYgd2l0aCB0aGUgaGFyZHdhcmUKICAgdGhhdCBkb2VzIHJlcXVp cmUgdGhvc2UgdG8gYmUgYWxsb2NhdGVkIHdpdGggZG1hX2FsbG9jX3h4eCBBUEkuCiAgIChJdCBp cyBzdGlsbCBwb3NzaWJsZSB0byBhbGxvY2F0ZSBhIGRtYS1idWYgZnJvbSBhbnkgc3lzdGVtIG1l bW9yeSwKICAgZS5nLiBzeXN0ZW0gcGFnZXMpLgoyLiBFeHRlbnNpb24gb2YgdGhlIGdudGRldiBk cml2ZXIgdG8gZW5hYmxlIGl0IHRvIGltcG9ydC9leHBvcnQgZG1hLWJ1ZuKAmXMuCgpUaGUgZmly c3Qgc2l4IHBhdGNoZXMgYXJlIGluIHByZXBhcmF0aW9uIGZvciBYZW4gZG1hLWJ1ZiBzdXBwb3J0 LApidXQgSSBjb25zaWRlciB0aG9zZSB1c2FibGUgcmVnYXJkbGVzcyBvZiB0aGUgZG1hLWJ1ZiB1 c2UtY2FzZSwKZS5nLiBvdGhlciBmcm9udGVuZC9iYWNrZW5kIGtlcm5lbCBtb2R1bGVzIG1heSBh bHNvIGJlbmVmaXQgZnJvbSB0aGVzZQpmb3IgYmV0dGVyIGNvZGUgcmV1c2U6CiAgICAwMDAxLXhl bi1ncmFudC10YWJsZS1FeHBvcnQtZ250dGFiXy1hbGxvYy1mcmVlLV9wYWdlcy1hcy0ucGF0Y2gK ICAgIDAwMDIteGVuLWdyYW50LXRhYmxlLU1ha2Utc2V0LWNsZWFyLXBhZ2UtcHJpdmF0ZS1jb2Rl LXNoYS5wYXRjaAogICAgMDAwMy14ZW4tYmFsbG9vbi1TaGFyZS1jb21tb24tbWVtb3J5LXJlc2Vy dmF0aW9uLXJvdXRpbmVzLnBhdGNoCiAgICAwMDA0LXhlbi1ncmFudC10YWJsZS1BbGxvdy1hbGxv Y2F0aW5nLWJ1ZmZlcnMtc3VpdGFibGUtZm8ucGF0Y2gKICAgIDAwMDUteGVuLWdudGRldi1BbGxv dy1tYXBwaW5ncy1mb3ItRE1BLWJ1ZmZlcnMucGF0Y2gKICAgIDAwMDYteGVuLWdudGRldi1NYWtl LXByaXZhdGUtcm91dGluZXMtc3RydWN0dXJlcy1hY2Nlc3NpYi5wYXRjaAoKVGhlIG5leHQgdGhy ZWUgcGF0Y2hlcyBhcmUgWGVuIGltcGxlbWVudGF0aW9uIG9mIGRtYS1idWYgYXMgcGFydCBvZgp0 aGUgZ3JhbnQgZGV2aWNlOgogICAgMDAwNy14ZW4tZ250ZGV2LUFkZC1pbml0aWFsLXN1cHBvcnQt Zm9yLWRtYS1idWYtVUFQSS5wYXRjaAogICAgMDAwOC14ZW4tZ250ZGV2LUltcGxlbWVudC1kbWEt YnVmLWV4cG9ydC1mdW5jdGlvbmFsaXR5LnBhdGNoCiAgICAwMDA5LXhlbi1nbnRkZXYtSW1wbGVt ZW50LWRtYS1idWYtaW1wb3J0LWZ1bmN0aW9uYWxpdHkucGF0Y2gKClRoZSBjb3JyZXNwb25kaW5n IGxpYnhlbmdudHRhYiBjaGFuZ2VzIGFyZSBhdmFpbGFibGUgYXQgWzZdLgoKQWxsIHRoZSBhYm92 ZSB3YXMgdGVzdGVkIHdpdGggZGlzcGxheSBiYWNrZW5kIFs3XSBhbmQgaXRzIGFjY29tcGFueWlu ZwpoZWxwZXIgbGlicmFyeSBbOF0gb24gUmVuZXNhcyBBUk02NCBiYXNlZCBib2FyZC4KQmFzaWMg YmFsbG9vbiB0ZXN0cyBvbiB4ODYuCgoqVG8gYWxsIHRoZSBjb21tdW5pdGllcyo6IEkgd291bGQg bGlrZSB0byBhc2sgeW91IHRvIHJldmlldyB0aGUgcHJvcG9zZWQKc29sdXRpb24gYW5kIGdpdmUg ZmVlZGJhY2sgb24gaXQsIHNvIEkgY2FuIGltcHJvdmUgYW5kIHNlbmQgZmluYWwKcGF0Y2hlcyBm b3IgcmV2aWV3ICh0aGlzIGlzIHN0aWxsIHdvcmsgaW4gcHJvZ3Jlc3MsIGJ1dCBlbm91Z2ggdG8g c3RhcnQKZGlzY3Vzc2luZyB0aGUgaW1wbGVtZW50YXRpb24pLgoKVGhhbmsgeW91IGluIGFkdmFu Y2UsCk9sZWtzYW5kciBBbmRydXNoY2hlbmtvCgpbMV0gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvYXJjaGl2ZXMvZHJpLWRldmVsLzIwMTgtQXByaWwvMTczMTYzLmh0bWwKWzJdIGh0dHBz Oi8vZWxpeGlyLmJvb3RsaW4uY29tL2xpbnV4L3Y0LjE3LXJjNS9zb3VyY2UvRG9jdW1lbnRhdGlv bi9kcml2ZXItYXBpL2RtYS1idWYucnN0ClszXSBodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3Jn L2FyY2hpdmVzL2h0bWwveGVuLWRldmVsLzIwMTgtMDIvbXNnMDEyMDIuaHRtbApbNF0gaHR0cHM6 Ly9jZ2l0LmZyZWVkZXNrdG9wLm9yZy9kcm0vZHJtLW1pc2MvdHJlZS9kcml2ZXJzL2dwdS9kcm0v eGVuCls1XSBodHRwczovL3BhdGNod29yay5rZXJuZWwub3JnL3BhdGNoLzEwMjc5NjgxLwpbNl0g aHR0cHM6Ly9naXRodWIuY29tL2FuZHIyMDAwL3hlbi90cmVlL3hlbl9kbWFfYnVmX3YxCls3XSBo dHRwczovL2dpdGh1Yi5jb20vYW5kcjIwMDAvZGlzcGxfYmUvdHJlZS94ZW5fZG1hX2J1Zl92MQpb OF0gaHR0cHM6Ly9naXRodWIuY29tL2FuZHIyMDAwL2xpYnhlbmJlL3RyZWUveGVuX2RtYV9idWZf djEKWzldIGh0dHBzOi8vbGttbC5vcmcvbGttbC8yMDE4LzUvMTcvMjE1CgpDaGFuZ2VzIHNpbmNl IHYzOgoqKioqKioqKioqKioqKioqKgotIGFkZGVkIHItYiB0YWdzCi0gbWlub3IgZml4ZXMKLSBy ZW1vdmVkIGdudGRldl9yZW1vdmVfbWFwIGFzIGl0IGNhbiBiZSBjb2RlZCBkaXJlY3RseSBub3cK LSBtb3ZlZCBJT0NUTCBjb2RlIHRvIGdudGRldi1kbWFidWYuYwotIHJlbW92ZWQgdXNsZXNzIHdh aXQgbGlzdCB3YWxrcyBhbmQgY2hhbmdlZCBzb21lIHdhbGtzIHRvIHVzZQogIG5vcm1hbCB2ZXJz aW9uIG9mIGxpc3QgaXRlcmF0b3JzIGluc3RlYWQgb2Ygc2FmZSBvbmVzIGFzCiAgd2UgcnVuIHVu ZGVyIGEgbG9jayBhbnl3YXlzCi0gY2xlYW5lZCB1cCBjb21tZW50cywgZGVzY3JpcHRpb25zLCBw cl9kZWJ1ZyBtZXNzYWdlcwoKQ2hhbmdlcyBzaW5jZSB2MjoKKioqKioqKioqKioqKioqKioKLSBm aXhlZCBtaXNzZWQgYnJlYWsgaW4gZG1hYnVmX2V4cF93YWl0X29ial9zaWduYWwKLSByZS13b3Jr ZWQgZGVidWcgYW5kIGVycm9yIG1lc3NhZ2VzLCBiZSBsZXNzIHZlcmJvc2UKLSByZW1vdmVkIHBh dGNoIGZvciBtYWtpbmcgZ250ZGV2IGZ1bmN0aW9ucyBhdmFpbGFibGUgdG8gb3RoZXIgZHJpdmVy cwotIHJlbW92ZWQgV0FSTl9PTidzIGluIGRtYS1idWYgY29kZQotIG1vdmVkIGFsbCBkbWEtYnVm IHJlbGF0ZWQgY29kZSBpbnRvIGdudGRldi1kbWFidWYKLSBpbnRyb2R1Y2VkIGdudGRldi1jb21t b24uaCB3aXRoIGNvbW1vbiBzdHJ1Y3R1cmVzIGFuZCBmdW5jdGlvbiBwcm90b3R5cGVzCi0gYWRk ZWQgYWRkaXRpb25hbCBjaGVja3MgZm9yIG51bWJlciBvZiBncmFudHMgaW4gSU9DVExzCi0gZ250 dGFiIHBhdGNoIGNsZWFudXAKLSBtYWRlIHhlbm1lbV9yZXNlcnZhdGlvbl9zY3J1Yl9wYWdlIGRl ZmluZWQgaW4gdGhlIGhlYWRlciBhcyBpbmxpbmUKLSBmaXhlZCBfX3Bmbl90b19tZm4gdXNlIHRv IHBmbl90b19iZm4KLSBubyBjaGFuZ2VzIHRvIHBhdGNoZXMgMS0yCgpDaGFuZ2VzIHNpbmNlIHYx OgoqKioqKioqKioqKioqKioqKgotIERlZmluZSBHTlRERVZfRE1BX0ZMQUdfWFhYIHN0YXJ0aW5n IGZyb20gYml0IDAKLSBSZW5hbWUgbWVtX3Jlc2VydmF0aW9uLmggdG8gbWVtLXJlc2VydmF0aW9u LmgKLSBSZW1vdmUgdXNsZXNzIGNvbW1lbnRzCi0gQ2hhbmdlIGxpY2Vuc2VzIGZyb20gR1BMdjIg T1IgTUlUIHRvIEdQTHYyIG9ubHkKLSBNYWtlIHhlbm1lbV9yZXNlcnZhdGlvbl92YV9tYXBwaW5n X3t1cGRhdGV8Y2xlYXJ9IGlubGluZQotIENoYW5nZSBFWFBPUlRfU1lNQk9MIHRvIEVYUE9SVF9T WU1CT0xfR1BMIGZvciBuZXcgZnVuY3Rpb25zCi0gTWFrZSBnbnR0YWJfZG1hX3thbGxvY3xmcmVl fV9wYWdlcyB0byByZXF1ZXN0IGZyYW1lcyBhcnJheQogIGJlIGFsbG9jYXRlZCBvdXRzaWRlCi0g Rml4ZSBnbnR0YWJfZG1hX2FsbG9jX3BhZ2VzIGZhaWwgcGF0aCAoYWRkZWQgeGVubWVtX3Jlc2Vy dmF0aW9uX2luY3JlYXNlKQotIE1vdmUgbW9zdCBvZiBkbWEtYnVmIGZyb20gZ250ZGV2LmMgdG8g Z250ZGV2LWRtYWJ1Zi5jCi0gQWRkIHJlcXVpcmVkIGRlcGVuZGVuY2llcyB0byBLY29uZmlnCi0g UmV3b3JrICIjaWZkZWYgQ09ORklHX1hFTl9YWFgiIGZvciBpZi9lbHNlCi0gRXhwb3J0IGdudHRh Yl97YWxsb2N8ZnJlZX1fcGFnZXMgYXMgR1BMIHN5bWJvbHMgKHBhdGNoIDEpCgpPbGVrc2FuZHIg QW5kcnVzaGNoZW5rbyAoOSk6CiAgeGVuL2dyYW50LXRhYmxlOiBFeHBvcnQgZ250dGFiX3thbGxv Y3xmcmVlfV9wYWdlcyBhcyBHUEwKICB4ZW4vZ3JhbnQtdGFibGU6IE1ha2Ugc2V0L2NsZWFyIHBh Z2UgcHJpdmF0ZSBjb2RlIHNoYXJlZAogIHhlbi9iYWxsb29uOiBTaGFyZSBjb21tb24gbWVtb3J5 IHJlc2VydmF0aW9uIHJvdXRpbmVzCiAgeGVuL2dyYW50LXRhYmxlOiBBbGxvdyBhbGxvY2F0aW5n IGJ1ZmZlcnMgc3VpdGFibGUgZm9yIERNQQogIHhlbi9nbnRkZXY6IEFsbG93IG1hcHBpbmdzIGZv ciBETUEgYnVmZmVycwogIHhlbi9nbnRkZXY6IE1ha2UgcHJpdmF0ZSByb3V0aW5lcy9zdHJ1Y3R1 cmVzIGFjY2Vzc2libGUKICB4ZW4vZ250ZGV2OiBBZGQgaW5pdGlhbCBzdXBwb3J0IGZvciBkbWEt YnVmIFVBUEkKICB4ZW4vZ250ZGV2OiBJbXBsZW1lbnQgZG1hLWJ1ZiBleHBvcnQgZnVuY3Rpb25h bGl0eQogIHhlbi9nbnRkZXY6IEltcGxlbWVudCBkbWEtYnVmIGltcG9ydCBmdW5jdGlvbmFsaXR5 CgogZHJpdmVycy94ZW4vS2NvbmZpZyAgICAgICAgICAgfCAgMjQgKwogZHJpdmVycy94ZW4vTWFr ZWZpbGUgICAgICAgICAgfCAgIDIgKwogZHJpdmVycy94ZW4vYmFsbG9vbi5jICAgICAgICAgfCAg NzUgKy0tCiBkcml2ZXJzL3hlbi9nbnRkZXYtY29tbW9uLmggICB8ICA5NCArKysrCiBkcml2ZXJz L3hlbi9nbnRkZXYtZG1hYnVmLmMgICB8IDg3MCArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrCiBkcml2ZXJzL3hlbi9nbnRkZXYtZG1hYnVmLmggICB8ICAzMyArKwogZHJpdmVycy94 ZW4vZ250ZGV2LmMgICAgICAgICAgfCAyMjAgKysrKysrLS0tCiBkcml2ZXJzL3hlbi9ncmFudC10 YWJsZS5jICAgICB8IDE1MyArKysrKy0KIGRyaXZlcnMveGVuL21lbS1yZXNlcnZhdGlvbi5jIHwg MTE4ICsrKysrCiBpbmNsdWRlL3VhcGkveGVuL2dudGRldi5oICAgICB8IDEwNiArKysrKwogaW5j bHVkZS94ZW4vZ3JhbnRfdGFibGUuaCAgICAgfCAgMjEgKwogaW5jbHVkZS94ZW4vbWVtLXJlc2Vy dmF0aW9uLmggfCAgNTkgKysrCiAxMiBmaWxlcyBjaGFuZ2VkLCAxNjE1IGluc2VydGlvbnMoKyks IDE2MCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL3hlbi9nbnRkZXYt Y29tbW9uLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL3hlbi9nbnRkZXYtZG1hYnVmLmMK IGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL3hlbi9nbnRkZXYtZG1hYnVmLmgKIGNyZWF0ZSBt b2RlIDEwMDY0NCBkcml2ZXJzL3hlbi9tZW0tcmVzZXJ2YXRpb24uYwogY3JlYXRlIG1vZGUgMTAw NjQ0IGluY2x1ZGUveGVuL21lbS1yZXNlcnZhdGlvbi5oCgotLSAKMi4xNy4xCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBs aXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mail-lf0-f67.google.com ([209.85.215.67]:43025 "EHLO mail-lf0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755617AbeFOG2D (ORCPT ); Fri, 15 Jun 2018 02:28:03 -0400 From: Oleksandr Andrushchenko To: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-media@vger.kernel.org, jgross@suse.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com Cc: daniel.vetter@intel.com, andr2000@gmail.com, dongwon.kim@intel.com, matthew.d.roper@intel.com, Oleksandr Andrushchenko Subject: [PATCH v4 0/9] xen: dma-buf support for grant device Date: Fri, 15 Jun 2018 09:27:44 +0300 Message-Id: <20180615062753.9229-1-andr2000@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-media-owner@vger.kernel.org List-ID: From: Oleksandr Andrushchenko This work is in response to my previous attempt to introduce Xen/DRM zero-copy driver [1] to enable Linux dma-buf API [2] for Xen based frontends/backends. There is also an existing hyper_dmabuf approach available [3] which, if reworked to utilize the proposed solution, can greatly benefit as well. RFC for this series was published and discussed [9], comments addressed. The original rationale behind this work was to enable zero-copying use-cases while working with Xen para-virtual display driver [4]: when using Xen PV DRM frontend driver then on backend side one will need to do copying of display buffers' contents (filled by the frontend's user-space) into buffers allocated at the backend side. Taking into account the size of display buffers and frames per second it may result in unneeded huge data bus occupation and performance loss. The helper driver [4] allows implementing zero-copying use-cases when using Xen para-virtualized frontend display driver by implementing a DRM/KMS helper driver running on backend's side. It utilizes PRIME buffers API (implemented on top of Linux dma-buf) to share frontend's buffers with physical device drivers on backend's side: - a dumb buffer created on backend's side can be shared with the Xen PV frontend driver, so it directly writes into backend's domain memory (into the buffer exported from DRM/KMS driver of a physical display device) - a dumb buffer allocated by the frontend can be imported into physical device DRM/KMS driver, thus allowing to achieve no copying as well Finally, it was discussed and decided ([1], [5]) that it is worth implementing such use-cases via extension of the existing Xen gntdev driver instead of introducing new DRM specific driver. Please note, that the support of dma-buf is Linux only, as dma-buf is a Linux only thing. Now to the proposed solution. The changes to the existing Xen drivers in the Linux kernel fall into 2 categories: 1. DMA-able memory buffer allocation and increasing/decreasing memory reservation of the pages of such a buffer. This is required if we are about to share dma-buf with the hardware that does require those to be allocated with dma_alloc_xxx API. (It is still possible to allocate a dma-buf from any system memory, e.g. system pages). 2. Extension of the gntdev driver to enable it to import/export dma-buf’s. The first six patches are in preparation for Xen dma-buf support, but I consider those usable regardless of the dma-buf use-case, e.g. other frontend/backend kernel modules may also benefit from these for better code reuse: 0001-xen-grant-table-Export-gnttab_-alloc-free-_pages-as-.patch 0002-xen-grant-table-Make-set-clear-page-private-code-sha.patch 0003-xen-balloon-Share-common-memory-reservation-routines.patch 0004-xen-grant-table-Allow-allocating-buffers-suitable-fo.patch 0005-xen-gntdev-Allow-mappings-for-DMA-buffers.patch 0006-xen-gntdev-Make-private-routines-structures-accessib.patch The next three patches are Xen implementation of dma-buf as part of the grant device: 0007-xen-gntdev-Add-initial-support-for-dma-buf-UAPI.patch 0008-xen-gntdev-Implement-dma-buf-export-functionality.patch 0009-xen-gntdev-Implement-dma-buf-import-functionality.patch The corresponding libxengnttab changes are available at [6]. All the above was tested with display backend [7] and its accompanying helper library [8] on Renesas ARM64 based board. Basic balloon tests on x86. *To all the communities*: I would like to ask you to review the proposed solution and give feedback on it, so I can improve and send final patches for review (this is still work in progress, but enough to start discussing the implementation). Thank you in advance, Oleksandr Andrushchenko [1] https://lists.freedesktop.org/archives/dri-devel/2018-April/173163.html [2] https://elixir.bootlin.com/linux/v4.17-rc5/source/Documentation/driver-api/dma-buf.rst [3] https://lists.xenproject.org/archives/html/xen-devel/2018-02/msg01202.html [4] https://cgit.freedesktop.org/drm/drm-misc/tree/drivers/gpu/drm/xen [5] https://patchwork.kernel.org/patch/10279681/ [6] https://github.com/andr2000/xen/tree/xen_dma_buf_v1 [7] https://github.com/andr2000/displ_be/tree/xen_dma_buf_v1 [8] https://github.com/andr2000/libxenbe/tree/xen_dma_buf_v1 [9] https://lkml.org/lkml/2018/5/17/215 Changes since v3: ***************** - added r-b tags - minor fixes - removed gntdev_remove_map as it can be coded directly now - moved IOCTL code to gntdev-dmabuf.c - removed usless wait list walks and changed some walks to use normal version of list iterators instead of safe ones as we run under a lock anyways - cleaned up comments, descriptions, pr_debug messages Changes since v2: ***************** - fixed missed break in dmabuf_exp_wait_obj_signal - re-worked debug and error messages, be less verbose - removed patch for making gntdev functions available to other drivers - removed WARN_ON's in dma-buf code - moved all dma-buf related code into gntdev-dmabuf - introduced gntdev-common.h with common structures and function prototypes - added additional checks for number of grants in IOCTLs - gnttab patch cleanup - made xenmem_reservation_scrub_page defined in the header as inline - fixed __pfn_to_mfn use to pfn_to_bfn - no changes to patches 1-2 Changes since v1: ***************** - Define GNTDEV_DMA_FLAG_XXX starting from bit 0 - Rename mem_reservation.h to mem-reservation.h - Remove usless comments - Change licenses from GPLv2 OR MIT to GPLv2 only - Make xenmem_reservation_va_mapping_{update|clear} inline - Change EXPORT_SYMBOL to EXPORT_SYMBOL_GPL for new functions - Make gnttab_dma_{alloc|free}_pages to request frames array be allocated outside - Fixe gnttab_dma_alloc_pages fail path (added xenmem_reservation_increase) - Move most of dma-buf from gntdev.c to gntdev-dmabuf.c - Add required dependencies to Kconfig - Rework "#ifdef CONFIG_XEN_XXX" for if/else - Export gnttab_{alloc|free}_pages as GPL symbols (patch 1) Oleksandr Andrushchenko (9): xen/grant-table: Export gnttab_{alloc|free}_pages as GPL xen/grant-table: Make set/clear page private code shared xen/balloon: Share common memory reservation routines xen/grant-table: Allow allocating buffers suitable for DMA xen/gntdev: Allow mappings for DMA buffers xen/gntdev: Make private routines/structures accessible xen/gntdev: Add initial support for dma-buf UAPI xen/gntdev: Implement dma-buf export functionality xen/gntdev: Implement dma-buf import functionality drivers/xen/Kconfig | 24 + drivers/xen/Makefile | 2 + drivers/xen/balloon.c | 75 +-- drivers/xen/gntdev-common.h | 94 ++++ drivers/xen/gntdev-dmabuf.c | 870 ++++++++++++++++++++++++++++++++++ drivers/xen/gntdev-dmabuf.h | 33 ++ drivers/xen/gntdev.c | 220 ++++++--- drivers/xen/grant-table.c | 153 +++++- drivers/xen/mem-reservation.c | 118 +++++ include/uapi/xen/gntdev.h | 106 +++++ include/xen/grant_table.h | 21 + include/xen/mem-reservation.h | 59 +++ 12 files changed, 1615 insertions(+), 160 deletions(-) create mode 100644 drivers/xen/gntdev-common.h create mode 100644 drivers/xen/gntdev-dmabuf.c create mode 100644 drivers/xen/gntdev-dmabuf.h create mode 100644 drivers/xen/mem-reservation.c create mode 100644 include/xen/mem-reservation.h -- 2.17.1