From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v2 4/4] drm/simple-kms: Let DRM core send VBLANK events by default Date: Wed, 22 Jan 2020 09:11:04 +0100 Message-ID: <20200122081104.GN43062@phenom.ffwll.local> References: <20200115125226.13843-1-tzimmermann@suse.de> <20200115125226.13843-5-tzimmermann@suse.de> <20200116064107.GB8400@dvetter-linux.ger.corp.intel.com> <33fdd33f-ce8d-70d3-544e-fac727d2686b@suse.de> <20200116235951.GD8400@dvetter-linux.ger.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Thomas Zimmermann Cc: david@lechnology.com, oleksandr_andrushchenko@epam.com, Dave Airlie , Sam Ravnborg , Emil Velikov , ML dri-devel , "open list:VIRTIO GPU DRIVER" , Hans de Goede , Laurent Pinchart , Daniel Vetter , xen-devel@lists.xenproject.org, Emil Velikov , Sean Paul , Gerd Hoffmann List-Id: virtualization@lists.linuxfoundation.org T24gRnJpLCBKYW4gMTcsIDIwMjAgYXQgMDg6MTc6MTBBTSArMDEwMCwgVGhvbWFzIFppbW1lcm1h bm4gd3JvdGU6Cj4gSGkKPiAKPiBBbSAxNy4wMS4yMCB1bSAwMDo1OSBzY2hyaWViIERhbmllbCBW ZXR0ZXI6Cj4gPiBPbiBUaHUsIEphbiAxNiwgMjAyMCBhdCAwNToyMjozNFBNICswMDAwLCBFbWls IFZlbGlrb3Ygd3JvdGU6Cj4gPj4gSGkgYWxsLAo+ID4+Cj4gPj4gT24gVGh1LCAxNiBKYW4gMjAy MCBhdCAwNzozNywgVGhvbWFzIFppbW1lcm1hbm4gPHR6aW1tZXJtYW5uQHN1c2UuZGU+IHdyb3Rl Ogo+ID4+Cj4gPj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfc3Rh dGVfaGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19zdGF0ZV9oZWxwZXIuYwo+ ID4+Pj4gaW5kZXggN2NmM2NmOTM2NTQ3Li4yM2QyZjUxZmMxZDQgMTAwNjQ0Cj4gPj4+PiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19zdGF0ZV9oZWxwZXIuYwo+ID4+Pj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfc3RhdGVfaGVscGVyLmMKPiA+Pj4+IEBAIC0xNDks NiArMTQ5LDExIEBAIHZvaWQgX19kcm1fYXRvbWljX2hlbHBlcl9jcnRjX2R1cGxpY2F0ZV9zdGF0 ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gPj4+PiAgICAgICAvKiBTZWxmIHJlZnJlc2ggc2hv dWxkIGJlIGNhbmNlbGVkIHdoZW4gYSBuZXcgdXBkYXRlIGlzIGF2YWlsYWJsZSAqLwo+ID4+Pj4g ICAgICAgc3RhdGUtPmFjdGl2ZSA9IGRybV9hdG9taWNfY3J0Y19lZmZlY3RpdmVseV9hY3RpdmUo c3RhdGUpOwo+ID4+Pj4gICAgICAgc3RhdGUtPnNlbGZfcmVmcmVzaF9hY3RpdmUgPSBmYWxzZTsK PiA+Pj4+ICsKPiA+Pj4+ICsgICAgIGlmIChkcm1fZGV2X2hhc192YmxhbmsoY3J0Yy0+ZGV2KSkK PiA+Pj4+ICsgICAgICAgICAgICAgc3RhdGUtPm5vX3ZibGFuayA9IHRydWU7Cj4gPj4+PiArICAg ICBlbHNlCj4gPj4+PiArICAgICAgICAgICAgIHN0YXRlLT5ub192YmxhbmsgPSBmYWxzZTsKPiA+ Pj4+ICB9Cj4gPj4+PiAgRVhQT1JUX1NZTUJPTChfX2RybV9hdG9taWNfaGVscGVyX2NydGNfZHVw bGljYXRlX3N0YXRlKTsKPiA+Pj4KPiA+Pj4gSSB0aGluayB0aGUgaWYvZWxzZSBicmFuY2hlcyBh cmUgaW4gdGhlIHdyb25nIG9yZGVyLgo+ID4gCj4gPiBZZWFoIGZ1bWJsZWQgdGhhdC4KPiA+IAo+ ID4+PiBCdXQgZ2VuZXJhbGx5IHNwZWFraW5nLCBpcyBpdCByZWFsbHkgdGhhdCBlYXN5PyBUaGUg eGVuIGRyaXZlciBhbHJlYWR5Cj4gPj4+IGhhcyB0byB3b3JrIGFyb3VuZCBzaW1wbGUta21zJ3Mg YXV0by1lbmFibGluZyBvZiBub192YmxhbmsgKHNlZSBwYXRjaAo+ID4+PiA0KS4gTWF5YmUgdGhp cyBzZXR0aW5ncyBpbnRlcmZlcmVzIHdpdGggb3RoZXIgZHJpdmVycyBhcyB3ZWxsLiBBdCBsZWFz dAo+ID4+PiB0aGUgY2FsbHMgZm9yIHNlbmRpbmcgZmFrZSB2YmxhbmtzIHNob3VsZCBiZSByZW1v dmVkIGZyb20gYWxsIGFmZmVjdGVkCj4gPj4+IGRyaXZlcnMuCj4gPiAKPiA+IEhtIHhlbiBpcyBy ZWFsbHkgc3BlY2lhbCwgaW4gdGhhdCBpdCBoYXMgYSBmbGlwIGNvbXBsZXRlIGV2ZW50LCBidXQg bm90IGEKPiA+IHZibGFuay4gSSB0aGluayBmb3JjaW5nIGRyaXZlcnMgdG8gb3ZlcndyaXRlIHN0 dWZmIGluIHRoYXQgY2FzZSBtYWtlcwo+ID4gc2Vuc2UuCj4gPiAKPiA+PiBJJ20gbm90IHN1cmUg aWYgc2V0dGluZyBub192YmxhbmsgYmFzZWQgb24gZGV2LT5udW1fY3J0Y3MgaXMgdGhlIGNvcnJl Y3QgdGhpbmcuCj4gPj4gRnJvbSB0aGUgb3JpZ2luYWwgY29tbWl0IGFuZCBhc3NvY2lhdGVkIGRl c2NyaXB0aW9uIGZvciBub192Ymxhbms6Cj4gPj4KPiA+PiBJbiBzb21lIGNhc2VzIENSVENzIGFy ZSBhY3RpdmUgYnV0IGFyZSBub3QgYWJsZSB0byBnZW5lcmF0aW5nIGV2ZW50cywgYXQKPiA+PiBs ZWFzdCBub3QgYXQgZXZlcnkgZnJhbWUgYXQgaXQncyBleHBlY3RlZCB0by4KPiA+PiBUaGlzIGlz IHR5cGljYWxseSB0aGUgY2FzZSB3aGVuIHRoZSBDUlRDIGlzIGZlZWRpbmcgYSB3cml0ZWJhY2sg Y29ubmVjdG9yLi4uCj4gPiAKPiA+IFllYWgsIGJ1dCBUaG9tYXMnIHNlcmllcyBoZXJlIHdhbnRz IHRvIGV4dGVuZCB0aGF0LiBBbmQgSSB0aGluayBpZiB3ZSByb2xsCj4gPiB0aGlzIG91dCB0aGUg Y29tbW9uIGNhc2Ugd2lsbCBiZSAibm8gaHcgdmJsYW5rIiwgYW5kIHRoZSB3cml0ZWJhY2sgc3Bl Y2lhbAo+IAo+IERlZmF1bHQgdmFsdWVzIHNob3VsZCB1c3VhbGx5IGJlIDAgZm9yIHphbGxvYyBh bmQgc3RhdGljIGluaXRpYWxpemVycy4KPiBTaG91bGQgd2UgcmVuYW1lIG5vX3ZibGFuayB0byBo YXNfdmJsYW5rIHRoZW4/CgpIbSwgaW1vIGZlZWxzIGxpa2UgaHcgd2l0aG91dCB2YmxhbmsgaXMg c3RpbGwgdGhlIHVuY29tbW9uIGNhc2UuIEknZCBsZWF2ZQp0aGlzIGFzLWlzLCBidXQgYWxzbyBu byBvYmplY3Rpb25zIGlmIHlvdSBmZWVsIGxpa2UgcmVwYWludGluZyA6LSkKCj4gPiBjYXNlIGlz IGdvaW5nIHRvIGJlIHRoZSBleGNlcHRpb24gdG8gdGhlIGV4Y2VwdGlvbi4gWXVwLCBwYXRjaCAx IHRoYXQKPiA+IHVwZGF0ZXMgdGhlIGRvY3MgZG9lc24ndCByZWZsZWN0IHRoYXQsIHdoaWNoIGlz IHdoeSBJJ20gYnJpbmdpbmcgdXAgbW9yZQo+ID4gc3VnZ2VzdGlvbnMgaGVyZSBhcm91bmQgY29k ZSAmIHNlbWFudGljcyBvZiBhbGwgdGhlc2UgcGllY2VzIHRvIG1ha2UgdGhlbQo+ID4gZG8gdGhl IG1vc3QgcmVhc29uYWJsZSB0aGluZyBmb3IgbW9zdCBvZiB0aGUgZHJpdmVycy4KPiA+IAo+ID4+ IFJlZmxlY3RzIHRoZSBhYmlsaXR5IG9mIGEgQ1JUQyB0byBzZW5kIFZCTEFOSyBldmVudHMuLi4u Cj4gPj4KPiA+Pgo+ID4+IFRoZSBwcm9wb3NlZCBoYW5kbGluZyBvZiBub192YmxhbmsgZmVlbHMg YSBsaXR0bGUgZGlydHksIGFsdGhvdWdoCj4gPj4gbm90aGluZyBiZXR0ZXIgY29tZXMgdG8gbWlu ZC4KPiA+PiBOZXZlcnRoZWxlc3MgY29kZSBzZWVtcyBwZXJmZWN0bHkgcmVhc29uYWJsZSwgc28g aWYgaXQgd2VyZSBtZSBJJ2QgbWVyZ2UgaXQuCj4gPiAKPiA+IFRoZSBpZGVhIHdpdGggc2V0dGlu ZyBpdCB2ZXJ5IGVhcmx5IGlzIHRoYXQgZHJpdmVycyBjYW4gb3ZlcndyaXRlIGl0IHZlcnkKPiA+ IGVhc2lseS4gRmVlbHMgc2xpZ2h0bHkgZGlydHksIHNvIEkgZ3Vlc3Mgd2UgY291bGQgYWxzbyBz ZXQgaXQgc29tZXdoZXJlIGluCj4gPiB0aGUgYXRvbWljX2hlbHBlcl9jaGVjayBmdW5jdGlvbiAo c2ltaWxhciB0byBob3cgd2Ugc2V0IHRoZSB2YXJpb3VzCj4gPiBjcnRjLT4qX2NoYW5nZWQgZmxh Z3MsIGJ1dCB3ZSdyZSBub3QgZW50aXJlbHkgY29uc2lzdGVudCBvbiB0aGVzZSBlaXRoZXIpLgo+ ID4gCj4gPiBGb3IgdGhlIG92ZXJhbGwgdGhpbmcgd2hhdCBmZWVscyBpcmt5IHRvIG1lIGlzIG1h a2luZyB0aGlzIG5vX3ZibGFuawo+ID4gZGVmYXVsdCBsb2dpYyAoaG93ZXZlciB3ZSBlbmQgdXAg Y29tcHV0aW5nIGl0IGluIHRoZSBlbmQsIHdoZXRoZXIgbGlrZQo+ID4gdGhpcyBvciB3aGF0IEkg c3VnZ2VzdGVkKSBzcGVjaWZpYyB0byBzaW1wbGUgcGlwZSBoZWxwZXJzIGZlZWxzIGtpbmRhCj4g PiB3cm9uZy4gU2ltcGxlIHBpcGUgdGVuZHMgdG8gaGF2ZSBhIGhpZ2hlciByYXRpbyBvZiBkcml2 ZXJzIGZvciBodyB3aXRob3V0Cj4gPiB2Ymxhbmsgc3VwcG9ydCwgYnV0IGJ5IGZhciBub3QgdGhl IG9ubHkgb25lcy4gSGF2aW5nIHRoYXQgc3BlY2lhbCBjYXNlCj4gPiBmZWVscyBjb25mdXNpbmcg dG8gbWUgKGFuZCBsaWtlbHkgd2lsbCB0cmlwIHVwIHNvbWUgcGVvcGxlLCB2YmxhbmsgYW5kCj4g PiBldmVudCBoYW5kbGluZyBpcyBhbHJlYWR5IGEgaHVnZSBzb3VyY2Ugb2YgY29uZnVzaW9uIGlu IGRybSkuCj4gCj4gTWFraW5nIGl0IGEgZGVmYXVsdCBmb3Igc2ltcGxlIEtNUyB3YXMgb25seSB0 aGUgc3RhcnQuIEkgaW50ZW5kZWQgdG8KPiBjb3ZlciBhbGwgZHJpdmVycyBhdCBzb21lIHBvaW50 LiBJIGp1c3QgZGlkbid0IHdhbnQgdG8gZ28gdGhyb3VnaCBhbGwKPiBkcml2ZXJzIGF0IG9uY2Uu Cj4gCj4gSSBndWVzcyBmb3IgdGhlIHBhdGNoc2V0J3MgdjMgSSdsbCBhdWRpdCBhbGwgZHJpdmVy cyBmb3IgdGhlIHVzZSBvZgo+IG5vX2JsYW5rIGFuZCBkcm1fY3J0Y19zZW5kX3ZibGFua19ldmVu dCgpOyBhbmQgY29udmVydCB0aGUgcG9zc2libGUKPiBjYW5kaWRhdGVzLgoKWWVhaCBpdCdzIGEg cGFpbiwgdGhhbmtzIGZvciB2b2x1bnRlZXJpbmcuIEp1c3QgZmlndXJlZCB0aGUgaGFsZi1zdGVw IGhlcmUKaXMgdG9vIG11Y2ggaW4gdGhlIHVuY2FubmV5IHZhbGxleS4gSWYgd2UncmUgZ29pbmcg dG8gcG9saXNoIHRoaXMsIGxldCdzCmRvIGl0IHJpZ2h0IChhbmQgd2UgaGF2ZSBwbGVudHkgZW5v dWdoIGRyaXZlcnMgdG8gbWFrZSBzdXJlIHdoYXQgd2UgcGljawp3aWxsIGJlIGEgc29saWQgY2hv aWNlIEkgdGhpbmspLgotRGFuaWVsCgo+IAo+IEJlc3QgcmVnYXJkcwo+IFRob21hcwo+IAo+ID4g Cj4gPiBPbmUgaWRlYSBiZWhpbmQgZHJtX2Rldl9oYXNfdmJsYW5rKCkgaXMgYWxzbyB0aGF0IHdl IGNvdWxkIGZvcm1hbGl6ZSBhIGJpdAo+ID4gYWxsIHRoYXQsIGF0IGxlYXN0IGZvciB0aGUgdXN1 YWwgY2FzZSAtIHhlbiBhbmQgbWF5YmUgb3RoZXJzIGJlaW5nIHNvbWUKPiA+IGV4Y2VwdGlvbnMg YXMgdXN1YWwgKGhlbmNlIGRlZmluaXRlbHkgbm90IHNvbWV0aGluZyB0aGUgY29yZSBjb2RlIHNo b3VsZAo+ID4gaGFuZGxlKS4KPiA+IAo+ID4gQ2hlZXJzLCBEYW5pZWwKPiA+IAo+IAo+IC0tIAo+ IFRob21hcyBaaW1tZXJtYW5uCj4gR3JhcGhpY3MgRHJpdmVyIERldmVsb3Blcgo+IFNVU0UgU29m dHdhcmUgU29sdXRpb25zIEdlcm1hbnkgR21iSAo+IE1heGZlbGRzdHIuIDUsIDkwNDA5IE7DvHJu YmVyZywgR2VybWFueQo+IChIUkIgMzY4MDksIEFHIE7DvHJuYmVyZykKPiBHZXNjaMOkZnRzZsO8 aHJlcjogRmVsaXggSW1lbmTDtnJmZmVyCj4gCgoKCgotLSAKRGFuaWVsIFZldHRlcgpTb2Z0d2Fy ZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3bGwuY2gKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWls aW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVu cHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.5 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id BA086C33CB6 for ; Wed, 22 Jan 2020 08:11:10 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 8CFEC2253D for ; Wed, 22 Jan 2020 08:11:10 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=ffwll.ch header.i=@ffwll.ch header.b="Irw4+vmm" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8CFEC2253D Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ffwll.ch Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 0C1A8891C2; Wed, 22 Jan 2020 08:11:10 +0000 (UTC) Received: from mail-wr1-x444.google.com (mail-wr1-x444.google.com [IPv6:2a00:1450:4864:20::444]) by gabe.freedesktop.org (Postfix) with ESMTPS id 92D2F891C2 for ; Wed, 22 Jan 2020 08:11:08 +0000 (UTC) Received: by mail-wr1-x444.google.com with SMTP id y11so6192601wrt.6 for ; Wed, 22 Jan 2020 00:11:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to; bh=MLdKRVxCu7DMITJuLsKS7CfdotJ/yffpzNPK5SH7w04=; b=Irw4+vmmfd/EzzeSAIfXlIf0O/iwwhrzJ2EV6Nhd8F+q6fvGhqu12DkAoxcAmynItK 6TRSHWgqXFuSu7mzi5hOCGAthgKfJPns57JLfDRvf1stCugqt1M7q0nq+cTIdL6WyGyG Z0H4b87gX/9OV7i8HeHBuuxltb0dVYNcnrdM4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to; bh=MLdKRVxCu7DMITJuLsKS7CfdotJ/yffpzNPK5SH7w04=; b=jQHSNjxi2UQ5BYqAq3CZBppKLsExD15qan5cPzGi1bjTaAIIkXB1cqzk37194oXq8R RVvfp5t8EmOtHYAVptAf6WSsBUAuxJC2oCVPSGz4kb4pgSRVd/iB1n0iXZ7zKPFm7XdK ziNUedMj4XhKrlaHV8Hma1loP2zHLHbSVJZ92YiD/sKtHdYhwKG1xtarS/2i6cETNQHU aaVeSXv6tutwQhsfu4IvU9lN71NlM1yecc5Y31vQa0gyylvP41SbcQjQmymXpakK3WNf azYU8Oc9goKvqDkzNgAheprANhBscpnchUne66J5fG2gicJwCHu6UlgmaxeI6na4qdJ3 nSxg== X-Gm-Message-State: APjAAAVJaGNWcjnVGzUBkBAg4muV0lpRrqpy0RaZEjgjD9h8D+jzAf5v BHy1dcQTJkKRGmfdv6lIqY640w== X-Google-Smtp-Source: APXvYqztuld4bzdmsyj2KLc1S6NdMHYyCbYLZF3FzObK/aqsm6geIifeWa3ED02AgFh0nWUH8zE+oQ== X-Received: by 2002:a5d:4651:: with SMTP id j17mr9794690wrs.237.1579680667094; Wed, 22 Jan 2020 00:11:07 -0800 (PST) Received: from phenom.ffwll.local ([2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa]) by smtp.gmail.com with ESMTPSA id w8sm3140824wmm.0.2020.01.22.00.11.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Jan 2020 00:11:06 -0800 (PST) Date: Wed, 22 Jan 2020 09:11:04 +0100 From: Daniel Vetter To: Thomas Zimmermann Subject: Re: [PATCH v2 4/4] drm/simple-kms: Let DRM core send VBLANK events by default Message-ID: <20200122081104.GN43062@phenom.ffwll.local> References: <20200115125226.13843-1-tzimmermann@suse.de> <20200115125226.13843-5-tzimmermann@suse.de> <20200116064107.GB8400@dvetter-linux.ger.corp.intel.com> <33fdd33f-ce8d-70d3-544e-fac727d2686b@suse.de> <20200116235951.GD8400@dvetter-linux.ger.corp.intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-Operating-System: Linux phenom 5.3.0-3-amd64 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: david@lechnology.com, oleksandr_andrushchenko@epam.com, Dave Airlie , Sam Ravnborg , Emil Velikov , ML dri-devel , "open list:VIRTIO GPU DRIVER" , Hans de Goede , Laurent Pinchart , xen-devel@lists.xenproject.org, Emil Velikov , Sean Paul , Gerd Hoffmann Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" On Fri, Jan 17, 2020 at 08:17:10AM +0100, Thomas Zimmermann wrote: > Hi > = > Am 17.01.20 um 00:59 schrieb Daniel Vetter: > > On Thu, Jan 16, 2020 at 05:22:34PM +0000, Emil Velikov wrote: > >> Hi all, > >> > >> On Thu, 16 Jan 2020 at 07:37, Thomas Zimmermann = wrote: > >> > >>>> diff --git a/drivers/gpu/drm/drm_atomic_state_helper.c b/drivers/gpu= /drm/drm_atomic_state_helper.c > >>>> index 7cf3cf936547..23d2f51fc1d4 100644 > >>>> --- a/drivers/gpu/drm/drm_atomic_state_helper.c > >>>> +++ b/drivers/gpu/drm/drm_atomic_state_helper.c > >>>> @@ -149,6 +149,11 @@ void __drm_atomic_helper_crtc_duplicate_state(s= truct drm_crtc *crtc, > >>>> /* Self refresh should be canceled when a new update is availa= ble */ > >>>> state->active =3D drm_atomic_crtc_effectively_active(state); > >>>> state->self_refresh_active =3D false; > >>>> + > >>>> + if (drm_dev_has_vblank(crtc->dev)) > >>>> + state->no_vblank =3D true; > >>>> + else > >>>> + state->no_vblank =3D false; > >>>> } > >>>> EXPORT_SYMBOL(__drm_atomic_helper_crtc_duplicate_state); > >>> > >>> I think the if/else branches are in the wrong order. > > = > > Yeah fumbled that. > > = > >>> But generally speaking, is it really that easy? The xen driver already > >>> has to work around simple-kms's auto-enabling of no_vblank (see patch > >>> 4). Maybe this settings interferes with other drivers as well. At lea= st > >>> the calls for sending fake vblanks should be removed from all affected > >>> drivers. > > = > > Hm xen is really special, in that it has a flip complete event, but not= a > > vblank. I think forcing drivers to overwrite stuff in that case makes > > sense. > > = > >> I'm not sure if setting no_vblank based on dev->num_crtcs is the corre= ct thing. > >> From the original commit and associated description for no_vblank: > >> > >> In some cases CRTCs are active but are not able to generating events, = at > >> least not at every frame at it's expected to. > >> This is typically the case when the CRTC is feeding a writeback connec= tor... > > = > > Yeah, but Thomas' series here wants to extend that. And I think if we r= oll > > this out the common case will be "no hw vblank", and the writeback spec= ial > = > Default values should usually be 0 for zalloc and static initializers. > Should we rename no_vblank to has_vblank then? Hm, imo feels like hw without vblank is still the uncommon case. I'd leave this as-is, but also no objections if you feel like repainting :-) > > case is going to be the exception to the exception. Yup, patch 1 that > > updates the docs doesn't reflect that, which is why I'm bringing up more > > suggestions here around code & semantics of all these pieces to make th= em > > do the most reasonable thing for most of the drivers. > > = > >> Reflects the ability of a CRTC to send VBLANK events.... > >> > >> > >> The proposed handling of no_vblank feels a little dirty, although > >> nothing better comes to mind. > >> Nevertheless code seems perfectly reasonable, so if it were me I'd mer= ge it. > > = > > The idea with setting it very early is that drivers can overwrite it ve= ry > > easily. Feels slightly dirty, so I guess we could also set it somewhere= in > > the atomic_helper_check function (similar to how we set the various > > crtc->*_changed flags, but we're not entirely consistent on these eithe= r). > > = > > For the overall thing what feels irky to me is making this no_vblank > > default logic (however we end up computing it in the end, whether like > > this or what I suggested) specific to simple pipe helpers feels kinda > > wrong. Simple pipe tends to have a higher ratio of drivers for hw witho= ut > > vblank support, but by far not the only ones. Having that special case > > feels confusing to me (and likely will trip up some people, vblank and > > event handling is already a huge source of confusion in drm). > = > Making it a default for simple KMS was only the start. I intended to > cover all drivers at some point. I just didn't want to go through all > drivers at once. > = > I guess for the patchset's v3 I'll audit all drivers for the use of > no_blank and drm_crtc_send_vblank_event(); and convert the possible > candidates. Yeah it's a pain, thanks for volunteering. Just figured the half-step here is too much in the uncanney valley. If we're going to polish this, let's do it right (and we have plenty enough drivers to make sure what we pick will be a solid choice I think). -Daniel > = > Best regards > Thomas > = > > = > > One idea behind drm_dev_has_vblank() is also that we could formalize a = bit > > all that, at least for the usual case - xen and maybe others being some > > exceptions as usual (hence definitely not something the core code should > > handle). > > = > > Cheers, Daniel > > = > = > -- = > Thomas Zimmermann > Graphics Driver Developer > SUSE Software Solutions Germany GmbH > Maxfeldstr. 5, 90409 N=FCrnberg, Germany > (HRB 36809, AG N=FCrnberg) > Gesch=E4ftsf=FChrer: Felix Imend=F6rffer > = -- = Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.5 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6FA77C32771 for ; Wed, 22 Jan 2020 08:11:33 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 3F4132253D for ; Wed, 22 Jan 2020 08:11:33 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=ffwll.ch header.i=@ffwll.ch header.b="Irw4+vmm" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 3F4132253D Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ffwll.ch Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1iuB6U-0005Sp-47; Wed, 22 Jan 2020 08:11:10 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1iuB6T-0005Sk-6N for xen-devel@lists.xenproject.org; Wed, 22 Jan 2020 08:11:09 +0000 X-Inumbo-ID: be00c01e-3cee-11ea-9fd7-bc764e2007e4 Received: from mail-wr1-x443.google.com (unknown [2a00:1450:4864:20::443]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id be00c01e-3cee-11ea-9fd7-bc764e2007e4; Wed, 22 Jan 2020 08:11:08 +0000 (UTC) Received: by mail-wr1-x443.google.com with SMTP id d16so6182534wre.10 for ; Wed, 22 Jan 2020 00:11:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to; bh=MLdKRVxCu7DMITJuLsKS7CfdotJ/yffpzNPK5SH7w04=; b=Irw4+vmmfd/EzzeSAIfXlIf0O/iwwhrzJ2EV6Nhd8F+q6fvGhqu12DkAoxcAmynItK 6TRSHWgqXFuSu7mzi5hOCGAthgKfJPns57JLfDRvf1stCugqt1M7q0nq+cTIdL6WyGyG Z0H4b87gX/9OV7i8HeHBuuxltb0dVYNcnrdM4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to; bh=MLdKRVxCu7DMITJuLsKS7CfdotJ/yffpzNPK5SH7w04=; b=D27inm1HQCSp+Bv8CL4IiJIXZAJGIzEWBdD2iKSkL6aprKHdOepD6CLWH4VPIdBT4E wbGhL/y7zN8kv36R/CjeLlPh4LzW5dgs1B5hh81fDLflA0Ou/rnPtP3b1QVzqU5wDY+W BcZmiQ7USPOhnVcGSZeOS2Vx7VLnmYDfqjofw8iv5H8/uGZNzawoUSMQY3B8dqgx+sly BZSVstY67vfI2M3f+VsFeQEq1xDslIJDH/cPWbMWnSrbxZ2rxh0jepVvU0WL7JJR5ldr ssFo+lKUGAeF5JrIm7UqO5gPBLPDG264eTUGljqLmUIbktbJBrFqngOjHSdTCPaMUyJ8 i3KA== X-Gm-Message-State: APjAAAV3MeSHhQimfSn2OBdGaJT8s3rX/uWNjVlQEOWVTE9tbk/rnACX TQsw3ll/5eFOixj6+8w2xnNIig== X-Google-Smtp-Source: APXvYqztuld4bzdmsyj2KLc1S6NdMHYyCbYLZF3FzObK/aqsm6geIifeWa3ED02AgFh0nWUH8zE+oQ== X-Received: by 2002:a5d:4651:: with SMTP id j17mr9794690wrs.237.1579680667094; Wed, 22 Jan 2020 00:11:07 -0800 (PST) Received: from phenom.ffwll.local ([2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa]) by smtp.gmail.com with ESMTPSA id w8sm3140824wmm.0.2020.01.22.00.11.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Jan 2020 00:11:06 -0800 (PST) Date: Wed, 22 Jan 2020 09:11:04 +0100 From: Daniel Vetter To: Thomas Zimmermann Message-ID: <20200122081104.GN43062@phenom.ffwll.local> References: <20200115125226.13843-1-tzimmermann@suse.de> <20200115125226.13843-5-tzimmermann@suse.de> <20200116064107.GB8400@dvetter-linux.ger.corp.intel.com> <33fdd33f-ce8d-70d3-544e-fac727d2686b@suse.de> <20200116235951.GD8400@dvetter-linux.ger.corp.intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-Operating-System: Linux phenom 5.3.0-3-amd64 Subject: Re: [Xen-devel] [PATCH v2 4/4] drm/simple-kms: Let DRM core send VBLANK events by default X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: david@lechnology.com, oleksandr_andrushchenko@epam.com, Dave Airlie , Sam Ravnborg , Emil Velikov , ML dri-devel , "open list:VIRTIO GPU DRIVER" , Hans de Goede , Laurent Pinchart , Daniel Vetter , xen-devel@lists.xenproject.org, Emil Velikov , Sean Paul , Gerd Hoffmann Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" T24gRnJpLCBKYW4gMTcsIDIwMjAgYXQgMDg6MTc6MTBBTSArMDEwMCwgVGhvbWFzIFppbW1lcm1h bm4gd3JvdGU6Cj4gSGkKPiAKPiBBbSAxNy4wMS4yMCB1bSAwMDo1OSBzY2hyaWViIERhbmllbCBW ZXR0ZXI6Cj4gPiBPbiBUaHUsIEphbiAxNiwgMjAyMCBhdCAwNToyMjozNFBNICswMDAwLCBFbWls IFZlbGlrb3Ygd3JvdGU6Cj4gPj4gSGkgYWxsLAo+ID4+Cj4gPj4gT24gVGh1LCAxNiBKYW4gMjAy MCBhdCAwNzozNywgVGhvbWFzIFppbW1lcm1hbm4gPHR6aW1tZXJtYW5uQHN1c2UuZGU+IHdyb3Rl Ogo+ID4+Cj4gPj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfc3Rh dGVfaGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19zdGF0ZV9oZWxwZXIuYwo+ ID4+Pj4gaW5kZXggN2NmM2NmOTM2NTQ3Li4yM2QyZjUxZmMxZDQgMTAwNjQ0Cj4gPj4+PiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19zdGF0ZV9oZWxwZXIuYwo+ID4+Pj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfc3RhdGVfaGVscGVyLmMKPiA+Pj4+IEBAIC0xNDks NiArMTQ5LDExIEBAIHZvaWQgX19kcm1fYXRvbWljX2hlbHBlcl9jcnRjX2R1cGxpY2F0ZV9zdGF0 ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gPj4+PiAgICAgICAvKiBTZWxmIHJlZnJlc2ggc2hv dWxkIGJlIGNhbmNlbGVkIHdoZW4gYSBuZXcgdXBkYXRlIGlzIGF2YWlsYWJsZSAqLwo+ID4+Pj4g ICAgICAgc3RhdGUtPmFjdGl2ZSA9IGRybV9hdG9taWNfY3J0Y19lZmZlY3RpdmVseV9hY3RpdmUo c3RhdGUpOwo+ID4+Pj4gICAgICAgc3RhdGUtPnNlbGZfcmVmcmVzaF9hY3RpdmUgPSBmYWxzZTsK PiA+Pj4+ICsKPiA+Pj4+ICsgICAgIGlmIChkcm1fZGV2X2hhc192YmxhbmsoY3J0Yy0+ZGV2KSkK PiA+Pj4+ICsgICAgICAgICAgICAgc3RhdGUtPm5vX3ZibGFuayA9IHRydWU7Cj4gPj4+PiArICAg ICBlbHNlCj4gPj4+PiArICAgICAgICAgICAgIHN0YXRlLT5ub192YmxhbmsgPSBmYWxzZTsKPiA+ Pj4+ICB9Cj4gPj4+PiAgRVhQT1JUX1NZTUJPTChfX2RybV9hdG9taWNfaGVscGVyX2NydGNfZHVw bGljYXRlX3N0YXRlKTsKPiA+Pj4KPiA+Pj4gSSB0aGluayB0aGUgaWYvZWxzZSBicmFuY2hlcyBh cmUgaW4gdGhlIHdyb25nIG9yZGVyLgo+ID4gCj4gPiBZZWFoIGZ1bWJsZWQgdGhhdC4KPiA+IAo+ ID4+PiBCdXQgZ2VuZXJhbGx5IHNwZWFraW5nLCBpcyBpdCByZWFsbHkgdGhhdCBlYXN5PyBUaGUg eGVuIGRyaXZlciBhbHJlYWR5Cj4gPj4+IGhhcyB0byB3b3JrIGFyb3VuZCBzaW1wbGUta21zJ3Mg YXV0by1lbmFibGluZyBvZiBub192YmxhbmsgKHNlZSBwYXRjaAo+ID4+PiA0KS4gTWF5YmUgdGhp cyBzZXR0aW5ncyBpbnRlcmZlcmVzIHdpdGggb3RoZXIgZHJpdmVycyBhcyB3ZWxsLiBBdCBsZWFz dAo+ID4+PiB0aGUgY2FsbHMgZm9yIHNlbmRpbmcgZmFrZSB2YmxhbmtzIHNob3VsZCBiZSByZW1v dmVkIGZyb20gYWxsIGFmZmVjdGVkCj4gPj4+IGRyaXZlcnMuCj4gPiAKPiA+IEhtIHhlbiBpcyBy ZWFsbHkgc3BlY2lhbCwgaW4gdGhhdCBpdCBoYXMgYSBmbGlwIGNvbXBsZXRlIGV2ZW50LCBidXQg bm90IGEKPiA+IHZibGFuay4gSSB0aGluayBmb3JjaW5nIGRyaXZlcnMgdG8gb3ZlcndyaXRlIHN0 dWZmIGluIHRoYXQgY2FzZSBtYWtlcwo+ID4gc2Vuc2UuCj4gPiAKPiA+PiBJJ20gbm90IHN1cmUg aWYgc2V0dGluZyBub192YmxhbmsgYmFzZWQgb24gZGV2LT5udW1fY3J0Y3MgaXMgdGhlIGNvcnJl Y3QgdGhpbmcuCj4gPj4gRnJvbSB0aGUgb3JpZ2luYWwgY29tbWl0IGFuZCBhc3NvY2lhdGVkIGRl c2NyaXB0aW9uIGZvciBub192Ymxhbms6Cj4gPj4KPiA+PiBJbiBzb21lIGNhc2VzIENSVENzIGFy ZSBhY3RpdmUgYnV0IGFyZSBub3QgYWJsZSB0byBnZW5lcmF0aW5nIGV2ZW50cywgYXQKPiA+PiBs ZWFzdCBub3QgYXQgZXZlcnkgZnJhbWUgYXQgaXQncyBleHBlY3RlZCB0by4KPiA+PiBUaGlzIGlz IHR5cGljYWxseSB0aGUgY2FzZSB3aGVuIHRoZSBDUlRDIGlzIGZlZWRpbmcgYSB3cml0ZWJhY2sg Y29ubmVjdG9yLi4uCj4gPiAKPiA+IFllYWgsIGJ1dCBUaG9tYXMnIHNlcmllcyBoZXJlIHdhbnRz IHRvIGV4dGVuZCB0aGF0LiBBbmQgSSB0aGluayBpZiB3ZSByb2xsCj4gPiB0aGlzIG91dCB0aGUg Y29tbW9uIGNhc2Ugd2lsbCBiZSAibm8gaHcgdmJsYW5rIiwgYW5kIHRoZSB3cml0ZWJhY2sgc3Bl Y2lhbAo+IAo+IERlZmF1bHQgdmFsdWVzIHNob3VsZCB1c3VhbGx5IGJlIDAgZm9yIHphbGxvYyBh bmQgc3RhdGljIGluaXRpYWxpemVycy4KPiBTaG91bGQgd2UgcmVuYW1lIG5vX3ZibGFuayB0byBo YXNfdmJsYW5rIHRoZW4/CgpIbSwgaW1vIGZlZWxzIGxpa2UgaHcgd2l0aG91dCB2YmxhbmsgaXMg c3RpbGwgdGhlIHVuY29tbW9uIGNhc2UuIEknZCBsZWF2ZQp0aGlzIGFzLWlzLCBidXQgYWxzbyBu byBvYmplY3Rpb25zIGlmIHlvdSBmZWVsIGxpa2UgcmVwYWludGluZyA6LSkKCj4gPiBjYXNlIGlz IGdvaW5nIHRvIGJlIHRoZSBleGNlcHRpb24gdG8gdGhlIGV4Y2VwdGlvbi4gWXVwLCBwYXRjaCAx IHRoYXQKPiA+IHVwZGF0ZXMgdGhlIGRvY3MgZG9lc24ndCByZWZsZWN0IHRoYXQsIHdoaWNoIGlz IHdoeSBJJ20gYnJpbmdpbmcgdXAgbW9yZQo+ID4gc3VnZ2VzdGlvbnMgaGVyZSBhcm91bmQgY29k ZSAmIHNlbWFudGljcyBvZiBhbGwgdGhlc2UgcGllY2VzIHRvIG1ha2UgdGhlbQo+ID4gZG8gdGhl IG1vc3QgcmVhc29uYWJsZSB0aGluZyBmb3IgbW9zdCBvZiB0aGUgZHJpdmVycy4KPiA+IAo+ID4+ IFJlZmxlY3RzIHRoZSBhYmlsaXR5IG9mIGEgQ1JUQyB0byBzZW5kIFZCTEFOSyBldmVudHMuLi4u Cj4gPj4KPiA+Pgo+ID4+IFRoZSBwcm9wb3NlZCBoYW5kbGluZyBvZiBub192YmxhbmsgZmVlbHMg YSBsaXR0bGUgZGlydHksIGFsdGhvdWdoCj4gPj4gbm90aGluZyBiZXR0ZXIgY29tZXMgdG8gbWlu ZC4KPiA+PiBOZXZlcnRoZWxlc3MgY29kZSBzZWVtcyBwZXJmZWN0bHkgcmVhc29uYWJsZSwgc28g aWYgaXQgd2VyZSBtZSBJJ2QgbWVyZ2UgaXQuCj4gPiAKPiA+IFRoZSBpZGVhIHdpdGggc2V0dGlu ZyBpdCB2ZXJ5IGVhcmx5IGlzIHRoYXQgZHJpdmVycyBjYW4gb3ZlcndyaXRlIGl0IHZlcnkKPiA+ IGVhc2lseS4gRmVlbHMgc2xpZ2h0bHkgZGlydHksIHNvIEkgZ3Vlc3Mgd2UgY291bGQgYWxzbyBz ZXQgaXQgc29tZXdoZXJlIGluCj4gPiB0aGUgYXRvbWljX2hlbHBlcl9jaGVjayBmdW5jdGlvbiAo c2ltaWxhciB0byBob3cgd2Ugc2V0IHRoZSB2YXJpb3VzCj4gPiBjcnRjLT4qX2NoYW5nZWQgZmxh Z3MsIGJ1dCB3ZSdyZSBub3QgZW50aXJlbHkgY29uc2lzdGVudCBvbiB0aGVzZSBlaXRoZXIpLgo+ ID4gCj4gPiBGb3IgdGhlIG92ZXJhbGwgdGhpbmcgd2hhdCBmZWVscyBpcmt5IHRvIG1lIGlzIG1h a2luZyB0aGlzIG5vX3ZibGFuawo+ID4gZGVmYXVsdCBsb2dpYyAoaG93ZXZlciB3ZSBlbmQgdXAg Y29tcHV0aW5nIGl0IGluIHRoZSBlbmQsIHdoZXRoZXIgbGlrZQo+ID4gdGhpcyBvciB3aGF0IEkg c3VnZ2VzdGVkKSBzcGVjaWZpYyB0byBzaW1wbGUgcGlwZSBoZWxwZXJzIGZlZWxzIGtpbmRhCj4g PiB3cm9uZy4gU2ltcGxlIHBpcGUgdGVuZHMgdG8gaGF2ZSBhIGhpZ2hlciByYXRpbyBvZiBkcml2 ZXJzIGZvciBodyB3aXRob3V0Cj4gPiB2Ymxhbmsgc3VwcG9ydCwgYnV0IGJ5IGZhciBub3QgdGhl IG9ubHkgb25lcy4gSGF2aW5nIHRoYXQgc3BlY2lhbCBjYXNlCj4gPiBmZWVscyBjb25mdXNpbmcg dG8gbWUgKGFuZCBsaWtlbHkgd2lsbCB0cmlwIHVwIHNvbWUgcGVvcGxlLCB2YmxhbmsgYW5kCj4g PiBldmVudCBoYW5kbGluZyBpcyBhbHJlYWR5IGEgaHVnZSBzb3VyY2Ugb2YgY29uZnVzaW9uIGlu IGRybSkuCj4gCj4gTWFraW5nIGl0IGEgZGVmYXVsdCBmb3Igc2ltcGxlIEtNUyB3YXMgb25seSB0 aGUgc3RhcnQuIEkgaW50ZW5kZWQgdG8KPiBjb3ZlciBhbGwgZHJpdmVycyBhdCBzb21lIHBvaW50 LiBJIGp1c3QgZGlkbid0IHdhbnQgdG8gZ28gdGhyb3VnaCBhbGwKPiBkcml2ZXJzIGF0IG9uY2Uu Cj4gCj4gSSBndWVzcyBmb3IgdGhlIHBhdGNoc2V0J3MgdjMgSSdsbCBhdWRpdCBhbGwgZHJpdmVy cyBmb3IgdGhlIHVzZSBvZgo+IG5vX2JsYW5rIGFuZCBkcm1fY3J0Y19zZW5kX3ZibGFua19ldmVu dCgpOyBhbmQgY29udmVydCB0aGUgcG9zc2libGUKPiBjYW5kaWRhdGVzLgoKWWVhaCBpdCdzIGEg cGFpbiwgdGhhbmtzIGZvciB2b2x1bnRlZXJpbmcuIEp1c3QgZmlndXJlZCB0aGUgaGFsZi1zdGVw IGhlcmUKaXMgdG9vIG11Y2ggaW4gdGhlIHVuY2FubmV5IHZhbGxleS4gSWYgd2UncmUgZ29pbmcg dG8gcG9saXNoIHRoaXMsIGxldCdzCmRvIGl0IHJpZ2h0IChhbmQgd2UgaGF2ZSBwbGVudHkgZW5v dWdoIGRyaXZlcnMgdG8gbWFrZSBzdXJlIHdoYXQgd2UgcGljawp3aWxsIGJlIGEgc29saWQgY2hv aWNlIEkgdGhpbmspLgotRGFuaWVsCgo+IAo+IEJlc3QgcmVnYXJkcwo+IFRob21hcwo+IAo+ID4g Cj4gPiBPbmUgaWRlYSBiZWhpbmQgZHJtX2Rldl9oYXNfdmJsYW5rKCkgaXMgYWxzbyB0aGF0IHdl IGNvdWxkIGZvcm1hbGl6ZSBhIGJpdAo+ID4gYWxsIHRoYXQsIGF0IGxlYXN0IGZvciB0aGUgdXN1 YWwgY2FzZSAtIHhlbiBhbmQgbWF5YmUgb3RoZXJzIGJlaW5nIHNvbWUKPiA+IGV4Y2VwdGlvbnMg YXMgdXN1YWwgKGhlbmNlIGRlZmluaXRlbHkgbm90IHNvbWV0aGluZyB0aGUgY29yZSBjb2RlIHNo b3VsZAo+ID4gaGFuZGxlKS4KPiA+IAo+ID4gQ2hlZXJzLCBEYW5pZWwKPiA+IAo+IAo+IC0tIAo+ IFRob21hcyBaaW1tZXJtYW5uCj4gR3JhcGhpY3MgRHJpdmVyIERldmVsb3Blcgo+IFNVU0UgU29m dHdhcmUgU29sdXRpb25zIEdlcm1hbnkgR21iSAo+IE1heGZlbGRzdHIuIDUsIDkwNDA5IE7DvHJu YmVyZywgR2VybWFueQo+IChIUkIgMzY4MDksIEFHIE7DvHJuYmVyZykKPiBHZXNjaMOkZnRzZsO8 aHJlcjogRmVsaXggSW1lbmTDtnJmZmVyCj4gCgoKCgotLSAKRGFuaWVsIFZldHRlcgpTb2Z0d2Fy ZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3bGwuY2gKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWls aW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVu cHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=