From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Andrushchenko Subject: [PATCH v2 0/8] drm/xen-front: Add support for Xen PV display frontend Date: Tue, 13 Mar 2018 15:30:59 +0200 Message-ID: <1520947867-32514-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 A46746E4DE for ; Tue, 13 Mar 2018 13:31:17 +0000 (UTC) Received: by mail-lf0-x241.google.com with SMTP id y19-v6so28782767lfd.4 for ; Tue, 13 Mar 2018 06:31:17 -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 YW0uY29tPgoKSGVsbG8hCgpUaGlzIHBhdGNoIHNlcmllcyBhZGRzIHN1cHBvcnQgZm9yIFhlbiBb MV0gcGFyYS12aXJ0dWFsaXplZApmcm9udGVuZCBkaXNwbGF5IGRyaXZlci4gSXQgaW1wbGVtZW50 cyB0aGUgcHJvdG9jb2wgZnJvbQppbmNsdWRlL3hlbi9pbnRlcmZhY2UvaW8vZGlzcGxpZi5oIFsy XS4KQWNjb21wYW55aW5nIGJhY2tlbmQgWzNdIGlzIGltcGxlbWVudGVkIGFzIGEgdXNlci1zcGFj ZSBhcHBsaWNhdGlvbgphbmQgaXRzIGhlbHBlciBsaWJyYXJ5IFs0XSwgY2FwYWJsZSBvZiBydW5u aW5nIGFzIGEgV2VzdG9uIGNsaWVudApvciBEUk0gbWFzdGVyLgpDb25maWd1cmF0aW9uIG9mIGJv dGggYmFja2VuZCBhbmQgZnJvbnRlbmQgaXMgZG9uZSB2aWEgClhlbiBndWVzdCBkb21haW4gY29u ZmlndXJhdGlvbiBvcHRpb25zIFs1XS4KCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKiBEcml2ZXIg bGltaXRhdGlvbnMKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogMS4gQ29uZmlndXJhdGlvbiBvcHRp b25zIDEuMSAoY29udGlndW91cyBkaXNwbGF5IGJ1ZmZlcnMpIGFuZCAyIChiYWNrZW5kCiAgICBh bGxvY2F0ZWQgYnVmZmVycykgYmVsb3cgYXJlIG5vdCBzdXBwb3J0ZWQgYXQgdGhlIHNhbWUgdGlt ZS4KCiAyLiBPbmx5IHByaW1hcnkgcGxhbmUgd2l0aG91dCBhZGRpdGlvbmFsIHByb3BlcnRpZXMg aXMgc3VwcG9ydGVkLgoKIDMuIE9ubHkgb25lIHZpZGVvIG1vZGUgc3VwcG9ydGVkIHdoaWNoIHJl c29sdXRpb24gaXMgY29uZmlndXJlZCB2aWEgWGVuU3RvcmUuCgogNC4gQWxsIENSVENzIG9wZXJh dGUgYXQgZml4ZWQgZnJlcXVlbmN5IG9mIDYwSHouCgoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiog RHJpdmVyIG1vZGVzIG9mIG9wZXJhdGlvbiBpbiB0ZXJtcyBvZiBkaXNwbGF5IGJ1ZmZlcnMgdXNl ZAoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqCiBEZXBlbmRpbmcgb24gdGhlIHJlcXVpcmVtZW50cyBm b3IgdGhlIHBhcmEtdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQsIG5hbWVseQogcmVxdWlyZW1lbnRz IGRpY3RhdGVkIGJ5IHRoZSBhY2NvbXBhbnlpbmcgRFJNLyh2KUdQVSBkcml2ZXJzIHJ1bm5pbmcg aW4gYm90aAogaG9zdCBhbmQgZ3Vlc3QgZW52aXJvbm1lbnRzLCBudW1iZXIgb2Ygb3BlcmF0aW5n IG1vZGVzIG9mIHBhcmEtdmlydHVhbGl6ZWQKIGRpc3BsYXkgZHJpdmVyIGFyZSBzdXBwb3J0ZWQ6 CiAgLSBkaXNwbGF5IGJ1ZmZlcnMgY2FuIGJlIGFsbG9jYXRlZCBieSBlaXRoZXIgZnJvbnRlbmQg ZHJpdmVyIG9yIGJhY2tlbmQKICAtIGRpc3BsYXkgYnVmZmVycyBjYW4gYmUgYWxsb2NhdGVkIHRv IGJlIGNvbnRpZ3VvdXMgaW4gbWVtb3J5IG9yIG5vdAoKIE5vdGUhIEZyb250ZW5kIGRyaXZlciBp dHNlbGYgaGFzIG5vIGRlcGVuZGVuY3kgb24gY29udGlndW91cyBtZW1vcnkgZm9yCiAgICAgICBp dHMgb3BlcmF0aW9uLgoKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoqIDEuIEJ1ZmZlcnMgYWxsb2Nh dGVkIGJ5IHRoZSBmcm9udGVuZCBkcml2ZXIuCioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCiBUaGUg YmVsb3cgbW9kZXMgb2Ygb3BlcmF0aW9uIGFyZSBjb25maWd1cmVkIGF0IGNvbXBpbGUtdGltZSB2 aWEKIGZyb250ZW5kIGRyaXZlcidzIGtlcm5lbCBjb25maWd1cmF0aW9uLgoKIDEuMS4gRnJvbnQg ZHJpdmVyIGNvbmZpZ3VyZWQgdG8gdXNlIEdFTSBDTUEgaGVscGVycwogICAgICBUaGlzIHVzZS1j YXNlIGlzIHVzZWZ1bCB3aGVuIHVzZWQgd2l0aCBhY2NvbXBhbnlpbmcgRFJNL3ZHUFUgZHJpdmVy IGluCiAgICAgIGd1ZXN0IGRvbWFpbiB3aGljaCB3YXMgZGVzaWduZWQgdG8gb25seSB3b3JrIHdp dGggY29udGlndW91cyBidWZmZXJzLAogICAgICBlLmcuIERSTSBkcml2ZXIgYmFzZWQgb24gR0VN IENNQSBoZWxwZXJzOiBzdWNoIGRyaXZlcnMgY2FuIG9ubHkgaW1wb3J0CiAgICAgIGNvbnRpZ3Vv dXMgUFJJTUUgYnVmZmVycywgdGh1cyByZXF1aXJpbmcgZnJvbnRlbmQgZHJpdmVyIHRvIHByb3Zp ZGUKICAgICAgc3VjaC4gSW4gb3JkZXIgdG8gaW1wbGVtZW50IHRoaXMgbW9kZSBvZiBvcGVyYXRp b24gcGFyYS12aXJ0dWFsaXplZAogICAgICBmcm9udGVuZCBkcml2ZXIgY2FuIGJlIGNvbmZpZ3Vy ZWQgdG8gdXNlIEdFTSBDTUEgaGVscGVycy4KCiAxLjIuIEZyb250IGRyaXZlciBkb2Vzbid0IHVz ZSBHRU0gQ01BCiAgICAgIElmIGFjY29tcGFueWluZyBkcml2ZXJzIGNhbiBjb3BlIHdpdGggbm9u LWNvbnRpZ3VvdXMgbWVtb3J5IHRoZW4sIHRvCiAgICAgIGxvd2VyIHByZXNzdXJlIG9uIENNQSBz dWJzeXN0ZW0gb2YgdGhlIGtlcm5lbCwgZHJpdmVyIGNhbiBhbGxvY2F0ZQogICAgICBidWZmZXJz IGZyb20gc3lzdGVtIG1lbW9yeS4KCiBOb3RlISBJZiB1c2VkIHdpdGggYWNjb21wYW55aW5nIERS TS8odilHUFUgZHJpdmVycyB0aGlzIG1vZGUgb2Ygb3BlcmF0aW9uCiAgIG1heSByZXF1aXJlIElP TU1VIHN1cHBvcnQgb24gdGhlIHBsYXRmb3JtLCBzbyBhY2NvbXBhbnlpbmcgRFJNL3ZHUFUKICAg aGFyZHdhcmUgY2FuIHN0aWxsIHJlYWNoIGRpc3BsYXkgYnVmZmVyIG1lbW9yeSB3aGlsZSBpbXBv cnRpbmcgUFJJTUUKICAgYnVmZmVycyBmcm9tIHRoZSBmcm9udGVuZCBkcml2ZXIuCgoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqCiogMi4gQnVmZmVycyBhbGxvY2F0ZWQgYnkgdGhlIGJhY2tlbmQKKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKgoKIFRoaXMgbW9kZSBvZiBvcGVyYXRpb24gaXMgcnVuLXRpbWUg Y29uZmlndXJlZCB2aWEgZ3Vlc3QgZG9tYWluIGNvbmZpZ3VyYXRpb24KIHRocm91Z2ggWGVuU3Rv cmUgZW50cmllcy4KCiBGb3Igc3lzdGVtcyB3aGljaCBkbyBub3QgcHJvdmlkZSBJT01NVSBzdXBw b3J0LCBidXQgaGF2aW5nIHNwZWNpZmljCiByZXF1aXJlbWVudHMgZm9yIGRpc3BsYXkgYnVmZmVy cyBpdCBpcyBwb3NzaWJsZSB0byBhbGxvY2F0ZSBzdWNoIGJ1ZmZlcnMKIGF0IGJhY2tlbmQgc2lk ZSBhbmQgc2hhcmUgdGhvc2Ugd2l0aCB0aGUgZnJvbnRlbmQuCiBGb3IgZXhhbXBsZSwgaWYgaG9z dCBkb21haW4gaXMgMToxIG1hcHBlZCBhbmQgaGFzIERSTS9HUFUgaGFyZHdhcmUgZXhwZWN0aW5n CiBwaHlzaWNhbGx5IGNvbnRpZ3VvdXMgbWVtb3J5LCB0aGlzIGFsbG93cyBpbXBsZW1lbnRpbmcg emVyby1jb3B5aW5nCiB1c2UtY2FzZXMuCgoKSSB3b3VsZCBsaWtlIHRvIHRoYW5rIGF0IGxlYXN0 LCBidXQgbm90IGF0IGxhc3QgdGhlIGZvbGxvd2luZwpwZW9wbGUvY29tbXVuaXRpZXMgd2hvIGhl bHBlZCB0aGlzIGRyaXZlciB0byBoYXBwZW4gOykKCjEuIE15IHRlYW0gYXQgRVBBTSBmb3IgY29u dGludW91cyBzdXBwb3J0CjIuIFhlbiBjb21tdW5pdHkgZm9yIGFuc3dlcmluZyB0b25zIG9mIHF1 ZXN0aW9ucyBvbiBkaWZmZXJlbnQKbW9kZXMgb2Ygb3BlcmF0aW9uIG9mIHRoZSBkcml2ZXIgd2l0 aCByZXNwZWN0IHRvIHZpcnR1YWxpemVkCmVudmlyb25tZW50LgozLiBSb2IgQ2xhcmsgZm9yICJH RU0gYWxsb2NhdGlvbiBmb3IgcGFyYS12aXJ0dWFsaXplZCBEUk0gZHJpdmVyIiBbNl0KNC4gTWFh cnRlbiBMYW5raG9yc3QgZm9yICJBdG9taWMgZHJpdmVyIGFuZCBvbGQgcmVtb3ZlIEZCIGJlaGF2 aW9yIiBbN10KNS4gVmlsbGUgU3lyasOkbMOkIGZvciAiUXVlc3Rpb25zIG9uIHBhZ2UgZmxpcHMg YW5kIGF0b21pYyBtb2Rlc2V0IiBbOF0KCgpDaGFuZ2VzIHNpbmNlIHYxOgoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqCi0gdXNlIFNQRFggbGljZW5zZSBpZGVudGlmaWVyLCBzZXQgbGljZW5zZSB0byBH UEx2MiBPUiBNSVQKLSBjaGFuZ2VkIG1pZGxheWVycyB0byBkaXJlY3QgZnVuY3Rpb24gY2FsbHMs IHJlbW92ZWQ6CiAgLSBmcm9udF9vcHMKICAtIGdlbV9vcHMKLSByZW5hbWVkIHhlbmJ1c19kcml2 ZXIgY2FsbGJhY2tzIHRvIGFsaWduIHdpdGggZXhpc2l0bmcgUFYgZHJpdmVycwotIHJlLXdvcmtl ZCBiYWNrZW5kIGVycm9yIGhhbmRsaW5nIHdpdGggY29ubmVjdG9yIGhvdHBsdWcgdWV2ZW50cwot IHJlbW92ZWQgdmJsYW5rIGhhbmRsaW5nIHNvIHVzZXItc3BhY2UgZG9lc24ndCBoYXZlIGFuIGlt cHJlc3Npb24KICB3ZSByZWFsbHkgc3VwcG9ydCB0aGF0Ci0gZGlyZWN0bHkgdXNlIGZyb250J3Mg bW9kZV9zZXQgaW4gZGlzcGxheSBlbmFibGUvZGlzYWJsZQotIHJlbW92ZWQgQlVHX09OLCBlcnJv ciBoYW5kbGluZyBpbXBsZW1lbnRlZAotIG1vdmVkIGRyaXZlciBkb2N1bWVudGF0aW9uIGludG8g RG9jdW1lbnRhdGlvbi9ncHUKLSBvdGhlciBjb21tZW50cyBmcm9tIFhlbiBjb21tdW5pdHkgYWRk cmVzc2VkIChCb3JpcyBhbmQgSnVlcmdlbikKLSBzcXVhc2hlZCBYZW4gYW5kIERSTSBwYXRjaGVz IGZvciBiZXR0ZXIgaW50ZXJyY29ubmVjdGlvbiB2aXNpYmlsaXR5Ci0gZm9yIHlvdXIgY29udmVu aWVuY2UgZHJpdmVyIGlzIGF2YWlsYWJsZSBhdCBbMTFdCgpUaGFuayB5b3UsCk9sZWtzYW5kciBB bmRydXNoY2hlbmtvCgoKWzFdIGh0dHBzOi8vd2lraS54ZW4ub3JnL3dpa2kvUGFyYXZpcnR1YWxp emF0aW9uXyhQVikjUFZfSU9fRHJpdmVycwpbMl0gaHR0cHM6Ly9lbGl4aXIuYm9vdGxpbi5jb20v bGludXgvdjQuMTYtcmMyL3NvdXJjZS9pbmNsdWRlL3hlbi9pbnRlcmZhY2UvaW8vZGlzcGxpZi5o ClszXSBodHRwczovL2dpdGh1Yi5jb20veGVuLXRyb29wcy9kaXNwbF9iZQpbNF0gaHR0cHM6Ly9n aXRodWIuY29tL3hlbi10cm9vcHMvbGlieGVuYmUKWzVdIGh0dHBzOi8veGVuYml0cy54ZW4ub3Jn L2dpdHdlYi8/cD14ZW4uZ2l0O2E9YmxvYjtmPWRvY3MvbWFuL3hsLmNmZy5wb2QuNS5pbjtoPWE2 OTkzNjc3NzllMmFlMTIxMmZmOGY2MzhlZmYwMjA2ZWMxYTFjYzk7aGI9cmVmcy9oZWFkcy9tYXN0 ZXIjbDEyNTcKWzZdIGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL2FyY2hpdmVzL2RyaS1k ZXZlbC8yMDE3LU1hcmNoLzEzNjAzOC5odG1sCls3XSBodHRwczovL3d3dy5zcGluaWNzLm5ldC9s aXN0cy9kcmktZGV2ZWwvbXNnMTY0MTAyLmh0bWwKWzhdIGh0dHBzOi8vd3d3LnNwaW5pY3MubmV0 L2xpc3RzL2RyaS1kZXZlbC9tc2cxNjQ0NjMuaHRtbApbOV0gaHR0cHM6Ly9wYXRjaHdvcmsuZnJl ZWRlc2t0b3Aub3JnL3Nlcmllcy8zODA3My8KWzEwXSBodHRwczovL3BhdGNod29yay5mcmVlZGVz a3RvcC5vcmcvc2VyaWVzLzM4MTM5LwpbMTFdIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmRyMjAwMC9s aW51eC9jb21taXRzL2RybV90aXBfcHZfZHJtX3YyCgpPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyAo OCk6CiAgZHJtL3hlbi1mcm9udDogSW50cm9kdWNlIFhlbiBwYXJhLXZpcnR1YWxpemVkIGZyb250 ZW5kIGRyaXZlcgogIGRybS94ZW4tZnJvbnQ6IEltcGxlbWVudCBYZW4gYnVzIHN0YXRlIGhhbmRs aW5nCiAgZHJtL3hlbi1mcm9udDogUmVhZCBkcml2ZXIgY29uZmlndXJhdGlvbiBmcm9tIFhlbiBz dG9yZQogIGRybS94ZW4tZnJvbnQ6IEltcGxlbWVudCBYZW4gZXZlbnQgY2hhbm5lbCBoYW5kbGlu ZwogIGRybS94ZW4tZnJvbnQ6IEltcGxlbWVudCBoYW5kbGluZyBvZiBzaGFyZWQgZGlzcGxheSBi dWZmZXJzCiAgZHJtL3hlbi1mcm9udDogSW50cm9kdWNlIERSTS9LTVMgdmlydHVhbCBkaXNwbGF5 IGRyaXZlcgogIGRybS94ZW4tZnJvbnQ6IEltcGxlbWVudCBHRU0gb3BlcmF0aW9ucyBhbmQgYmFj a2VuZCBjb21tdW5pY2F0aW9uCiAgZHJtL3hlbi1mcm9udDogUHJvdmlkZSBrZXJuZWwgZG9jdW1l bnRhdGlvbgoKIERvY3VtZW50YXRpb24vZ3B1L2luZGV4LnJzdCAgICAgICAgICAgICAgICAgfCAg IDEgKwogRG9jdW1lbnRhdGlvbi9ncHUveGVuLWZyb250LnJzdCAgICAgICAgICAgICB8ICA3NyAr KysrCiBkcml2ZXJzL2dwdS9kcm0vS2NvbmZpZyAgICAgICAgICAgICAgICAgICAgIHwgICAyICsK IGRyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogZHJp dmVycy9ncHUvZHJtL3hlbi9LY29uZmlnICAgICAgICAgICAgICAgICB8ICAzMCArKwogZHJpdmVy cy9ncHUvZHJtL3hlbi9NYWtlZmlsZSAgICAgICAgICAgICAgICB8ICAxNyArCiBkcml2ZXJzL2dw dS9kcm0veGVuL3hlbl9kcm1fZnJvbnQuYyAgICAgICAgIHwgNjkwICsrKysrKysrKysrKysrKysr KysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udC5oICAgICAgICAg fCAgNzcgKysrKwogZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250X2NmZy5jICAgICB8 ICA3NyArKysrCiBkcml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnRfY2ZnLmggICAgIHwg IDM3ICsrCiBkcml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnRfY29ubi5jICAgIHwgMTQ2 ICsrKysrKwogZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250X2Nvbm4uaCAgICB8ICAy NyArKwogZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250X2Rydi5jICAgICB8IDIzOSAr KysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnRfZHJ2LmggICAgIHwg IDc4ICsrKysKIGRyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udF9ldnRjaG5sLmMgfCAz ODMgKysrKysrKysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnRfZXZ0 Y2hubC5oIHwgIDc5ICsrKysKIGRyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udF9nZW0u YyAgICAgfCAzMzUgKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9m cm9udF9nZW0uaCAgICAgfCAgNDEgKysKIGRyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9u dF9nZW1fY21hLmMgfCAgNzQgKysrCiBkcml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnRf a21zLmMgICAgIHwgMzI0ICsrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2Ry bV9mcm9udF9rbXMuaCAgICAgfCAgMjUgKwogZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zy b250X3NoYnVmLmMgICB8IDQzMiArKysrKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL3hl bi94ZW5fZHJtX2Zyb250X3NoYnVmLmggICB8ICA3MiArKysKIDIzIGZpbGVzIGNoYW5nZWQsIDMy NjQgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IERvY3VtZW50YXRpb24vZ3B1L3hl bi1mcm9udC5yc3QKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0veGVuL0tjb25m aWcKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0veGVuL01ha2VmaWxlCiBjcmVh dGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250LmMKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnQuaAogY3JlYXRl IG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udF9jZmcuYwogY3Jl YXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udF9jZmcuaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udF9jb25u LmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnRf Y29ubi5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zy b250X2Rydi5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJt X2Zyb250X2Rydi5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5f ZHJtX2Zyb250X2V2dGNobmwuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS94 ZW4veGVuX2RybV9mcm9udF9ldnRjaG5sLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dw dS9kcm0veGVuL3hlbl9kcm1fZnJvbnRfZ2VtLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJz L2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnRfZ2VtLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2 ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnRfZ2VtX2NtYS5jCiBjcmVhdGUgbW9kZSAxMDA2 NDQgZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250X2ttcy5jCiBjcmVhdGUgbW9kZSAx MDA2NDQgZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250X2ttcy5oCiBjcmVhdGUgbW9k ZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250X3NoYnVmLmMKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnRfc2hidWYuaAoK LS0gCjIuNy40CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932891AbeCMNbU (ORCPT ); Tue, 13 Mar 2018 09:31:20 -0400 Received: from mail-lf0-f68.google.com ([209.85.215.68]:35606 "EHLO mail-lf0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932721AbeCMNbR (ORCPT ); Tue, 13 Mar 2018 09:31:17 -0400 X-Google-Smtp-Source: AG47ELsDKgdjq8wVtEpUH26wEsesmT1WQrZqOfdUZbj52c51/gv+SOo4YnIKzeB9lSxhoefFO11fDg== 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 v2 0/8] drm/xen-front: Add support for Xen PV display frontend Date: Tue, 13 Mar 2018 15:30:59 +0200 Message-Id: <1520947867-32514-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! 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 (8): drm/xen-front: Introduce Xen para-virtualized frontend driver drm/xen-front: Implement Xen bus state handling drm/xen-front: Read driver configuration from Xen store drm/xen-front: Implement Xen event channel handling drm/xen-front: Implement handling of shared display buffers drm/xen-front: Introduce DRM/KMS virtual display driver drm/xen-front: Implement GEM operations and backend communication 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