From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Andrushchenko Subject: [PATCH RESEND v2 0/2] drm/xen-front: Add support for Xen PV display frontend Date: Tue, 13 Mar 2018 18:21:04 +0200 Message-ID: <1520958066-22875-1-git-send-email-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 8222D890A5 for ; Tue, 13 Mar 2018 16:21:20 +0000 (UTC) Received: by mail-lf0-x241.google.com with SMTP id y19-v6so274242lfd.4 for ; Tue, 13 Mar 2018 09:21:20 -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 YW0uY29tPgoKSGVsbG8hCgpSZXNlbmRpbmcgd2l0aCBhbGwgdGhlIHBhdGNoZXMgc3F1YXNoZWQg b24gRGFuaWVsJ3MgcmVxdWVzdC4KClRoaXMgcGF0Y2ggc2VyaWVzIGFkZHMgc3VwcG9ydCBmb3Ig WGVuIFsxXSBwYXJhLXZpcnR1YWxpemVkCmZyb250ZW5kIGRpc3BsYXkgZHJpdmVyLiBJdCBpbXBs ZW1lbnRzIHRoZSBwcm90b2NvbCBmcm9tCmluY2x1ZGUveGVuL2ludGVyZmFjZS9pby9kaXNwbGlm LmggWzJdLgpBY2NvbXBhbnlpbmcgYmFja2VuZCBbM10gaXMgaW1wbGVtZW50ZWQgYXMgYSB1c2Vy LXNwYWNlIGFwcGxpY2F0aW9uCmFuZCBpdHMgaGVscGVyIGxpYnJhcnkgWzRdLCBjYXBhYmxlIG9m IHJ1bm5pbmcgYXMgYSBXZXN0b24gY2xpZW50Cm9yIERSTSBtYXN0ZXIuCkNvbmZpZ3VyYXRpb24g b2YgYm90aCBiYWNrZW5kIGFuZCBmcm9udGVuZCBpcyBkb25lIHZpYSAKWGVuIGd1ZXN0IGRvbWFp biBjb25maWd1cmF0aW9uIG9wdGlvbnMgWzVdLgoKKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoqIERy aXZlciBsaW1pdGF0aW9ucwoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAxLiBDb25maWd1cmF0aW9u IG9wdGlvbnMgMS4xIChjb250aWd1b3VzIGRpc3BsYXkgYnVmZmVycykgYW5kIDIgKGJhY2tlbmQK ICAgIGFsbG9jYXRlZCBidWZmZXJzKSBiZWxvdyBhcmUgbm90IHN1cHBvcnRlZCBhdCB0aGUgc2Ft ZSB0aW1lLgoKIDIuIE9ubHkgcHJpbWFyeSBwbGFuZSB3aXRob3V0IGFkZGl0aW9uYWwgcHJvcGVy dGllcyBpcyBzdXBwb3J0ZWQuCgogMy4gT25seSBvbmUgdmlkZW8gbW9kZSBzdXBwb3J0ZWQgd2hp Y2ggcmVzb2x1dGlvbiBpcyBjb25maWd1cmVkIHZpYSBYZW5TdG9yZS4KCiA0LiBBbGwgQ1JUQ3Mg b3BlcmF0ZSBhdCBmaXhlZCBmcmVxdWVuY3kgb2YgNjBIei4KCioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioKKiBEcml2ZXIgbW9kZXMgb2Ygb3BlcmF0aW9uIGluIHRlcm1zIG9mIGRpc3BsYXkgYnVmZmVy cyB1c2VkCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIERlcGVuZGluZyBvbiB0aGUgcmVxdWlyZW1l bnRzIGZvciB0aGUgcGFyYS12aXJ0dWFsaXplZCBlbnZpcm9ubWVudCwgbmFtZWx5CiByZXF1aXJl bWVudHMgZGljdGF0ZWQgYnkgdGhlIGFjY29tcGFueWluZyBEUk0vKHYpR1BVIGRyaXZlcnMgcnVu bmluZyBpbiBib3RoCiBob3N0IGFuZCBndWVzdCBlbnZpcm9ubWVudHMsIG51bWJlciBvZiBvcGVy YXRpbmcgbW9kZXMgb2YgcGFyYS12aXJ0dWFsaXplZAogZGlzcGxheSBkcml2ZXIgYXJlIHN1cHBv cnRlZDoKICAtIGRpc3BsYXkgYnVmZmVycyBjYW4gYmUgYWxsb2NhdGVkIGJ5IGVpdGhlciBmcm9u dGVuZCBkcml2ZXIgb3IgYmFja2VuZAogIC0gZGlzcGxheSBidWZmZXJzIGNhbiBiZSBhbGxvY2F0 ZWQgdG8gYmUgY29udGlndW91cyBpbiBtZW1vcnkgb3Igbm90CgogTm90ZSEgRnJvbnRlbmQgZHJp dmVyIGl0c2VsZiBoYXMgbm8gZGVwZW5kZW5jeSBvbiBjb250aWd1b3VzIG1lbW9yeSBmb3IKICAg ICAgIGl0cyBvcGVyYXRpb24uCgoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiogMS4gQnVmZmVycyBh bGxvY2F0ZWQgYnkgdGhlIGZyb250ZW5kIGRyaXZlci4KKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoK IFRoZSBiZWxvdyBtb2RlcyBvZiBvcGVyYXRpb24gYXJlIGNvbmZpZ3VyZWQgYXQgY29tcGlsZS10 aW1lIHZpYQogZnJvbnRlbmQgZHJpdmVyJ3Mga2VybmVsIGNvbmZpZ3VyYXRpb24uCgogMS4xLiBG cm9udCBkcml2ZXIgY29uZmlndXJlZCB0byB1c2UgR0VNIENNQSBoZWxwZXJzCiAgICAgIFRoaXMg dXNlLWNhc2UgaXMgdXNlZnVsIHdoZW4gdXNlZCB3aXRoIGFjY29tcGFueWluZyBEUk0vdkdQVSBk cml2ZXIgaW4KICAgICAgZ3Vlc3QgZG9tYWluIHdoaWNoIHdhcyBkZXNpZ25lZCB0byBvbmx5IHdv cmsgd2l0aCBjb250aWd1b3VzIGJ1ZmZlcnMsCiAgICAgIGUuZy4gRFJNIGRyaXZlciBiYXNlZCBv biBHRU0gQ01BIGhlbHBlcnM6IHN1Y2ggZHJpdmVycyBjYW4gb25seSBpbXBvcnQKICAgICAgY29u dGlndW91cyBQUklNRSBidWZmZXJzLCB0aHVzIHJlcXVpcmluZyBmcm9udGVuZCBkcml2ZXIgdG8g cHJvdmlkZQogICAgICBzdWNoLiBJbiBvcmRlciB0byBpbXBsZW1lbnQgdGhpcyBtb2RlIG9mIG9w ZXJhdGlvbiBwYXJhLXZpcnR1YWxpemVkCiAgICAgIGZyb250ZW5kIGRyaXZlciBjYW4gYmUgY29u ZmlndXJlZCB0byB1c2UgR0VNIENNQSBoZWxwZXJzLgoKIDEuMi4gRnJvbnQgZHJpdmVyIGRvZXNu J3QgdXNlIEdFTSBDTUEKICAgICAgSWYgYWNjb21wYW55aW5nIGRyaXZlcnMgY2FuIGNvcGUgd2l0 aCBub24tY29udGlndW91cyBtZW1vcnkgdGhlbiwgdG8KICAgICAgbG93ZXIgcHJlc3N1cmUgb24g Q01BIHN1YnN5c3RlbSBvZiB0aGUga2VybmVsLCBkcml2ZXIgY2FuIGFsbG9jYXRlCiAgICAgIGJ1 ZmZlcnMgZnJvbSBzeXN0ZW0gbWVtb3J5LgoKIE5vdGUhIElmIHVzZWQgd2l0aCBhY2NvbXBhbnlp bmcgRFJNLyh2KUdQVSBkcml2ZXJzIHRoaXMgbW9kZSBvZiBvcGVyYXRpb24KICAgbWF5IHJlcXVp cmUgSU9NTVUgc3VwcG9ydCBvbiB0aGUgcGxhdGZvcm0sIHNvIGFjY29tcGFueWluZyBEUk0vdkdQ VQogICBoYXJkd2FyZSBjYW4gc3RpbGwgcmVhY2ggZGlzcGxheSBidWZmZXIgbWVtb3J5IHdoaWxl IGltcG9ydGluZyBQUklNRQogICBidWZmZXJzIGZyb20gdGhlIGZyb250ZW5kIGRyaXZlci4KCioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioKKiAyLiBCdWZmZXJzIGFsbG9jYXRlZCBieSB0aGUgYmFja2Vu ZAoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqCgogVGhpcyBtb2RlIG9mIG9wZXJhdGlvbiBpcyBydW4t dGltZSBjb25maWd1cmVkIHZpYSBndWVzdCBkb21haW4gY29uZmlndXJhdGlvbgogdGhyb3VnaCBY ZW5TdG9yZSBlbnRyaWVzLgoKIEZvciBzeXN0ZW1zIHdoaWNoIGRvIG5vdCBwcm92aWRlIElPTU1V IHN1cHBvcnQsIGJ1dCBoYXZpbmcgc3BlY2lmaWMKIHJlcXVpcmVtZW50cyBmb3IgZGlzcGxheSBi dWZmZXJzIGl0IGlzIHBvc3NpYmxlIHRvIGFsbG9jYXRlIHN1Y2ggYnVmZmVycwogYXQgYmFja2Vu ZCBzaWRlIGFuZCBzaGFyZSB0aG9zZSB3aXRoIHRoZSBmcm9udGVuZC4KIEZvciBleGFtcGxlLCBp ZiBob3N0IGRvbWFpbiBpcyAxOjEgbWFwcGVkIGFuZCBoYXMgRFJNL0dQVSBoYXJkd2FyZSBleHBl Y3RpbmcKIHBoeXNpY2FsbHkgY29udGlndW91cyBtZW1vcnksIHRoaXMgYWxsb3dzIGltcGxlbWVu dGluZyB6ZXJvLWNvcHlpbmcKIHVzZS1jYXNlcy4KCgpJIHdvdWxkIGxpa2UgdG8gdGhhbmsgYXQg bGVhc3QsIGJ1dCBub3QgYXQgbGFzdCB0aGUgZm9sbG93aW5nCnBlb3BsZS9jb21tdW5pdGllcyB3 aG8gaGVscGVkIHRoaXMgZHJpdmVyIHRvIGhhcHBlbiA7KQoKMS4gTXkgdGVhbSBhdCBFUEFNIGZv ciBjb250aW51b3VzIHN1cHBvcnQKMi4gWGVuIGNvbW11bml0eSBmb3IgYW5zd2VyaW5nIHRvbnMg b2YgcXVlc3Rpb25zIG9uIGRpZmZlcmVudAptb2RlcyBvZiBvcGVyYXRpb24gb2YgdGhlIGRyaXZl ciB3aXRoIHJlc3BlY3QgdG8gdmlydHVhbGl6ZWQKZW52aXJvbm1lbnQuCjMuIFJvYiBDbGFyayBm b3IgIkdFTSBhbGxvY2F0aW9uIGZvciBwYXJhLXZpcnR1YWxpemVkIERSTSBkcml2ZXIiIFs2XQo0 LiBNYWFydGVuIExhbmtob3JzdCBmb3IgIkF0b21pYyBkcml2ZXIgYW5kIG9sZCByZW1vdmUgRkIg YmVoYXZpb3IiIFs3XQo1LiBWaWxsZSBTeXJqw6Rsw6QgZm9yICJRdWVzdGlvbnMgb24gcGFnZSBm bGlwcyBhbmQgYXRvbWljIG1vZGVzZXQiIFs4XQoKCkNoYW5nZXMgc2luY2UgdjE6CioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioKLSB1c2UgU1BEWCBsaWNlbnNlIGlkZW50aWZpZXIsIHNldCBsaWNlbnNl IHRvIEdQTHYyIE9SIE1JVAotIGNoYW5nZWQgbWlkbGF5ZXJzIHRvIGRpcmVjdCBmdW5jdGlvbiBj YWxscywgcmVtb3ZlZDoKICAtIGZyb250X29wcwogIC0gZ2VtX29wcwotIHJlbmFtZWQgeGVuYnVz X2RyaXZlciBjYWxsYmFja3MgdG8gYWxpZ24gd2l0aCBleGlzaXRuZyBQViBkcml2ZXJzCi0gcmUt d29ya2VkIGJhY2tlbmQgZXJyb3IgaGFuZGxpbmcgd2l0aCBjb25uZWN0b3IgaG90cGx1ZyB1ZXZl bnRzCi0gcmVtb3ZlZCB2YmxhbmsgaGFuZGxpbmcgc28gdXNlci1zcGFjZSBkb2Vzbid0IGhhdmUg YW4gaW1wcmVzc2lvbgogIHdlIHJlYWxseSBzdXBwb3J0IHRoYXQKLSBkaXJlY3RseSB1c2UgZnJv bnQncyBtb2RlX3NldCBpbiBkaXNwbGF5IGVuYWJsZS9kaXNhYmxlCi0gcmVtb3ZlZCBCVUdfT04s IGVycm9yIGhhbmRsaW5nIGltcGxlbWVudGVkCi0gbW92ZWQgZHJpdmVyIGRvY3VtZW50YXRpb24g aW50byBEb2N1bWVudGF0aW9uL2dwdQotIG90aGVyIGNvbW1lbnRzIGZyb20gWGVuIGNvbW11bml0 eSBhZGRyZXNzZWQgKEJvcmlzIGFuZCBKdWVyZ2VuKQotIHNxdWFzaGVkIFhlbiBhbmQgRFJNIHBh dGNoZXMgZm9yIGJldHRlciBpbnRlcnJjb25uZWN0aW9uIHZpc2liaWxpdHkKLSBmb3IgeW91ciBj b252ZW5pZW5jZSBkcml2ZXIgaXMgYXZhaWxhYmxlIGF0IFsxMV0KClRoYW5rIHlvdSwKT2xla3Nh bmRyIEFuZHJ1c2hjaGVua28KCgpbMV0gaHR0cHM6Ly93aWtpLnhlbi5vcmcvd2lraS9QYXJhdmly dHVhbGl6YXRpb25fKFBWKSNQVl9JT19Ecml2ZXJzClsyXSBodHRwczovL2VsaXhpci5ib290bGlu LmNvbS9saW51eC92NC4xNi1yYzIvc291cmNlL2luY2x1ZGUveGVuL2ludGVyZmFjZS9pby9kaXNw bGlmLmgKWzNdIGh0dHBzOi8vZ2l0aHViLmNvbS94ZW4tdHJvb3BzL2Rpc3BsX2JlCls0XSBodHRw czovL2dpdGh1Yi5jb20veGVuLXRyb29wcy9saWJ4ZW5iZQpbNV0gaHR0cHM6Ly94ZW5iaXRzLnhl bi5vcmcvZ2l0d2ViLz9wPXhlbi5naXQ7YT1ibG9iO2Y9ZG9jcy9tYW4veGwuY2ZnLnBvZC41Lmlu O2g9YTY5OTM2Nzc3OWUyYWUxMjEyZmY4ZjYzOGVmZjAyMDZlYzFhMWNjOTtoYj1yZWZzL2hlYWRz L21hc3RlciNsMTI1NwpbNl0gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvYXJjaGl2ZXMv ZHJpLWRldmVsLzIwMTctTWFyY2gvMTM2MDM4Lmh0bWwKWzddIGh0dHBzOi8vd3d3LnNwaW5pY3Mu bmV0L2xpc3RzL2RyaS1kZXZlbC9tc2cxNjQxMDIuaHRtbApbOF0gaHR0cHM6Ly93d3cuc3Bpbmlj cy5uZXQvbGlzdHMvZHJpLWRldmVsL21zZzE2NDQ2My5odG1sCls5XSBodHRwczovL3BhdGNod29y ay5mcmVlZGVza3RvcC5vcmcvc2VyaWVzLzM4MDczLwpbMTBdIGh0dHBzOi8vcGF0Y2h3b3JrLmZy ZWVkZXNrdG9wLm9yZy9zZXJpZXMvMzgxMzkvClsxMV0gaHR0cHM6Ly9naXRodWIuY29tL2FuZHIy MDAwL2xpbnV4L2NvbW1pdHMvZHJtX3RpcF9wdl9kcm1fdjIKCgpPbGVrc2FuZHIgQW5kcnVzaGNo ZW5rbyAoMik6CiAgZHJtL3hlbi1mcm9udDogQWRkIHN1cHBvcnQgZm9yIFhlbiBQViBkaXNwbGF5 IGZyb250ZW5kCiAgZHJtL3hlbi1mcm9udDogUHJvdmlkZSBrZXJuZWwgZG9jdW1lbnRhdGlvbgoK IERvY3VtZW50YXRpb24vZ3B1L2luZGV4LnJzdCAgICAgICAgICAgICAgICAgfCAgIDEgKwogRG9j dW1lbnRhdGlvbi9ncHUveGVuLWZyb250LnJzdCAgICAgICAgICAgICB8ICA3NyArKysrCiBkcml2 ZXJzL2dwdS9kcm0vS2NvbmZpZyAgICAgICAgICAgICAgICAgICAgIHwgICAyICsKIGRyaXZlcnMv Z3B1L2RybS9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogZHJpdmVycy9ncHUv ZHJtL3hlbi9LY29uZmlnICAgICAgICAgICAgICAgICB8ICAzMCArKwogZHJpdmVycy9ncHUvZHJt L3hlbi9NYWtlZmlsZSAgICAgICAgICAgICAgICB8ICAxNyArCiBkcml2ZXJzL2dwdS9kcm0veGVu L3hlbl9kcm1fZnJvbnQuYyAgICAgICAgIHwgNjkwICsrKysrKysrKysrKysrKysrKysrKysrKysr KysKIGRyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udC5oICAgICAgICAgfCAgNzcgKysr KwogZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250X2NmZy5jICAgICB8ICA3NyArKysr CiBkcml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnRfY2ZnLmggICAgIHwgIDM3ICsrCiBk cml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnRfY29ubi5jICAgIHwgMTQ2ICsrKysrKwog ZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250X2Nvbm4uaCAgICB8ICAyNyArKwogZHJp dmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250X2Rydi5jICAgICB8IDIzOSArKysrKysrKysr CiBkcml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnRfZHJ2LmggICAgIHwgIDc4ICsrKysK IGRyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udF9ldnRjaG5sLmMgfCAzODMgKysrKysr KysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnRfZXZ0Y2hubC5oIHwg IDc5ICsrKysKIGRyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udF9nZW0uYyAgICAgfCAz MzUgKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udF9nZW0u aCAgICAgfCAgNDEgKysKIGRyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udF9nZW1fY21h LmMgfCAgNzQgKysrCiBkcml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnRfa21zLmMgICAg IHwgMzI0ICsrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udF9r bXMuaCAgICAgfCAgMjUgKwogZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250X3NoYnVm LmMgICB8IDQzMiArKysrKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJt X2Zyb250X3NoYnVmLmggICB8ICA3MiArKysKIDIzIGZpbGVzIGNoYW5nZWQsIDMyNjQgaW5zZXJ0 aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IERvY3VtZW50YXRpb24vZ3B1L3hlbi1mcm9udC5y c3QKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0veGVuL0tjb25maWcKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0veGVuL01ha2VmaWxlCiBjcmVhdGUgbW9kZSAx MDA2NDQgZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250LmMKIGNyZWF0ZSBtb2RlIDEw MDY0NCBkcml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnQuaAogY3JlYXRlIG1vZGUgMTAw NjQ0IGRyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udF9jZmcuYwogY3JlYXRlIG1vZGUg MTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udF9jZmcuaAogY3JlYXRlIG1v ZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udF9jb25uLmMKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnRfY29ubi5oCiBj cmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250X2Rydi5j CiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250X2Ry di5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250 X2V2dGNobmwuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2Ry bV9mcm9udF9ldnRjaG5sLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0veGVu L3hlbl9kcm1fZnJvbnRfZ2VtLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0v eGVuL3hlbl9kcm1fZnJvbnRfZ2VtLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9k cm0veGVuL3hlbl9kcm1fZnJvbnRfZ2VtX2NtYS5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVy cy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250X2ttcy5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJp dmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250X2ttcy5oCiBjcmVhdGUgbW9kZSAxMDA2NDQg ZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250X3NoYnVmLmMKIGNyZWF0ZSBtb2RlIDEw MDY0NCBkcml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnRfc2hidWYuaAoKLS0gCjIuNy40 CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2 ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933954AbeCMQVX (ORCPT ); Tue, 13 Mar 2018 12:21:23 -0400 Received: from mail-lf0-f65.google.com ([209.85.215.65]:40574 "EHLO mail-lf0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752509AbeCMQVU (ORCPT ); Tue, 13 Mar 2018 12:21:20 -0400 X-Google-Smtp-Source: AG47ELs/O2mnUGqTNHw1HzzANduuCZ/A1vpbG/RIDtHbTItfuvLiPHvkr23nGH3a3yQ/uFFBcbxIKg== 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 RESEND v2 0/2] drm/xen-front: Add support for Xen PV display frontend Date: Tue, 13 Mar 2018 18:21:04 +0200 Message-Id: <1520958066-22875-1-git-send-email-andr2000@gmail.com> X-Mailer: git-send-email 2.7.4 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! Resending with all the patches squashed on Daniel's request. 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 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 Oleksandr Andrushchenko (2): drm/xen-front: Add support for Xen PV display frontend drm/xen-front: Provide kernel documentation Documentation/gpu/index.rst | 1 + Documentation/gpu/xen-front.rst | 77 ++++ drivers/gpu/drm/Kconfig | 2 + drivers/gpu/drm/Makefile | 1 + drivers/gpu/drm/xen/Kconfig | 30 ++ drivers/gpu/drm/xen/Makefile | 17 + drivers/gpu/drm/xen/xen_drm_front.c | 690 ++++++++++++++++++++++++++++ drivers/gpu/drm/xen/xen_drm_front.h | 77 ++++ 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 | 146 ++++++ drivers/gpu/drm/xen/xen_drm_front_conn.h | 27 ++ drivers/gpu/drm/xen/xen_drm_front_drv.c | 239 ++++++++++ drivers/gpu/drm/xen/xen_drm_front_drv.h | 78 ++++ drivers/gpu/drm/xen/xen_drm_front_evtchnl.c | 383 +++++++++++++++ drivers/gpu/drm/xen/xen_drm_front_evtchnl.h | 79 ++++ drivers/gpu/drm/xen/xen_drm_front_gem.c | 335 ++++++++++++++ drivers/gpu/drm/xen/xen_drm_front_gem.h | 41 ++ drivers/gpu/drm/xen/xen_drm_front_gem_cma.c | 74 +++ drivers/gpu/drm/xen/xen_drm_front_kms.c | 324 +++++++++++++ drivers/gpu/drm/xen/xen_drm_front_kms.h | 25 + drivers/gpu/drm/xen/xen_drm_front_shbuf.c | 432 +++++++++++++++++ drivers/gpu/drm/xen/xen_drm_front_shbuf.h | 72 +++ 23 files changed, 3264 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_drv.c create mode 100644 drivers/gpu/drm/xen/xen_drm_front_drv.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.7.4