From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Andrushchenko Subject: [PATCH v6 0/1] drm/xen-front: Add support for Xen PV display frontend Date: Tue, 3 Apr 2018 11:28:32 +0300 Message-ID: <20180403082833.26249-1-andr2000@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wr0-x244.google.com (mail-wr0-x244.google.com [IPv6:2a00:1450:400c:c0c::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id DAC926E080 for ; Tue, 3 Apr 2018 08:28:42 +0000 (UTC) Received: by mail-wr0-x244.google.com with SMTP id d17so2176101wre.1 for ; Tue, 03 Apr 2018 01:28:42 -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, airlied@linux.ie, daniel.vetter@intel.com, seanpaul@chromium.org, gustavo@padovan.org, jgross@suse.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com Cc: andr2000@gmail.com, Oleksandr Andrushchenko List-Id: dri-devel@lists.freedesktop.org RnJvbTogT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gPG9sZWtzYW5kcl9hbmRydXNoY2hlbmtvQGVw YW0uY29tPgoKSGVsbG8hCgpCb3Jpcy9EYW5pZWwsIEkgcHV0IHlvdXIgUi1iIHRhZ3MsIHNvIHBs ZWFzZSBkbyBsZXQgbWUga25vdyBpZiB0aGlzIGlzIG5vdAphY2NlcHRhYmxlLCBzbyBJIHJlbW92 ZSB0aGUgdGFncy4KClRoaXMgcGF0Y2ggc2VyaWVzIGFkZHMgc3VwcG9ydCBmb3IgWGVuIFsxXSBw YXJhLXZpcnR1YWxpemVkCmZyb250ZW5kIGRpc3BsYXkgZHJpdmVyLiBJdCBpbXBsZW1lbnRzIHRo ZSBwcm90b2NvbCBmcm9tCmluY2x1ZGUveGVuL2ludGVyZmFjZS9pby9kaXNwbGlmLmggWzJdLgpB Y2NvbXBhbnlpbmcgYmFja2VuZCBbM10gaXMgaW1wbGVtZW50ZWQgYXMgYSB1c2VyLXNwYWNlIGFw cGxpY2F0aW9uCmFuZCBpdHMgaGVscGVyIGxpYnJhcnkgWzRdLCBjYXBhYmxlIG9mIHJ1bm5pbmcg YXMgYSBXZXN0b24gY2xpZW50Cm9yIERSTSBtYXN0ZXIuCkNvbmZpZ3VyYXRpb24gb2YgYm90aCBi YWNrZW5kIGFuZCBmcm9udGVuZCBpcyBkb25lIHZpYSAKWGVuIGd1ZXN0IGRvbWFpbiBjb25maWd1 cmF0aW9uIG9wdGlvbnMgWzVdLgoKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoqIERyaXZlciBsaW1p dGF0aW9ucwoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAxLiBDb25maWd1cmF0aW9uIG9wdGlvbnMg MS4xIChjb250aWd1b3VzIGRpc3BsYXkgYnVmZmVycykgYW5kIDIgKGJhY2tlbmQKICAgIGFsbG9j YXRlZCBidWZmZXJzKSBiZWxvdyBhcmUgbm90IHN1cHBvcnRlZCBhdCB0aGUgc2FtZSB0aW1lLgoK IDIuIE9ubHkgcHJpbWFyeSBwbGFuZSB3aXRob3V0IGFkZGl0aW9uYWwgcHJvcGVydGllcyBpcyBz dXBwb3J0ZWQuCgogMy4gT25seSBvbmUgdmlkZW8gbW9kZSBzdXBwb3J0ZWQgd2hpY2ggcmVzb2x1 dGlvbiBpcyBjb25maWd1cmVkIHZpYSBYZW5TdG9yZS4KCiA0LiBBbGwgQ1JUQ3Mgb3BlcmF0ZSBh dCBmaXhlZCBmcmVxdWVuY3kgb2YgNjBIei4KCioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKiBEcml2 ZXIgbW9kZXMgb2Ygb3BlcmF0aW9uIGluIHRlcm1zIG9mIGRpc3BsYXkgYnVmZmVycyB1c2VkCioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioKIERlcGVuZGluZyBvbiB0aGUgcmVxdWlyZW1lbnRzIGZvciB0 aGUgcGFyYS12aXJ0dWFsaXplZCBlbnZpcm9ubWVudCwgbmFtZWx5CiByZXF1aXJlbWVudHMgZGlj dGF0ZWQgYnkgdGhlIGFjY29tcGFueWluZyBEUk0vKHYpR1BVIGRyaXZlcnMgcnVubmluZyBpbiBi b3RoCiBob3N0IGFuZCBndWVzdCBlbnZpcm9ubWVudHMsIG51bWJlciBvZiBvcGVyYXRpbmcgbW9k ZXMgb2YgcGFyYS12aXJ0dWFsaXplZAogZGlzcGxheSBkcml2ZXIgYXJlIHN1cHBvcnRlZDoKICAt IGRpc3BsYXkgYnVmZmVycyBjYW4gYmUgYWxsb2NhdGVkIGJ5IGVpdGhlciBmcm9udGVuZCBkcml2 ZXIgb3IgYmFja2VuZAogIC0gZGlzcGxheSBidWZmZXJzIGNhbiBiZSBhbGxvY2F0ZWQgdG8gYmUg Y29udGlndW91cyBpbiBtZW1vcnkgb3Igbm90CgogTm90ZSEgRnJvbnRlbmQgZHJpdmVyIGl0c2Vs ZiBoYXMgbm8gZGVwZW5kZW5jeSBvbiBjb250aWd1b3VzIG1lbW9yeSBmb3IKICAgICAgIGl0cyBv cGVyYXRpb24uCgoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiogMS4gQnVmZmVycyBhbGxvY2F0ZWQg YnkgdGhlIGZyb250ZW5kIGRyaXZlci4KKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoKIFRoZSBiZWxv dyBtb2RlcyBvZiBvcGVyYXRpb24gYXJlIGNvbmZpZ3VyZWQgYXQgY29tcGlsZS10aW1lIHZpYQog ZnJvbnRlbmQgZHJpdmVyJ3Mga2VybmVsIGNvbmZpZ3VyYXRpb24uCgogMS4xLiBGcm9udCBkcml2 ZXIgY29uZmlndXJlZCB0byB1c2UgR0VNIENNQSBoZWxwZXJzCiAgICAgIFRoaXMgdXNlLWNhc2Ug aXMgdXNlZnVsIHdoZW4gdXNlZCB3aXRoIGFjY29tcGFueWluZyBEUk0vdkdQVSBkcml2ZXIgaW4K ICAgICAgZ3Vlc3QgZG9tYWluIHdoaWNoIHdhcyBkZXNpZ25lZCB0byBvbmx5IHdvcmsgd2l0aCBj b250aWd1b3VzIGJ1ZmZlcnMsCiAgICAgIGUuZy4gRFJNIGRyaXZlciBiYXNlZCBvbiBHRU0gQ01B IGhlbHBlcnM6IHN1Y2ggZHJpdmVycyBjYW4gb25seSBpbXBvcnQKICAgICAgY29udGlndW91cyBQ UklNRSBidWZmZXJzLCB0aHVzIHJlcXVpcmluZyBmcm9udGVuZCBkcml2ZXIgdG8gcHJvdmlkZQog ICAgICBzdWNoLiBJbiBvcmRlciB0byBpbXBsZW1lbnQgdGhpcyBtb2RlIG9mIG9wZXJhdGlvbiBw YXJhLXZpcnR1YWxpemVkCiAgICAgIGZyb250ZW5kIGRyaXZlciBjYW4gYmUgY29uZmlndXJlZCB0 byB1c2UgR0VNIENNQSBoZWxwZXJzLgoKIDEuMi4gRnJvbnQgZHJpdmVyIGRvZXNuJ3QgdXNlIEdF TSBDTUEKICAgICAgSWYgYWNjb21wYW55aW5nIGRyaXZlcnMgY2FuIGNvcGUgd2l0aCBub24tY29u dGlndW91cyBtZW1vcnkgdGhlbiwgdG8KICAgICAgbG93ZXIgcHJlc3N1cmUgb24gQ01BIHN1YnN5 c3RlbSBvZiB0aGUga2VybmVsLCBkcml2ZXIgY2FuIGFsbG9jYXRlCiAgICAgIGJ1ZmZlcnMgZnJv bSBzeXN0ZW0gbWVtb3J5LgoKIE5vdGUhIElmIHVzZWQgd2l0aCBhY2NvbXBhbnlpbmcgRFJNLyh2 KUdQVSBkcml2ZXJzIHRoaXMgbW9kZSBvZiBvcGVyYXRpb24KICAgbWF5IHJlcXVpcmUgSU9NTVUg c3VwcG9ydCBvbiB0aGUgcGxhdGZvcm0sIHNvIGFjY29tcGFueWluZyBEUk0vdkdQVQogICBoYXJk d2FyZSBjYW4gc3RpbGwgcmVhY2ggZGlzcGxheSBidWZmZXIgbWVtb3J5IHdoaWxlIGltcG9ydGlu ZyBQUklNRQogICBidWZmZXJzIGZyb20gdGhlIGZyb250ZW5kIGRyaXZlci4KCioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioKKiAyLiBCdWZmZXJzIGFsbG9jYXRlZCBieSB0aGUgYmFja2VuZAoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqCgogVGhpcyBtb2RlIG9mIG9wZXJhdGlvbiBpcyBydW4tdGltZSBjb25m aWd1cmVkIHZpYSBndWVzdCBkb21haW4gY29uZmlndXJhdGlvbgogdGhyb3VnaCBYZW5TdG9yZSBl bnRyaWVzLgoKIEZvciBzeXN0ZW1zIHdoaWNoIGRvIG5vdCBwcm92aWRlIElPTU1VIHN1cHBvcnQs IGJ1dCBoYXZpbmcgc3BlY2lmaWMKIHJlcXVpcmVtZW50cyBmb3IgZGlzcGxheSBidWZmZXJzIGl0 IGlzIHBvc3NpYmxlIHRvIGFsbG9jYXRlIHN1Y2ggYnVmZmVycwogYXQgYmFja2VuZCBzaWRlIGFu ZCBzaGFyZSB0aG9zZSB3aXRoIHRoZSBmcm9udGVuZC4KIEZvciBleGFtcGxlLCBpZiBob3N0IGRv bWFpbiBpcyAxOjEgbWFwcGVkIGFuZCBoYXMgRFJNL0dQVSBoYXJkd2FyZSBleHBlY3RpbmcKIHBo eXNpY2FsbHkgY29udGlndW91cyBtZW1vcnksIHRoaXMgYWxsb3dzIGltcGxlbWVudGluZyB6ZXJv LWNvcHlpbmcKIHVzZS1jYXNlcy4KCgpJIHdvdWxkIGxpa2UgdG8gdGhhbmsgYXQgbGVhc3QsIGJ1 dCBub3QgYXQgbGFzdCB0aGUgZm9sbG93aW5nCnBlb3BsZS9jb21tdW5pdGllcyB3aG8gaGVscGVk IHRoaXMgZHJpdmVyIHRvIGhhcHBlbiA7KQoKMS4gTXkgdGVhbSBhdCBFUEFNIGZvciBjb250aW51 b3VzIHN1cHBvcnQKMi4gWGVuIGNvbW11bml0eSBmb3IgYW5zd2VyaW5nIHRvbnMgb2YgcXVlc3Rp b25zIG9uIGRpZmZlcmVudAptb2RlcyBvZiBvcGVyYXRpb24gb2YgdGhlIGRyaXZlciB3aXRoIHJl c3BlY3QgdG8gdmlydHVhbGl6ZWQKZW52aXJvbm1lbnQuCjMuIFJvYiBDbGFyayBmb3IgIkdFTSBh bGxvY2F0aW9uIGZvciBwYXJhLXZpcnR1YWxpemVkIERSTSBkcml2ZXIiIFs2XQo0LiBNYWFydGVu IExhbmtob3JzdCBmb3IgIkF0b21pYyBkcml2ZXIgYW5kIG9sZCByZW1vdmUgRkIgYmVoYXZpb3Ii IFs3XQo1LiBWaWxsZSBTeXJqw6Rsw6QgZm9yICJRdWVzdGlvbnMgb24gcGFnZSBmbGlwcyBhbmQg YXRvbWljIG1vZGVzZXQiIFs4XQoKQ2hhbmdlcyBzaW5jZSB2NToKKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKgotIGZpeGVkIG1vc3Qgb2Ygc2NyaXB0cy9jaGVja3BhdGNoLnBsIHdhcm5pbmdzCgpDaGFu Z2VzIHNpbmNlIHY0OgoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gdXBkYXRlZCB0aGUgZHJpdmVy IGFmdGVyICJkcm0vc2ltcGxlLWttcy1oZWxwZXI6IFBsdW1iIHBsYW5lIHN0YXRlCiAgdG8gdGhl IGVuYWJsZSBob29rIiBbMTRdCi0gbWFkZSBkaXNwbGF5X21vZGVfdmFsaWQgc3RhdGljCi0gZml4 ZWQgcGFnZSBsZWFrIG9uIGV2ZW50IGNoYW5uZWwgZXJyb3IgcGF0aAotIGNoYW5nZWQgdGl0bGUg b2YgdGhlIGRvY3VtZW50YXRpb24gdG8gbWF0Y2ggdGhlIHJlc3Qgb2YgdGhlIGRyaXZlcnMKLSBy ZW1vdmVkIGZyb20gdGhlIHNlcmllcyB0aGUgcGF0Y2ggZnJvbSBOb3JhbGYgVHLDuG5uZXMgWzEy XSBhcyBpdCB3YXMgc2VudCBvdXQKICBhcyBhIHN0YW5kYWxvbmUgb25lCgpDaGFuZ2VzIHNpbmNl IHYzOgoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gbm8gY2hhbmdlcyB0byBYZW4gcmVsYXRlZCBj b2RlIChzaGFyZWQgYnVmZmVyIGhhbmRsaW5nLCBldmVudCBjaGFubmVscyBldGMuKSwKICBidXQg bWlub3IgY2hhbmdlcyB0byB4ZW5idXNfZHJpdmVyIHN0YXRlIG1hY2hpbmUgZHVlIHRvIHJlLXdv cmtlZCB1bnBsdWcKICBpbXBsZW1lbnRhdGlvbjogYWRkaXRpb25hbCBzdGF0ZSBjaGVja3MgYWRk ZWQKLSByZS13b3JrZWQgZHVtYiBjcmVhdGlvbiBjb2RlIHRvIGZpeCByYWNlIGNvbmRpdGlvbiAo ZHJtX2dlbV9oYW5kbGVfY3JlYXRlKQotIHVzZSBkcm1fZGV2X3tlbnRlcnxleGl0fSB0byBwcm90 ZWN0IGNvZGUgd2hpY2ggbXVzdCBub3QgcnVuIHdoZW4gdW5wbHVnZ2VkCi0gcmUtd29yayB1bnBs dWcgY29kZSB0byBmdWxseSBzdXBwb3J0ICJ6b21iaWUiIERSTSBkZXZpY2VzIG9uIGJhY2tlbmQK ICBkaXNjb25uZWN0Ci0gaW1wbGVtZW50IGEgZGVkaWNhdGVkIHBhZ2UgZmxpcCB0aW1lLW91dCB3 b3JrZXIsIHJlbW92ZSBsb2dpYyBmcm9tIGNvbm5lY3RvcgogIGRldGVjdCBjYWxsYmFjawotIG1v dmUgbW9kZV92YWxpZCBmcm9tIGRybV9jb25uZWN0b3JfaGVscGVyX2Z1bmNzIHRvIGRybV9zaW1w bGVfZGlzcGxheV9waXBlX2Z1bmNzCi0gdXNlIGRybV9nZW1fb2JqZWN0X3B1dF91bmxvY2tlZCBp bnN0ZWFkIG9mIG9ic29sZXRlIGRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlX3VubG9ja2VkCi0g bWlub3IgY2xlYW51cHMKCkNoYW5nZXMgc2luY2UgdjI6CioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK LSBubyBjaGFuZ2VzIHRvIFhlbiByZWxhdGVkIGNvZGUgKHNoYXJlZCBidWZmZXIgaGFuZGxpbmcs IGV2ZW50IGNoYW5uZWxzIGV0Yy4pCi0gcmV3b3JrIERSTSBkcml2ZXIgcmVsZWFzZSB3aXRoIGhv dHBsdWcgKERhbmllbCkKLSBzcXVhc2ggeGVuX2RybV9mcm9udCBhbmQgeGVuX2RybV9mcm9udF9k cnYgYXMgdGhleSBkZXBlbmQgb24gZWFjaAogIG90aGVyIHRvbyBoZWF2aWx5IG5vdwotIHJlbW92 ZSBwbGF0Zm9ybSBkcml2ZXIgYW5kIGluc3RhbnRpYXRlIERSTSBkZXZpY2UKICBmcm9tIHhlbmJ1 cyBkcml2ZXIgZGlyZWN0bHkKLSBoYXZlIHNlcmlhbGl6aW5nIG11dGV4IHBlciBjb25uZWN0b3Is IG5vdCBhIHNpbmdsZSBvbmUsCiAgc28gd2UgZG9uJ3QgaW50cm9kdWNlIGEgYm90dGxlIG5lY2sg Zm9yIG11bHRpcGxlIGNvbm5lY3RvcnMKLSBtaW5vciBjb21tZW50cyBhZGRyZXNzZWQgKERhbmll bCkKCkNoYW5nZXMgc2luY2UgdjE6CioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSB1c2UgU1BEWCBs aWNlbnNlIGlkZW50aWZpZXIsIHNldCBsaWNlbnNlIHRvIEdQTHYyIE9SIE1JVAotIGNoYW5nZWQg bWlkbGF5ZXJzIHRvIGRpcmVjdCBmdW5jdGlvbiBjYWxscywgcmVtb3ZlZDoKICAtIGZyb250X29w cwogIC0gZ2VtX29wcwotIHJlbmFtZWQgeGVuYnVzX2RyaXZlciBjYWxsYmFja3MgdG8gYWxpZ24g d2l0aCBleGlzaXRuZyBQViBkcml2ZXJzCi0gcmUtd29ya2VkIGJhY2tlbmQgZXJyb3IgaGFuZGxp bmcgd2l0aCBjb25uZWN0b3IgaG90cGx1ZyB1ZXZlbnRzCi0gcmVtb3ZlZCB2YmxhbmsgaGFuZGxp bmcgc28gdXNlci1zcGFjZSBkb2Vzbid0IGhhdmUgYW4gaW1wcmVzc2lvbgogIHdlIHJlYWxseSBz dXBwb3J0IHRoYXQKLSBkaXJlY3RseSB1c2UgZnJvbnQncyBtb2RlX3NldCBpbiBkaXNwbGF5IGVu YWJsZS9kaXNhYmxlCi0gcmVtb3ZlZCBCVUdfT04sIGVycm9yIGhhbmRsaW5nIGltcGxlbWVudGVk Ci0gbW92ZWQgZHJpdmVyIGRvY3VtZW50YXRpb24gaW50byBEb2N1bWVudGF0aW9uL2dwdQotIG90 aGVyIGNvbW1lbnRzIGZyb20gWGVuIGNvbW11bml0eSBhZGRyZXNzZWQgKEJvcmlzIGFuZCBKdWVy Z2VuKQotIHNxdWFzaGVkIFhlbiBhbmQgRFJNIHBhdGNoZXMgZm9yIGJldHRlciBpbnRlcnJjb25u ZWN0aW9uIHZpc2liaWxpdHkKLSBmb3IgeW91ciBjb252ZW5pZW5jZSBkcml2ZXIgaXMgYXZhaWxh YmxlIGF0IFsxMV0KClRoYW5rIHlvdSwKT2xla3NhbmRyIEFuZHJ1c2hjaGVua28KClsxXSBodHRw czovL3dpa2kueGVuLm9yZy93aWtpL1BhcmF2aXJ0dWFsaXphdGlvbl8oUFYpI1BWX0lPX0RyaXZl cnMKWzJdIGh0dHBzOi8vZWxpeGlyLmJvb3RsaW4uY29tL2xpbnV4L3Y0LjE2LXJjMi9zb3VyY2Uv aW5jbHVkZS94ZW4vaW50ZXJmYWNlL2lvL2Rpc3BsaWYuaApbM10gaHR0cHM6Ly9naXRodWIuY29t L3hlbi10cm9vcHMvZGlzcGxfYmUKWzRdIGh0dHBzOi8vZ2l0aHViLmNvbS94ZW4tdHJvb3BzL2xp YnhlbmJlCls1XSBodHRwczovL3hlbmJpdHMueGVuLm9yZy9naXR3ZWIvP3A9eGVuLmdpdDthPWJs b2I7Zj1kb2NzL21hbi94bC5jZmcucG9kLjUuaW47aD1hNjk5MzY3Nzc5ZTJhZTEyMTJmZjhmNjM4 ZWZmMDIwNmVjMWExY2M5O2hiPXJlZnMvaGVhZHMvbWFzdGVyI2wxMjU3Cls2XSBodHRwczovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9hcmNoaXZlcy9kcmktZGV2ZWwvMjAxNy1NYXJjaC8xMzYwMzgu aHRtbApbN10gaHR0cHM6Ly93d3cuc3Bpbmljcy5uZXQvbGlzdHMvZHJpLWRldmVsL21zZzE2NDEw Mi5odG1sCls4XSBodHRwczovL3d3dy5zcGluaWNzLm5ldC9saXN0cy9kcmktZGV2ZWwvbXNnMTY0 NDYzLmh0bWwKWzldIGh0dHBzOi8vcGF0Y2h3b3JrLmZyZWVkZXNrdG9wLm9yZy9zZXJpZXMvMzgw NzMvClsxMF0gaHR0cHM6Ly9wYXRjaHdvcmsuZnJlZWRlc2t0b3Aub3JnL3Nlcmllcy8zODEzOS8K WzExXSBodHRwczovL2dpdGh1Yi5jb20vYW5kcjIwMDAvbGludXgvY29tbWl0cy9kcm1fdGlwX3B2 X2RybV92MgpbMTJdIGh0dHBzOi8vcGF0Y2h3b3JrLmZyZWVkZXNrdG9wLm9yZy9wYXRjaC8xNzU3 NzkvClsxM10gaHR0cHM6Ly93d3cuc3Bpbmljcy5uZXQvbGlzdHMvZHJpLWRldmVsL21zZzE3MDQ1 My5odG1sClsxNF0gaHR0cHM6Ly9wYXRjaHdvcmsuZnJlZWRlc2t0b3Aub3JnL3BhdGNoLzIxMjMy MS8KCk9sZWtzYW5kciBBbmRydXNoY2hlbmtvICgxKToKICBkcm0veGVuLWZyb250OiBBZGQgc3Vw cG9ydCBmb3IgWGVuIFBWIGRpc3BsYXkgZnJvbnRlbmQKCiBEb2N1bWVudGF0aW9uL2dwdS9kcml2 ZXJzLnJzdCAgICAgICAgICAgICAgIHwgICAxICsKIERvY3VtZW50YXRpb24vZ3B1L3hlbi1mcm9u dC5yc3QgICAgICAgICAgICAgfCAgNDMgKysKIGRyaXZlcnMvZ3B1L2RybS9LY29uZmlnICAgICAg ICAgICAgICAgICAgICAgfCAgIDIgKwogZHJpdmVycy9ncHUvZHJtL01ha2VmaWxlICAgICAgICAg ICAgICAgICAgICB8ICAgMSArCiBkcml2ZXJzL2dwdS9kcm0veGVuL0tjb25maWcgICAgICAgICAg ICAgICAgIHwgIDMwICsKIGRyaXZlcnMvZ3B1L2RybS94ZW4vTWFrZWZpbGUgICAgICAgICAgICAg ICAgfCAgMTYgKwogZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250LmMgICAgICAgICB8 IDg4MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0veGVuL3hl bl9kcm1fZnJvbnQuaCAgICAgICAgIHwgMTg4ICsrKysrKwogZHJpdmVycy9ncHUvZHJtL3hlbi94 ZW5fZHJtX2Zyb250X2NmZy5jICAgICB8ICA3NyArKysKIGRyaXZlcnMvZ3B1L2RybS94ZW4veGVu X2RybV9mcm9udF9jZmcuaCAgICAgfCAgMzcgKysKIGRyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2Ry bV9mcm9udF9jb25uLmMgICAgfCAxMTUgKysrKwogZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJt X2Zyb250X2Nvbm4uaCAgICB8ICAyNyArCiBkcml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJv bnRfZXZ0Y2hubC5jIHwgMzg2ICsrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5f ZHJtX2Zyb250X2V2dGNobmwuaCB8ICA4MSArKysKIGRyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2Ry bV9mcm9udF9nZW0uYyAgICAgfCAzMTEgKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL3hlbi94 ZW5fZHJtX2Zyb250X2dlbS5oICAgICB8ICA0MSArKwogZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5f ZHJtX2Zyb250X2dlbV9jbWEuYyB8ICA3NyArKysKIGRyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2Ry bV9mcm9udF9rbXMuYyAgICAgfCAzNzAgKysrKysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0veGVu L3hlbl9kcm1fZnJvbnRfa21zLmggICAgIHwgIDI2ICsKIGRyaXZlcnMvZ3B1L2RybS94ZW4veGVu X2RybV9mcm9udF9zaGJ1Zi5jICAgfCA0MzIgKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2Ry bS94ZW4veGVuX2RybV9mcm9udF9zaGJ1Zi5oICAgfCAgNzIgKysrCiAyMSBmaWxlcyBjaGFuZ2Vk LCAzMjE1IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBEb2N1bWVudGF0aW9uL2dw dS94ZW4tZnJvbnQucnN0CiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL3hlbi9L Y29uZmlnCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL3hlbi9NYWtlZmlsZQog Y3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udC5jCiBj cmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250LmgKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnRfY2ZnLmMK IGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnRfY2Zn LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnRf Y29ubi5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zy b250X2Nvbm4uaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2Ry bV9mcm9udF9ldnRjaG5sLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0veGVu L3hlbl9kcm1fZnJvbnRfZXZ0Y2hubC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUv ZHJtL3hlbi94ZW5fZHJtX2Zyb250X2dlbS5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9n cHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250X2dlbS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVy cy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250X2dlbV9jbWEuYwogY3JlYXRlIG1vZGUgMTAwNjQ0 IGRyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udF9rbXMuYwogY3JlYXRlIG1vZGUgMTAw NjQ0IGRyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udF9rbXMuaAogY3JlYXRlIG1vZGUg MTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udF9zaGJ1Zi5jCiBjcmVhdGUg bW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250X3NoYnVmLmgKCi0t IAoyLjE2LjIKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755072AbeDCI2o (ORCPT ); Tue, 3 Apr 2018 04:28:44 -0400 Received: from mail-wr0-f196.google.com ([209.85.128.196]:41869 "EHLO mail-wr0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754891AbeDCI2m (ORCPT ); Tue, 3 Apr 2018 04:28:42 -0400 X-Google-Smtp-Source: AIpwx4+Fs3XUyDI0dv6AbemuxgMnbIFoWZZGe2Cn7saJb7/bBWEVFlG0qad3SjXcRB93FfMKa0WQKQ== From: Oleksandr Andrushchenko To: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, airlied@linux.ie, daniel.vetter@intel.com, seanpaul@chromium.org, gustavo@padovan.org, jgross@suse.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com Cc: andr2000@gmail.com, Oleksandr Andrushchenko Subject: [PATCH v6 0/1] drm/xen-front: Add support for Xen PV display frontend Date: Tue, 3 Apr 2018 11:28:32 +0300 Message-Id: <20180403082833.26249-1-andr2000@gmail.com> X-Mailer: git-send-email 2.16.2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Oleksandr Andrushchenko Hello! Boris/Daniel, I put your R-b tags, so please do let me know if this is not acceptable, so I remove the tags. This patch series adds support for Xen [1] para-virtualized frontend display driver. It implements the protocol from include/xen/interface/io/displif.h [2]. Accompanying backend [3] is implemented as a user-space application and its helper library [4], capable of running as a Weston client or DRM master. Configuration of both backend and frontend is done via Xen guest domain configuration options [5]. ******************************************************************************* * Driver limitations ******************************************************************************* 1. Configuration options 1.1 (contiguous display buffers) and 2 (backend allocated buffers) below are not supported at the same time. 2. Only primary plane without additional properties is supported. 3. Only one video mode supported which resolution is configured via XenStore. 4. All CRTCs operate at fixed frequency of 60Hz. ******************************************************************************* * Driver modes of operation in terms of display buffers used ******************************************************************************* Depending on the requirements for the para-virtualized environment, namely requirements dictated by the accompanying DRM/(v)GPU drivers running in both host and guest environments, number of operating modes of para-virtualized display driver are supported: - display buffers can be allocated by either frontend driver or backend - display buffers can be allocated to be contiguous in memory or not Note! Frontend driver itself has no dependency on contiguous memory for its operation. ******************************************************************************* * 1. Buffers allocated by the frontend driver. ******************************************************************************* The below modes of operation are configured at compile-time via frontend driver's kernel configuration. 1.1. Front driver configured to use GEM CMA helpers This use-case is useful when used with accompanying DRM/vGPU driver in guest domain which was designed to only work with contiguous buffers, e.g. DRM driver based on GEM CMA helpers: such drivers can only import contiguous PRIME buffers, thus requiring frontend driver to provide such. In order to implement this mode of operation para-virtualized frontend driver can be configured to use GEM CMA helpers. 1.2. Front driver doesn't use GEM CMA If accompanying drivers can cope with non-contiguous memory then, to lower pressure on CMA subsystem of the kernel, driver can allocate buffers from system memory. Note! If used with accompanying DRM/(v)GPU drivers this mode of operation may require IOMMU support on the platform, so accompanying DRM/vGPU hardware can still reach display buffer memory while importing PRIME buffers from the frontend driver. ******************************************************************************* * 2. Buffers allocated by the backend ******************************************************************************* This mode of operation is run-time configured via guest domain configuration through XenStore entries. For systems which do not provide IOMMU support, but having specific requirements for display buffers it is possible to allocate such buffers at backend side and share those with the frontend. For example, if host domain is 1:1 mapped and has DRM/GPU hardware expecting physically contiguous memory, this allows implementing zero-copying use-cases. I would like to thank at least, but not at last the following people/communities who helped this driver to happen ;) 1. My team at EPAM for continuous support 2. Xen community for answering tons of questions on different modes of operation of the driver with respect to virtualized environment. 3. Rob Clark for "GEM allocation for para-virtualized DRM driver" [6] 4. Maarten Lankhorst for "Atomic driver and old remove FB behavior" [7] 5. Ville Syrjälä for "Questions on page flips and atomic modeset" [8] Changes since v5: ******************************************************************************* - fixed most of scripts/checkpatch.pl warnings Changes since v4: ******************************************************************************* - updated the driver after "drm/simple-kms-helper: Plumb plane state to the enable hook" [14] - made display_mode_valid static - fixed page leak on event channel error path - changed title of the documentation to match the rest of the drivers - removed from the series the patch from Noralf Trønnes [12] as it was sent out as a standalone one Changes since v3: ******************************************************************************* - no changes to Xen related code (shared buffer handling, event channels etc.), but minor changes to xenbus_driver state machine due to re-worked unplug implementation: additional state checks added - re-worked dumb creation code to fix race condition (drm_gem_handle_create) - use drm_dev_{enter|exit} to protect code which must not run when unplugged - re-work unplug code to fully support "zombie" DRM devices on backend disconnect - implement a dedicated page flip time-out worker, remove logic from connector detect callback - move mode_valid from drm_connector_helper_funcs to drm_simple_display_pipe_funcs - use drm_gem_object_put_unlocked instead of obsolete drm_gem_object_unreference_unlocked - minor cleanups Changes since v2: ******************************************************************************* - no changes to Xen related code (shared buffer handling, event channels etc.) - rework DRM driver release with hotplug (Daniel) - squash xen_drm_front and xen_drm_front_drv as they depend on each other too heavily now - remove platform driver and instantiate DRM device from xenbus driver directly - have serializing mutex per connector, not a single one, so we don't introduce a bottle neck for multiple connectors - minor comments addressed (Daniel) Changes since v1: ******************************************************************************* - use SPDX license identifier, set license to GPLv2 OR MIT - changed midlayers to direct function calls, removed: - front_ops - gem_ops - renamed xenbus_driver callbacks to align with exisitng PV drivers - re-worked backend error handling with connector hotplug uevents - removed vblank handling so user-space doesn't have an impression we really support that - directly use front's mode_set in display enable/disable - removed BUG_ON, error handling implemented - moved driver documentation into Documentation/gpu - other comments from Xen community addressed (Boris and Juergen) - squashed Xen and DRM patches for better interrconnection visibility - for your convenience driver is available at [11] Thank you, Oleksandr Andrushchenko [1] https://wiki.xen.org/wiki/Paravirtualization_(PV)#PV_IO_Drivers [2] https://elixir.bootlin.com/linux/v4.16-rc2/source/include/xen/interface/io/displif.h [3] https://github.com/xen-troops/displ_be [4] https://github.com/xen-troops/libxenbe [5] https://xenbits.xen.org/gitweb/?p=xen.git;a=blob;f=docs/man/xl.cfg.pod.5.in;h=a699367779e2ae1212ff8f638eff0206ec1a1cc9;hb=refs/heads/master#l1257 [6] https://lists.freedesktop.org/archives/dri-devel/2017-March/136038.html [7] https://www.spinics.net/lists/dri-devel/msg164102.html [8] https://www.spinics.net/lists/dri-devel/msg164463.html [9] https://patchwork.freedesktop.org/series/38073/ [10] https://patchwork.freedesktop.org/series/38139/ [11] https://github.com/andr2000/linux/commits/drm_tip_pv_drm_v2 [12] https://patchwork.freedesktop.org/patch/175779/ [13] https://www.spinics.net/lists/dri-devel/msg170453.html [14] https://patchwork.freedesktop.org/patch/212321/ Oleksandr Andrushchenko (1): drm/xen-front: Add support for Xen PV display frontend Documentation/gpu/drivers.rst | 1 + Documentation/gpu/xen-front.rst | 43 ++ drivers/gpu/drm/Kconfig | 2 + drivers/gpu/drm/Makefile | 1 + drivers/gpu/drm/xen/Kconfig | 30 + drivers/gpu/drm/xen/Makefile | 16 + drivers/gpu/drm/xen/xen_drm_front.c | 882 ++++++++++++++++++++++++++++ drivers/gpu/drm/xen/xen_drm_front.h | 188 ++++++ drivers/gpu/drm/xen/xen_drm_front_cfg.c | 77 +++ drivers/gpu/drm/xen/xen_drm_front_cfg.h | 37 ++ drivers/gpu/drm/xen/xen_drm_front_conn.c | 115 ++++ drivers/gpu/drm/xen/xen_drm_front_conn.h | 27 + drivers/gpu/drm/xen/xen_drm_front_evtchnl.c | 386 ++++++++++++ drivers/gpu/drm/xen/xen_drm_front_evtchnl.h | 81 +++ drivers/gpu/drm/xen/xen_drm_front_gem.c | 311 ++++++++++ drivers/gpu/drm/xen/xen_drm_front_gem.h | 41 ++ drivers/gpu/drm/xen/xen_drm_front_gem_cma.c | 77 +++ drivers/gpu/drm/xen/xen_drm_front_kms.c | 370 ++++++++++++ drivers/gpu/drm/xen/xen_drm_front_kms.h | 26 + drivers/gpu/drm/xen/xen_drm_front_shbuf.c | 432 ++++++++++++++ drivers/gpu/drm/xen/xen_drm_front_shbuf.h | 72 +++ 21 files changed, 3215 insertions(+) create mode 100644 Documentation/gpu/xen-front.rst create mode 100644 drivers/gpu/drm/xen/Kconfig create mode 100644 drivers/gpu/drm/xen/Makefile create mode 100644 drivers/gpu/drm/xen/xen_drm_front.c create mode 100644 drivers/gpu/drm/xen/xen_drm_front.h create mode 100644 drivers/gpu/drm/xen/xen_drm_front_cfg.c create mode 100644 drivers/gpu/drm/xen/xen_drm_front_cfg.h create mode 100644 drivers/gpu/drm/xen/xen_drm_front_conn.c create mode 100644 drivers/gpu/drm/xen/xen_drm_front_conn.h create mode 100644 drivers/gpu/drm/xen/xen_drm_front_evtchnl.c create mode 100644 drivers/gpu/drm/xen/xen_drm_front_evtchnl.h create mode 100644 drivers/gpu/drm/xen/xen_drm_front_gem.c create mode 100644 drivers/gpu/drm/xen/xen_drm_front_gem.h create mode 100644 drivers/gpu/drm/xen/xen_drm_front_gem_cma.c create mode 100644 drivers/gpu/drm/xen/xen_drm_front_kms.c create mode 100644 drivers/gpu/drm/xen/xen_drm_front_kms.h create mode 100644 drivers/gpu/drm/xen/xen_drm_front_shbuf.c create mode 100644 drivers/gpu/drm/xen/xen_drm_front_shbuf.h -- 2.16.2