From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Andrushchenko Subject: [PATCH v5 0/1] drm/xen-front: Add support for Xen PV display frontend Date: Thu, 29 Mar 2018 12:22:46 +0300 Message-ID: <20180329092247.23905-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-x241.google.com (mail-lf0-x241.google.com [IPv6:2a00:1450:4010:c07::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id 841F089DA7 for ; Thu, 29 Mar 2018 09:22:57 +0000 (UTC) Received: by mail-lf0-x241.google.com with SMTP id q5-v6so7422116lff.12 for ; Thu, 29 Mar 2018 02:22:57 -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 YXRvbWljIG1vZGVzZXQiIFs4XQoKQ2hhbmdlcyBzaW5jZSB2NDoKKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKgotIHVwZGF0ZWQgdGhlIGRyaXZlciBhZnRlciAiZHJtL3NpbXBsZS1rbXMtaGVscGVyOiBQ bHVtYiBwbGFuZSBzdGF0ZQogIHRvIHRoZSBlbmFibGUgaG9vayIgWzE0XQotIG1hZGUgZGlzcGxh eV9tb2RlX3ZhbGlkIHN0YXRpYwotIGZpeGVkIHBhZ2UgbGVhayBvbiBldmVudCBjaGFubmVsIGVy cm9yIHBhdGgKLSBjaGFuZ2VkIHRpdGxlIG9mIHRoZSBkb2N1bWVudGF0aW9uIHRvIG1hdGNoIHRo ZSByZXN0IG9mIHRoZSBkcml2ZXJzCi0gcmVtb3ZlZCBmcm9tIHRoZSBzZXJpZXMgdGhlIHBhdGNo IGZyb20gTm9yYWxmIFRyw7hubmVzIFsxMl0gYXMgaXQgd2FzIHNlbnQgb3V0CiAgYXMgYSBzdGFu ZGFsb25lIG9uZQoKQ2hhbmdlcyBzaW5jZSB2MzoKKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotIG5v IGNoYW5nZXMgdG8gWGVuIHJlbGF0ZWQgY29kZSAoc2hhcmVkIGJ1ZmZlciBoYW5kbGluZywgZXZl bnQgY2hhbm5lbHMgZXRjLiksCiAgYnV0IG1pbm9yIGNoYW5nZXMgdG8geGVuYnVzX2RyaXZlciBz dGF0ZSBtYWNoaW5lIGR1ZSB0byByZS13b3JrZWQgdW5wbHVnCiAgaW1wbGVtZW50YXRpb246IGFk ZGl0aW9uYWwgc3RhdGUgY2hlY2tzIGFkZGVkCi0gcmUtd29ya2VkIGR1bWIgY3JlYXRpb24gY29k ZSB0byBmaXggcmFjZSBjb25kaXRpb24gKGRybV9nZW1faGFuZGxlX2NyZWF0ZSkKLSB1c2UgZHJt X2Rldl97ZW50ZXJ8ZXhpdH0gdG8gcHJvdGVjdCBjb2RlIHdoaWNoIG11c3Qgbm90IHJ1biB3aGVu IHVucGx1Z2dlZAotIHJlLXdvcmsgdW5wbHVnIGNvZGUgdG8gZnVsbHkgc3VwcG9ydCAiem9tYmll IiBEUk0gZGV2aWNlcyBvbiBiYWNrZW5kCiAgZGlzY29ubmVjdAotIGltcGxlbWVudCBhIGRlZGlj YXRlZCBwYWdlIGZsaXAgdGltZS1vdXQgd29ya2VyLCByZW1vdmUgbG9naWMgZnJvbSBjb25uZWN0 b3IKICBkZXRlY3QgY2FsbGJhY2sKLSBtb3ZlIG1vZGVfdmFsaWQgZnJvbSBkcm1fY29ubmVjdG9y X2hlbHBlcl9mdW5jcyB0byBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZV9mdW5jcwotIHVzZSBkcm1f Z2VtX29iamVjdF9wdXRfdW5sb2NrZWQgaW5zdGVhZCBvZiBvYnNvbGV0ZSBkcm1fZ2VtX29iamVj dF91bnJlZmVyZW5jZV91bmxvY2tlZAotIG1pbm9yIGNsZWFudXBzCgpDaGFuZ2VzIHNpbmNlIHYy OgoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqCi0gbm8gY2hhbmdlcyB0byBYZW4gcmVsYXRlZCBjb2Rl IChzaGFyZWQgYnVmZmVyIGhhbmRsaW5nLCBldmVudCBjaGFubmVscyBldGMuKQotIHJld29yayBE Uk0gZHJpdmVyIHJlbGVhc2Ugd2l0aCBob3RwbHVnIChEYW5pZWwpCi0gc3F1YXNoIHhlbl9kcm1f ZnJvbnQgYW5kIHhlbl9kcm1fZnJvbnRfZHJ2IGFzIHRoZXkgZGVwZW5kIG9uIGVhY2gKICBvdGhl ciB0b28gaGVhdmlseSBub3cKLSByZW1vdmUgcGxhdGZvcm0gZHJpdmVyIGFuZCBpbnN0YW50aWF0 ZSBEUk0gZGV2aWNlCiAgZnJvbSB4ZW5idXMgZHJpdmVyIGRpcmVjdGx5Ci0gaGF2ZSBzZXJpYWxp emluZyBtdXRleCBwZXIgY29ubmVjdG9yLCBub3QgYSBzaW5nbGUgb25lLAogIHNvIHdlIGRvbid0 IGludHJvZHVjZSBhIGJvdHRsZSBuZWNrIGZvciBtdWx0aXBsZSBjb25uZWN0b3JzCi0gbWlub3Ig Y29tbWVudHMgYWRkcmVzc2VkIChEYW5pZWwpCgpDaGFuZ2VzIHNpbmNlIHYxOgoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqCi0gdXNlIFNQRFggbGljZW5zZSBpZGVudGlmaWVyLCBzZXQgbGljZW5zZSB0 byBHUEx2MiBPUiBNSVQKLSBjaGFuZ2VkIG1pZGxheWVycyB0byBkaXJlY3QgZnVuY3Rpb24gY2Fs bHMsIHJlbW92ZWQ6CiAgLSBmcm9udF9vcHMKICAtIGdlbV9vcHMKLSByZW5hbWVkIHhlbmJ1c19k cml2ZXIgY2FsbGJhY2tzIHRvIGFsaWduIHdpdGggZXhpc2l0bmcgUFYgZHJpdmVycwotIHJlLXdv cmtlZCBiYWNrZW5kIGVycm9yIGhhbmRsaW5nIHdpdGggY29ubmVjdG9yIGhvdHBsdWcgdWV2ZW50 cwotIHJlbW92ZWQgdmJsYW5rIGhhbmRsaW5nIHNvIHVzZXItc3BhY2UgZG9lc24ndCBoYXZlIGFu IGltcHJlc3Npb24KICB3ZSByZWFsbHkgc3VwcG9ydCB0aGF0Ci0gZGlyZWN0bHkgdXNlIGZyb250 J3MgbW9kZV9zZXQgaW4gZGlzcGxheSBlbmFibGUvZGlzYWJsZQotIHJlbW92ZWQgQlVHX09OLCBl cnJvciBoYW5kbGluZyBpbXBsZW1lbnRlZAotIG1vdmVkIGRyaXZlciBkb2N1bWVudGF0aW9uIGlu dG8gRG9jdW1lbnRhdGlvbi9ncHUKLSBvdGhlciBjb21tZW50cyBmcm9tIFhlbiBjb21tdW5pdHkg YWRkcmVzc2VkIChCb3JpcyBhbmQgSnVlcmdlbikKLSBzcXVhc2hlZCBYZW4gYW5kIERSTSBwYXRj aGVzIGZvciBiZXR0ZXIgaW50ZXJyY29ubmVjdGlvbiB2aXNpYmlsaXR5Ci0gZm9yIHlvdXIgY29u dmVuaWVuY2UgZHJpdmVyIGlzIGF2YWlsYWJsZSBhdCBbMTFdCgpUaGFuayB5b3UsCk9sZWtzYW5k ciBBbmRydXNoY2hlbmtvCgpbMV0gaHR0cHM6Ly93aWtpLnhlbi5vcmcvd2lraS9QYXJhdmlydHVh bGl6YXRpb25fKFBWKSNQVl9JT19Ecml2ZXJzClsyXSBodHRwczovL2VsaXhpci5ib290bGluLmNv bS9saW51eC92NC4xNi1yYzIvc291cmNlL2luY2x1ZGUveGVuL2ludGVyZmFjZS9pby9kaXNwbGlm LmgKWzNdIGh0dHBzOi8vZ2l0aHViLmNvbS94ZW4tdHJvb3BzL2Rpc3BsX2JlCls0XSBodHRwczov L2dpdGh1Yi5jb20veGVuLXRyb29wcy9saWJ4ZW5iZQpbNV0gaHR0cHM6Ly94ZW5iaXRzLnhlbi5v cmcvZ2l0d2ViLz9wPXhlbi5naXQ7YT1ibG9iO2Y9ZG9jcy9tYW4veGwuY2ZnLnBvZC41LmluO2g9 YTY5OTM2Nzc3OWUyYWUxMjEyZmY4ZjYzOGVmZjAyMDZlYzFhMWNjOTtoYj1yZWZzL2hlYWRzL21h c3RlciNsMTI1NwpbNl0gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvYXJjaGl2ZXMvZHJp LWRldmVsLzIwMTctTWFyY2gvMTM2MDM4Lmh0bWwKWzddIGh0dHBzOi8vd3d3LnNwaW5pY3MubmV0 L2xpc3RzL2RyaS1kZXZlbC9tc2cxNjQxMDIuaHRtbApbOF0gaHR0cHM6Ly93d3cuc3Bpbmljcy5u ZXQvbGlzdHMvZHJpLWRldmVsL21zZzE2NDQ2My5odG1sCls5XSBodHRwczovL3BhdGNod29yay5m cmVlZGVza3RvcC5vcmcvc2VyaWVzLzM4MDczLwpbMTBdIGh0dHBzOi8vcGF0Y2h3b3JrLmZyZWVk ZXNrdG9wLm9yZy9zZXJpZXMvMzgxMzkvClsxMV0gaHR0cHM6Ly9naXRodWIuY29tL2FuZHIyMDAw L2xpbnV4L2NvbW1pdHMvZHJtX3RpcF9wdl9kcm1fdjIKWzEyXSBodHRwczovL3BhdGNod29yay5m cmVlZGVza3RvcC5vcmcvcGF0Y2gvMTc1Nzc5LwpbMTNdIGh0dHBzOi8vd3d3LnNwaW5pY3MubmV0 L2xpc3RzL2RyaS1kZXZlbC9tc2cxNzA0NTMuaHRtbApbMTRdIGh0dHBzOi8vcGF0Y2h3b3JrLmZy ZWVkZXNrdG9wLm9yZy9wYXRjaC8yMTIzMjEvCgpPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyAoMSk6 CiAgZHJtL3hlbi1mcm9udDogQWRkIHN1cHBvcnQgZm9yIFhlbiBQViBkaXNwbGF5IGZyb250ZW5k CgogRG9jdW1lbnRhdGlvbi9ncHUvZHJpdmVycy5yc3QgICAgICAgICAgICAgICB8ICAgMSArCiBE b2N1bWVudGF0aW9uL2dwdS94ZW4tZnJvbnQucnN0ICAgICAgICAgICAgIHwgIDQzICsrCiBkcml2 ZXJzL2dwdS9kcm0vS2NvbmZpZyAgICAgICAgICAgICAgICAgICAgIHwgICAyICsKIGRyaXZlcnMv Z3B1L2RybS9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogZHJpdmVycy9ncHUv ZHJtL3hlbi9LY29uZmlnICAgICAgICAgICAgICAgICB8ICAzMCArCiBkcml2ZXJzL2dwdS9kcm0v eGVuL01ha2VmaWxlICAgICAgICAgICAgICAgIHwgIDE2ICsKIGRyaXZlcnMvZ3B1L2RybS94ZW4v eGVuX2RybV9mcm9udC5jICAgICAgICAgfCA4ODAgKysrKysrKysrKysrKysrKysrKysrKysrKysr KwogZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250LmggICAgICAgICB8IDE4OSArKysr KysKIGRyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udF9jZmcuYyAgICAgfCAgNzcgKysr CiBkcml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnRfY2ZnLmggICAgIHwgIDM3ICsrCiBk cml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnRfY29ubi5jICAgIHwgMTE1ICsrKysKIGRy aXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udF9jb25uLmggICAgfCAgMjcgKwogZHJpdmVy cy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250X2V2dGNobmwuYyB8IDM4NiArKysrKysrKysrKysK IGRyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udF9ldnRjaG5sLmggfCAgODEgKysrCiBk cml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnRfZ2VtLmMgICAgIHwgMzA5ICsrKysrKysr KysKIGRyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udF9nZW0uaCAgICAgfCAgNDEgKysK IGRyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udF9nZW1fY21hLmMgfCAgNzggKysrCiBk cml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnRfa21zLmMgICAgIHwgMzcyICsrKysrKysr KysrKwogZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250X2ttcy5oICAgICB8ICAyNyAr CiBkcml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnRfc2hidWYuYyAgIHwgNDMyICsrKysr KysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnRfc2hidWYuaCAgIHwg IDcyICsrKwogMjEgZmlsZXMgY2hhbmdlZCwgMzIxNiBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9k ZSAxMDA2NDQgRG9jdW1lbnRhdGlvbi9ncHUveGVuLWZyb250LnJzdAogY3JlYXRlIG1vZGUgMTAw NjQ0IGRyaXZlcnMvZ3B1L2RybS94ZW4vS2NvbmZpZwogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZl cnMvZ3B1L2RybS94ZW4vTWFrZWZpbGUKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9k cm0veGVuL3hlbl9kcm1fZnJvbnQuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2Ry bS94ZW4veGVuX2RybV9mcm9udC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJt L3hlbi94ZW5fZHJtX2Zyb250X2NmZy5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUv ZHJtL3hlbi94ZW5fZHJtX2Zyb250X2NmZy5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9n cHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250X2Nvbm4uYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZl cnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udF9jb25uLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBk cml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnRfZXZ0Y2hubC5jCiBjcmVhdGUgbW9kZSAx MDA2NDQgZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250X2V2dGNobmwuaAogY3JlYXRl IG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udF9nZW0uYwogY3Jl YXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udF9nZW0uaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udF9nZW1f Y21hLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJv bnRfa21zLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1f ZnJvbnRfa21zLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0veGVuL3hlbl9k cm1fZnJvbnRfc2hidWYuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS94ZW4v eGVuX2RybV9mcm9udF9zaGJ1Zi5oCgotLSAKMi4xNi4yCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZl bEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9kcmktZGV2ZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752040AbeC2JW6 (ORCPT ); Thu, 29 Mar 2018 05:22:58 -0400 Received: from mail-lf0-f68.google.com ([209.85.215.68]:42010 "EHLO mail-lf0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750735AbeC2JW5 (ORCPT ); Thu, 29 Mar 2018 05:22:57 -0400 X-Google-Smtp-Source: AIpwx4+RsMlalsSnRaS1ZMaTYPUfE9LGqwePnzrWL08FyFQz/5bTArFG+uG/DFOQ0t1L6cHNc7nEag== 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 v5 0/1] drm/xen-front: Add support for Xen PV display frontend Date: Thu, 29 Mar 2018 12:22:46 +0300 Message-Id: <20180329092247.23905-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 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 | 880 ++++++++++++++++++++++++++++ drivers/gpu/drm/xen/xen_drm_front.h | 189 ++++++ 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 | 309 ++++++++++ drivers/gpu/drm/xen/xen_drm_front_gem.h | 41 ++ drivers/gpu/drm/xen/xen_drm_front_gem_cma.c | 78 +++ drivers/gpu/drm/xen/xen_drm_front_kms.c | 372 ++++++++++++ drivers/gpu/drm/xen/xen_drm_front_kms.h | 27 + drivers/gpu/drm/xen/xen_drm_front_shbuf.c | 432 ++++++++++++++ drivers/gpu/drm/xen/xen_drm_front_shbuf.h | 72 +++ 21 files changed, 3216 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