From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Siqueira Subject: Re: [PATCH] drm/vkms: Solve bug on kms_crc_cursor tests Date: Sun, 10 Mar 2019 17:35:05 -0300 Message-ID: <20190310203505.2needmil76a4rc74@smtp.gmail.com> References: <20190225142606.gov32asdq3qe375q@smtp.gmail.com> <20190228101107.GL2665@phenom.ffwll.local> <20190228140341.GG20097@intel.com> <20190301152558.GR20097@intel.com> <20190301184147.GS20097@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qt1-x842.google.com (mail-qt1-x842.google.com [IPv6:2607:f8b0:4864:20::842]) by gabe.freedesktop.org (Postfix) with ESMTPS id 84ADA89B5F for ; Sun, 10 Mar 2019 20:35:11 +0000 (UTC) Received: by mail-qt1-x842.google.com with SMTP id s1so2912008qte.5 for ; Sun, 10 Mar 2019 13:35:11 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20190301184147.GS20097@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Ville =?utf-8?B?U3lyasOkbMOk?= Cc: David Airlie , Shayenne Moura , Linux Kernel Mailing List , dri-devel , Haneen Mohammed List-Id: dri-devel@lists.freedesktop.org T24gMDMvMDEsIFZpbGxlIFN5cmrDpGzDpCB3cm90ZToKPiBPbiBGcmksIE1hciAwMSwgMjAxOSBh dCAwMzozNTozNVBNIC0wMzAwLCBTaGF5ZW5uZSBNb3VyYSB3cm90ZToKPiA+IEVtIHNleCwgMSBk ZSBtYXIgZGUgMjAxOSDDoHMgMTI6MjYsIFZpbGxlIFN5cmrDpGzDpAo+ID4gPHZpbGxlLnN5cmph bGFAbGludXguaW50ZWwuY29tPiBlc2NyZXZldToKPiA+ID4KPiA+ID4gT24gRnJpLCBNYXIgMDEs IDIwMTkgYXQgMTE6NTU6MTFBTSAtMDMwMCwgU2hheWVubmUgTW91cmEgd3JvdGU6Cj4gPiA+ID4g RW0gcXVpLCAyOCBkZSBmZXYgZGUgMjAxOSDDoHMgMTE6MDMsIFZpbGxlIFN5cmrDpGzDpAo+ID4g PiA+IDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4gZXNjcmV2ZXU6Cj4gPiA+ID4gPgo+ ID4gPiA+ID4gT24gVGh1LCBGZWIgMjgsIDIwMTkgYXQgMTE6MTE6MDdBTSArMDEwMCwgRGFuaWVs IFZldHRlciB3cm90ZToKPiA+ID4gPiA+ID4gT24gTW9uLCBGZWIgMjUsIDIwMTkgYXQgMTE6MjY6 MDZBTSAtMDMwMCwgU2hheWVubmUgTW91cmEgd3JvdGU6Cj4gPiA+ID4gPiA+ID4gdmttc19jcmNf d29ya19oYW5kbGUgbmVlZHMgdGhlIHZhbHVlIG9mIHRoZSBhY3R1YWwgZnJhbWUgdG8KPiA+ID4g PiA+ID4gPiBzY2hlZHVsZSB0aGUgd29ya3F1ZXVlIHRoYXQgY2FsbHMgcGVyaW9kaWNhbGx5IHRo ZSB2YmxhbmsKPiA+ID4gPiA+ID4gPiBoYW5kbGVyIGFuZCB0aGUgZGVzdHJveSBzdGF0ZSBmdW5j dGlvbnMuIEhvd2V2ZXIsIHRoZSBmcmFtZQo+ID4gPiA+ID4gPiA+IHZhbHVlIHJldHVybmVkIGZy b20gdmttc192Ymxhbmtfc2ltdWxhdGUgaXMgdXBkYXRlZCBhbmQKPiA+ID4gPiA+ID4gPiBkaW1p bmlzaGVkIGluIHZibGFua19nZXRfdGltZXN0YW1wIGJlY2F1c2UgaXQgaXMgbm90IGluIGEKPiA+ ID4gPiA+ID4gPiB2YmxhbmsgaW50ZXJydXB0LCBhbmQgcmV0dXJuIGFuIGluYWNjdXJhdGUgdmFs dWUuCj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiBTb2x2ZSB0aGlzIGdldHRpbmcgdGhlIGFj dHVhbCB2YmxhbmsgZnJhbWUgZGlyZWN0bHkgZnJvbSB0aGUKPiA+ID4gPiA+ID4gPiB2Ymxhbmst PmNvdW50IGluc2lkZSB0aGUgYHN0cnVjdCBkcm1fY3J0Y2AsIGluc3RlYWQgb2YgdXNpbmcKPiA+ ID4gPiA+ID4gPiB0aGUgYGRybV9hY2N1cmF0ZV92YmxhbmtfY291bnRgIGZ1bmN0aW9uLgo+ID4g PiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gU2lnbmVkLW9mZi1ieTogU2hheWVubmUgTW91cmEgPHNo YXllbm5lbHV6bW91cmFAZ21haWwuY29tPgo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBTb3JyeSBm b3IgdGhlIGRlbGF5LCBJJ20gYSBiaXQgc3dhbXBlZCByaWdodCBub3cgOi0vCj4gPiA+ID4gPiA+ Cj4gPiA+ID4gPiA+IERlYnVnIHdvcmsgeW91J3JlIGRvaW5nIGhlcmUgaXMgcmVhbGx5IGltcHJl c3NpdmUhIEJ1dCBJIGhhdmUgbm8gaWRlYQo+ID4gPiA+ID4gPiB3aGF0J3MgZ29pbmcgb24uIEl0 IGRvZXNuJ3QgbG9vayBsaWtlIGl0J3MganVzdCBwYXBlcmluZyBvdmVyIGEgYnVnIChsaWtlCj4g PiA+ID4gPiA+IHRoZSBpbl92YmxhbmtfaXJxIGNoZWNrIHdlJ3ZlIGRpc2N1c3NlZCBvbiBpcmMp LCBidXQgSSBhbHNvIGhhdmUgbm8gaWRlYQo+ID4gPiA+ID4gPiB3aHkgaXQgd29ya3MuCj4gPiA+ ID4gPiA+Cj4gPiA+ID4gPiA+IEknbGwgcHVsbCBpbiBWaWxsZSwgaGUgdW5kZXJzdGFuZHMgdGhp cyBiZXR0ZXIgdGhhbiBtZS4KPiA+ID4gPiA+Cj4gPiA+ID4gPiBJdCdzIG5vdCBlbnRpcmVseSBj bGVhciB3aGF0IHdlJ3JlIHRyeWluZyB0byBmaXguIEZyb20gd2hhdCBJIGNhbiBzZWUKPiA+ID4g PiA+IHRoZSBjcmMgd29yayBzZWVtcyB0byBiZSBpbiBubyB3YXkgc3luY2hyb25pemVkIHdpdGgg cGFnZSBmbGlwcywgc28KPiA+ID4gPiA+IEknbSBub3Qgc3VyZSBob3cgYWxsIHRoaXMgaXMgcmVh bGx5IHN1cHBvc2VkIHRvIHdvcmsuCj4gPiA+ID4gPgo+ID4gPiA+Cj4gPiA+ID4gSGksIFZpbGxl IQo+ID4gPiA+Cj4gPiA+ID4gVGhhbmsgeW91IGZvciB0aGUgcmV2aWV3ISA6KQo+ID4gPiA+Cj4g PiA+ID4gSSBkbyBub3QgdW5kZXJzdGFuZCB3ZWxsIHdoYXQgY3JjIGNvZGUgaXMgZG9pbmcsIGJ1 dCB0aGUgaXNzdWUgdGhhdCBJIGZvdW5kCj4gPiA+ID4gaXMgcmVsYXRlZCB0byB0aGUgdmJsYW5r IHRpbWVzdGFtcCBhbmQgZnJhbWUgY291bnQuCj4gPiA+ID4KPiA+ID4gPiBXaGVuIHZrbXMgaGFu ZGxlcyB0aGUgY3JjX2N1cnNvciBpdCB1c2VzIHRoZSBzdGFydCBmcmFtZSBhbmQgZW5kIGZyYW1l Cj4gPiA+ID4gdmFsdWVzIHRvIHZlcmlmeSBpZiBpdCBuZWVkcyB0byBjYWxsIHRoZSBmdW5jdGlv biAnZHJtX2NydGNfYWRkX2NyY19lbnRyeSgpJwo+ID4gPiA+IGZvciBlYWNoIGZyYW1lLgo+ID4g PiA+Cj4gPiA+ID4gSG93ZXZlciwgd2hlbiBnZXR0aW5nIHRoZSBmcmFtZSBjb3VudCwgdGhlIGNv ZGUgaXMgY2FsbGluZyB0aGUgZnVuY3Rpb24KPiA+ID4gPiBkcm1fdXBkYXRlX3ZibGFua19jb3Vu dChkZXYsIHBpcGUsIGZhbHNlKSBhbmQsIGJlY2F1c2Ugb2YgdGhlICdmYWxzZScsCj4gPiA+ID4g c3VidHJhY3RpbmcgdGhlIGFjdHVhbCB2YmxhbmsgdGltZXN0YW1wIChjb25zZXF1ZW50bHksIHRo ZSBmcmFtZSBjb3VudAo+ID4gPiA+IHZhbHVlKSwgY2F1c2luZyBjb25mbGljdHMuCj4gPiA+Cj4g PiA+IFRoZSBpbl92YmxhbmtfaXJxIGJlaGF2b3VyIGxvb2tzIHNhbmUgdG8gbWUuIFdoYXQgYXJl IHRoZXNlIGNvbmZsaWN0cz8KPiA+ID4KPiA+IAo+ID4gVGhlIGVudGlyZSBoaXN0b3J5IHdhczoK PiA+ICAtIEkgc2VudCB0aGUgcGF0Y2ggd2l0aCBidWdmaXggZm9yIHZibGFuayBleHRyYSBmcmFt ZS4gVGhlIHBhdGNoIGNoYW5nZWQKPiA+ICAgIG91ciBmdW5jdGlvbiB2a21zX2dldF92Ymxhbmtf dGltZXN0YW1wKCkgdG8gbG9vayBsaWtlIHRoaXM6Cj4gPiAKPiA+IGJvb2wgdmttc19nZXRfdmJs YW5rX3RpbWVzdGFtcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSwK PiA+ICAgICAgICAgICAgICAgICAgICBpbnQgKm1heF9lcnJvciwga3RpbWVfdCAqdmJsYW5rX3Rp bWUsCj4gPiAgICAgICAgICAgICAgICAgICAgYm9vbCBpbl92YmxhbmtfaXJxKQo+ID4gewo+ID4g ICAgIHN0cnVjdCB2a21zX2RldmljZSAqdmttc2RldiA9IGRybV9kZXZpY2VfdG9fdmttc19kZXZp Y2UoZGV2KTsKPiA+ICAgICBzdHJ1Y3Qgdmttc19vdXRwdXQgKm91dHB1dCA9ICZ2a21zZGV2LT5v dXRwdXQ7Cj4gPiAKPiA+ICAgICAqdmJsYW5rX3RpbWUgPSBvdXRwdXQtPnZibGFua19ocnRpbWVy Lm5vZGUuZXhwaXJlczsKPiA+IAo+ID4gKyAgIGlmICghaW5fdmJsYW5rX2lycSkKPiA+ICsgICAg ICAgICp2YmxhbmtfdGltZSAtPSBvdXRwdXQtPnBlcmlvZF9uczsKPiA+IAo+ID4gICAgIHJldHVy biB0cnVlOwo+ID4gfQo+ID4gCj4gPiAgLSBUaGlzIHBhdGNoIHNvbHZlIHRoZSBpc3N1ZSB0aGF0 IEkgd2FzIGxvb2tpbmcgZm9yIChleHRyYSB2YmxhbmsKPiA+IGZyYW1lcyBvbiBrbXNfZmxpcCku Cj4gPiAKPiA+ICAtIEhvd2V2ZXIsIGttc19jdXJzb3JfY3JjIHRlc3RzLCB3aGljaCBwYXNzZWQg YmVmb3JlIG15IHBhdGNoLCBzdGFydGVkIHRvIGZhaWwuCj4gPiAKPiA+ICAtIERlYnVnZ2luZyB0 aGVtLCBJIGZvdW5kIHRoYXQgdGhlIHByb2JsZW0gd2FzIGluc2lkZSBvZiBmdW5jdGlvbgo+ID4g YHZrbXNfdmJsYW5rX3NpbXVsYXRlKClgCj4gPiB3aGVuIGl0IHdhcyBoYW5kbGluZyB0aGUgY3Jj X2VuYWJsZWQgKGluc2lkZSAgaWYgKHN0YXRlICYmIG91dHB1dC0+Y3JjX2VuYWJsZWQpKQo+ID4g YW5kIGluc2lkZSB0aGUgZnVuY3Rpb24gdmttc19jcmNfd29ya19oYW5kbGUoKSB0b28uCj4gPiAK PiA+ICAtIEZvbGxvd2luZyB0aGUgc3RlcHM6Cj4gPiAxLiBJbnNpZGUgdmttc192Ymxhbmtfc2lt dWxhdGUoKSB3ZSBjYWxsIGRybV9jcnRjX2FjY3VyYXRlX3ZibGFua19jb3VudCgpCj4gPiAyLiBJ biBpdHMgdHVybiwgZHJtX2NydGNfYWNjdXJhdGVfdmJsYW5rX2NvdW50KCkgY2FsbHMgdGhlIGZ1 bmN0aW9uCj4gPiAgICBkcm1fdXBkYXRlX3ZibGFua19jb3VudChkZXYsIHBpcGUsIGZhbHNlKS4g IC8qIFRoaXMgZmFsc2UgaXMgZGVmYXVsdCAqLwo+ID4gMy4gRmluYWxseSwgdGhlIOKAnGZhbHNl 4oCdIHVzZWQgaW4gZHJtX3VwZGF0ZV92YmxhbmtfY291bnQoKSwgd2lsbCBiZQo+ID4gICBwYXNz ZWQgdG8gdmttc19nZXRfdmJsYW5rX3RpbWVzdGFtcCgpIGFuZCB0aGUgY29uZGl0aW9uIOKAnGlm Cj4gPiAgICghaW5fdmJsYW5rX2lycSnigJ0gd2lsbCBiZSBleGVjdXRlZCBtdWx0aXBsZSB0aW1l cyAod2UgZG9u4oCZdCB3YW50IGl0KS4KPiA+IAo+ID4gIC0gSW5zaWRlIHZrbXNfY3JjLCB0aGUg aXNzdWUgaXMgdGhhdCB0aGUgcmV0dXJuZWQgZnJhbWUgdmFsdWUgY2hhbmdlIGZvcgo+ID4gZXZl cnkgY2FsbCBvZiBkcm1fY3J0Y19hY2N1cmF0ZV92YmxhbmtfY291bnQoKSBiZWNhdXNlCj4gPiBp bl92YmxhbmtfaXJxID09IGZhbHNlLgoKSGkgVmlsbGUsCiAKPiBPSy4gU28gd2h5IGlzIGl0IGNo YW5naW5nPyBBRkFJQ1MgaXQgc2hvdWxkIG5vdCBjaGFuZ2UgdW5sZXNzIHRoZQo+IHRpbWVyIHdh cyBtb3ZlZCBmb3J3YXJkIGluIGJldHdlZW4gdGhlIGNhbGxzLgoKWWVzIFZpbGxlLCB5b3XigJly ZSByaWdodC4gV2UgaGF2ZSB0byB1cGRhdGUgaXQgb25seSB3aGVuIHRoZSBmdW5jdGlvbgp2a21z X3ZibGFua19zaW11bGF0ZSgpIGlzIGludm9rZWQgKHRpbWVyIG1vdmUgZm9yd2FyZCksIGFuZCBG V0lVIHdlIGRvCml0IHdoZW4gd2UgY2FsbCBkcm1fY3J0Y19oYW5kbGVfdmJsYW5rKCkuIEhvd2V2 ZXIsIHRoZSBjdXJyZW50CmltcGxlbWVudGF0aW9uIG9mIHZrbXMsIGhhcyBhIGNhbGwgdG8gZHJt X2NydGNfYWNjdXJhdGVfdmJsYW5rX2NvdW50KCkKaW5zaWRlIHRoZSB2a21zX3ZibGFua19zaW11 bGF0ZSgpIHdoaWNoIGlzIGEgcHJvYmxlbSBiZWNhdXNlIGl0IGFsc28KdXBkYXRlIHRoZSB2Ymxh bmsgdmFsdWUuIEZXSVUsIHRoaXMgcGF0Y2ggZml4ZXMgdGhpcyBpc3N1ZSBieSB0YWtpbmcgdGhl CmNvdW50IHZhbHVlIGluIHRoZSBkYXRhIHN0cnVjdCBpbnN0ZWFkIG9mIGNhbGwKZHJtX2NydGNf YWNjdXJhdGVfdmJsYW5rX2NvdW50KCkgd2hpY2ggd2lsbCBhdm9pZCB0aGUgZXh0cmEgdXBkYXRl LgoKVGhhbmtzLApCZXN0IFJlZ2FyZHMKIAo+ID4gCj4gPiAgLSBUbyBzb2x2ZSB0aGlzLCBJIHVz ZWQgdGhlIHZhbHVlIGFscmVhZHkgY2FsY3VsYXRlZCBvbiB2YmxhbmstPmNvdW50LAo+ID4gaW5z dGVhZCBvZiB1c2luZyB0aGUgaGVscGVyIGZ1bmN0aW9uIHRoYXQgdXBkYXRlcyB0aGUgdmFsdWUu Cj4gPiAKPiA+IFNoYXllbm5lCj4gPiAKPiA+ID4gPgo+ID4gPiA+IERvZXMgaXQgbWFrZSBzZW5z ZT8gSSBhbSBub3Qgc3VyZSBhYm91dCB0aGlzIGNyYyBjb2RlIGJlaGF2aW9yLgo+ID4gPiA+Cj4g PiA+ID4gU2hheWVubmUKPiA+ID4gPgo+ID4gPiA+ID4gPiAtRGFuaWVsCj4gPiA+ID4gPiA+Cj4g PiA+ID4gPiA+ID4gLS0tCj4gPiA+ID4gPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNf Y3JjLmMgIHwgNCArKystCj4gPiA+ID4gPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNf Y3J0Yy5jIHwgNCArKystCj4gPiA+ID4gPiA+ID4gIDIgZmlsZXMgY2hhbmdlZCwgNiBpbnNlcnRp b25zKCspLCAyIGRlbGV0aW9ucygtKQo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfY3JjLmMgYi9kcml2ZXJzL2dwdS9kcm0v dmttcy92a21zX2NyYy5jCj4gPiA+ID4gPiA+ID4gaW5kZXggZDdiNDA5YTNjMGY4Li4wOWE4YjAw ZWYxZjEgMTAwNjQ0Cj4gPiA+ID4gPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmtt c19jcmMuYwo+ID4gPiA+ID4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfY3Jj LmMKPiA+ID4gPiA+ID4gPiBAQCAtMTYxLDYgKzE2MSw4IEBAIHZvaWQgdmttc19jcmNfd29ya19o YW5kbGUoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQo+ID4gPiA+ID4gPiA+ICAgICBzdHJ1Y3Qg dmttc19vdXRwdXQgKm91dCA9IGRybV9jcnRjX3RvX3ZrbXNfb3V0cHV0KGNydGMpOwo+ID4gPiA+ ID4gPiA+ICAgICBzdHJ1Y3Qgdmttc19kZXZpY2UgKnZkZXYgPSBjb250YWluZXJfb2Yob3V0LCBz dHJ1Y3Qgdmttc19kZXZpY2UsCj4gPiA+ID4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBvdXRwdXQpOwo+ID4gPiA+ID4gPiA+ICsgICB1bnNpZ25lZCBp bnQgcGlwZSA9IGRybV9jcnRjX2luZGV4KGNydGMpOwo+ID4gPiA+ID4gPiA+ICsgICBzdHJ1Y3Qg ZHJtX3ZibGFua19jcnRjICp2YmxhbmsgPSAmY3J0Yy0+ZGV2LT52YmxhbmtbcGlwZV07Cj4gPiA+ ID4gPiA+ID4gICAgIHN0cnVjdCB2a21zX2NyY19kYXRhICpwcmltYXJ5X2NyYyA9IE5VTEw7Cj4g PiA+ID4gPiA+ID4gICAgIHN0cnVjdCB2a21zX2NyY19kYXRhICpjdXJzb3JfY3JjID0gTlVMTDsK PiA+ID4gPiA+ID4gPiAgICAgc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7Cj4gPiA+ID4gPiA+ID4g QEAgLTE5Niw3ICsxOTgsNyBAQCB2b2lkIHZrbXNfY3JjX3dvcmtfaGFuZGxlKHN0cnVjdCB3b3Jr X3N0cnVjdCAqd29yaykKPiA+ID4gPiA+ID4gPiAgICAgaWYgKHByaW1hcnlfY3JjKQo+ID4gPiA+ ID4gPiA+ICAgICAgICAgICAgIGNyYzMyID0gX3ZrbXNfZ2V0X2NyYyhwcmltYXJ5X2NyYywgY3Vy c29yX2NyYyk7Cj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiAtICAgZnJhbWVfZW5kID0gZHJt X2NydGNfYWNjdXJhdGVfdmJsYW5rX2NvdW50KGNydGMpOwo+ID4gPiA+ID4gPiA+ICsgICBmcmFt ZV9lbmQgPSB2YmxhbmstPmNvdW50Owo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gICAgIC8q IHF1ZXVlX3dvcmsgY2FuIGZhaWwgdG8gc2NoZWR1bGUgY3JjX3dvcms7IGFkZCBjcmMgZm9yCj4g PiA+ID4gPiA+ID4gICAgICAqIG1pc3NpbmcgZnJhbWVzCj4gPiA+ID4gPiA+ID4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfY3J0Yy5jIGIvZHJpdmVycy9ncHUvZHJtL3Zr bXMvdmttc19jcnRjLmMKPiA+ID4gPiA+ID4gPiBpbmRleCA4YTlhZWIwYTllYTguLjliZjMyNjhl MmU5MiAxMDA2NDQKPiA+ID4gPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21z X2NydGMuYwo+ID4gPiA+ID4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfY3J0 Yy5jCj4gPiA+ID4gPiA+ID4gQEAgLTEwLDYgKzEwLDggQEAgc3RhdGljIGVudW0gaHJ0aW1lcl9y ZXN0YXJ0IHZrbXNfdmJsYW5rX3NpbXVsYXRlKHN0cnVjdCBocnRpbWVyICp0aW1lcikKPiA+ID4g PiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmJs YW5rX2hydGltZXIpOwo+ID4gPiA+ID4gPiA+ICAgICBzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSAm b3V0cHV0LT5jcnRjOwo+ID4gPiA+ID4gPiA+ICAgICBzdHJ1Y3Qgdmttc19jcnRjX3N0YXRlICpz dGF0ZSA9IHRvX3ZrbXNfY3J0Y19zdGF0ZShjcnRjLT5zdGF0ZSk7Cj4gPiA+ID4gPiA+ID4gKyAg IHVuc2lnbmVkIGludCBwaXBlID0gZHJtX2NydGNfaW5kZXgoY3J0Yyk7Cj4gPiA+ID4gPiA+ID4g KyAgIHN0cnVjdCBkcm1fdmJsYW5rX2NydGMgKnZibGFuayA9ICZjcnRjLT5kZXYtPnZibGFua1tw aXBlXTsKPiA+ID4gPiA+ID4gPiAgICAgdTY0IHJldF9vdmVycnVuOwo+ID4gPiA+ID4gPiA+ICAg ICBib29sIHJldDsKPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+IEBAIC0yMCw3ICsyMiw3IEBA IHN0YXRpYyBlbnVtIGhydGltZXJfcmVzdGFydCB2a21zX3ZibGFua19zaW11bGF0ZShzdHJ1Y3Qg aHJ0aW1lciAqdGltZXIpCj4gPiA+ID4gPiA+ID4gICAgICAgICAgICAgRFJNX0VSUk9SKCJ2a21z IGZhaWx1cmUgb24gaGFuZGxpbmcgdmJsYW5rIik7Cj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4g PiAgICAgaWYgKHN0YXRlICYmIG91dHB1dC0+Y3JjX2VuYWJsZWQpIHsKPiA+ID4gPiA+ID4gPiAt ICAgICAgICAgICB1NjQgZnJhbWUgPSBkcm1fY3J0Y19hY2N1cmF0ZV92YmxhbmtfY291bnQoY3J0 Yyk7Cj4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgdTY0IGZyYW1lID0gdmJsYW5rLT5jb3VudDsK PiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ICAgICAgICAgICAgIC8qIHVwZGF0ZSBmcmFtZV9z dGFydCBvbmx5IGlmIGEgcXVldWVkIHZrbXNfY3JjX3dvcmtfaGFuZGxlKCkKPiA+ID4gPiA+ID4g PiAgICAgICAgICAgICAgKiBoYXMgcmVhZCB0aGUgZGF0YQo+ID4gPiA+ID4gPiA+IC0tCj4gPiA+ ID4gPiA+ID4gMi4xNy4xCj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gLS0K PiA+ID4gPiA+ID4gRGFuaWVsIFZldHRlcgo+ID4gPiA+ID4gPiBTb2Z0d2FyZSBFbmdpbmVlciwg SW50ZWwgQ29ycG9yYXRpb24KPiA+ID4gPiA+ID4gaHR0cDovL2Jsb2cuZmZ3bGwuY2gKPiA+ID4g PiA+ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+ ID4gPiA+ID4gZHJpLWRldmVsIG1haWxpbmcgbGlzdAo+ID4gPiA+ID4gPiBkcmktZGV2ZWxAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCj4gPiA+ID4gPiA+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCj4gPiA+ID4gPgo+ID4gPiA+ID4gLS0KPiA+ ID4gPiA+IFZpbGxlIFN5cmrDpGzDpAo+ID4gPiA+ID4gSW50ZWwKPiA+ID4KPiA+ID4gLS0KPiA+ ID4gVmlsbGUgU3lyasOkbMOkCj4gPiA+IEludGVsCj4gCj4gLS0gCj4gVmlsbGUgU3lyasOkbMOk Cj4gSW50ZWwKCi0tIApSb2RyaWdvIFNpcXVlaXJhCmh0dHBzOi8vc2lxdWVpcmEudGVjaApHcmFk dWF0ZSBTdHVkZW50CkRlcGFydG1lbnQgb2YgQ29tcHV0ZXIgU2NpZW5jZQpVbml2ZXJzaXR5IG9m IFPDo28gUGF1bG8KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs 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=-8.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_PASS,USER_AGENT_NEOMUTT autolearn=ham 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 81CD5C10F03 for ; Sun, 10 Mar 2019 20:36:26 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 4D860207E0 for ; Sun, 10 Mar 2019 20:36:26 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="tnhuvbRy" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726863AbfCJUfM (ORCPT ); Sun, 10 Mar 2019 16:35:12 -0400 Received: from mail-qt1-f196.google.com ([209.85.160.196]:46389 "EHLO mail-qt1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726798AbfCJUfM (ORCPT ); Sun, 10 Mar 2019 16:35:12 -0400 Received: by mail-qt1-f196.google.com with SMTP id z25so2886293qti.13 for ; Sun, 10 Mar 2019 13:35:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to :user-agent; bh=BJpjV2zMYyI2iypQGgXFuxmY9q4KzTrjBtn9MNt+Ivo=; b=tnhuvbRyF4CDv9incE31fqWQ1jO5kQCkVpbcHsTXdxhfRwcufKe2x4mRF5EV2gek43 D89PY3jVccznnkhkKn/rT2E0Y+QSqSupUQnaJhoeZzWwt+y4tVRvEZxzhap2NIgPIiKC iqau/fnNg15iNBZGuRPSDnTf/EMvGCJalfBPs7lbvPVastBb9VyctUlrn1/7R7gzHKdX Cte8y+XGDuzXYcomcx4yjJDxYgIxSgnjqmH/GodWfLglC1hanTVswaVt1k1PRGpFH9GK WaqwgzFMSHgRfa0BcAZduciNaZ37IjpGo3p9f0Kuna4tBdPTKQzOMjB9f/e0TPq6h60J gMQg== 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:user-agent; bh=BJpjV2zMYyI2iypQGgXFuxmY9q4KzTrjBtn9MNt+Ivo=; b=TCYDeuV4kDssIBhLAh6MMOyp1iq4/h/VgG06jdzI01vrsQFwdgCcOfVhqZ/tBvG7bV BnHPtYAJeymtE0XPIR2tewZksHddnGpgHWO8E10zQu/rCa1EK2wLmKxj0/jZlxNPtjUR ltPgxureVFXyuHiD3Z6IArpPqHPl7grEqIn5utwdMX+DJch+59pLByPFFS0j9knj6x9p oKvywolD/ktTVq9+EFKWSMqa0Fenrq5euzpLnr+2LkWsHPMhws5YIJg3H9K26YOF8GKr mnVATwKkYgaC63Ulqf2J+RLfXXu+ZUheTPSZjrg/LaCrYLEoIovN55y2bjTSOlv2Ua+x d0Bw== X-Gm-Message-State: APjAAAXc+LlPjCXgbjkJsj6IAZFrAwzMuvG7IgTBisqbaZnHGSXZPPmU LmCKufujgWO5Zld7TR8scKg= X-Google-Smtp-Source: APXvYqxtMjJr/xJzFj64lw+aXAPPDDhgZ7TPpj3r3BqZTu20cseMQV9qfs/BqHKDyk6D+kLG3z1scw== X-Received: by 2002:a0c:93d5:: with SMTP id g21mr23656464qvg.10.1552250110487; Sun, 10 Mar 2019 13:35:10 -0700 (PDT) Received: from smtp.gmail.com ([143.107.45.1]) by smtp.gmail.com with ESMTPSA id p67sm2149993qkd.39.2019.03.10.13.35.06 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Sun, 10 Mar 2019 13:35:08 -0700 (PDT) Date: Sun, 10 Mar 2019 17:35:05 -0300 From: Rodrigo Siqueira To: Ville =?utf-8?B?U3lyasOkbMOk?= Cc: Shayenne Moura , Haneen Mohammed , David Airlie , dri-devel , Linux Kernel Mailing List Subject: Re: [PATCH] drm/vkms: Solve bug on kms_crc_cursor tests Message-ID: <20190310203505.2needmil76a4rc74@smtp.gmail.com> References: <20190225142606.gov32asdq3qe375q@smtp.gmail.com> <20190228101107.GL2665@phenom.ffwll.local> <20190228140341.GG20097@intel.com> <20190301152558.GR20097@intel.com> <20190301184147.GS20097@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20190301184147.GS20097@intel.com> User-Agent: NeoMutt/20180716 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 03/01, Ville Syrjälä wrote: > On Fri, Mar 01, 2019 at 03:35:35PM -0300, Shayenne Moura wrote: > > Em sex, 1 de mar de 2019 às 12:26, Ville Syrjälä > > escreveu: > > > > > > On Fri, Mar 01, 2019 at 11:55:11AM -0300, Shayenne Moura wrote: > > > > Em qui, 28 de fev de 2019 às 11:03, Ville Syrjälä > > > > escreveu: > > > > > > > > > > On Thu, Feb 28, 2019 at 11:11:07AM +0100, Daniel Vetter wrote: > > > > > > On Mon, Feb 25, 2019 at 11:26:06AM -0300, Shayenne Moura wrote: > > > > > > > vkms_crc_work_handle needs the value of the actual frame to > > > > > > > schedule the workqueue that calls periodically the vblank > > > > > > > handler and the destroy state functions. However, the frame > > > > > > > value returned from vkms_vblank_simulate is updated and > > > > > > > diminished in vblank_get_timestamp because it is not in a > > > > > > > vblank interrupt, and return an inaccurate value. > > > > > > > > > > > > > > Solve this getting the actual vblank frame directly from the > > > > > > > vblank->count inside the `struct drm_crtc`, instead of using > > > > > > > the `drm_accurate_vblank_count` function. > > > > > > > > > > > > > > Signed-off-by: Shayenne Moura > > > > > > > > > > > > Sorry for the delay, I'm a bit swamped right now :-/ > > > > > > > > > > > > Debug work you're doing here is really impressive! But I have no idea > > > > > > what's going on. It doesn't look like it's just papering over a bug (like > > > > > > the in_vblank_irq check we've discussed on irc), but I also have no idea > > > > > > why it works. > > > > > > > > > > > > I'll pull in Ville, he understands this better than me. > > > > > > > > > > It's not entirely clear what we're trying to fix. From what I can see > > > > > the crc work seems to be in no way synchronized with page flips, so > > > > > I'm not sure how all this is really supposed to work. > > > > > > > > > > > > > Hi, Ville! > > > > > > > > Thank you for the review! :) > > > > > > > > I do not understand well what crc code is doing, but the issue that I found > > > > is related to the vblank timestamp and frame count. > > > > > > > > When vkms handles the crc_cursor it uses the start frame and end frame > > > > values to verify if it needs to call the function 'drm_crtc_add_crc_entry()' > > > > for each frame. > > > > > > > > However, when getting the frame count, the code is calling the function > > > > drm_update_vblank_count(dev, pipe, false) and, because of the 'false', > > > > subtracting the actual vblank timestamp (consequently, the frame count > > > > value), causing conflicts. > > > > > > The in_vblank_irq behavour looks sane to me. What are these conflicts? > > > > > > > The entire history was: > > - I sent the patch with bugfix for vblank extra frame. The patch changed > > our function vkms_get_vblank_timestamp() to look like this: > > > > bool vkms_get_vblank_timestamp(struct drm_device *dev, unsigned int pipe, > > int *max_error, ktime_t *vblank_time, > > bool in_vblank_irq) > > { > > struct vkms_device *vkmsdev = drm_device_to_vkms_device(dev); > > struct vkms_output *output = &vkmsdev->output; > > > > *vblank_time = output->vblank_hrtimer.node.expires; > > > > + if (!in_vblank_irq) > > + *vblank_time -= output->period_ns; > > > > return true; > > } > > > > - This patch solve the issue that I was looking for (extra vblank > > frames on kms_flip). > > > > - However, kms_cursor_crc tests, which passed before my patch, started to fail. > > > > - Debugging them, I found that the problem was inside of function > > `vkms_vblank_simulate()` > > when it was handling the crc_enabled (inside if (state && output->crc_enabled)) > > and inside the function vkms_crc_work_handle() too. > > > > - Following the steps: > > 1. Inside vkms_vblank_simulate() we call drm_crtc_accurate_vblank_count() > > 2. In its turn, drm_crtc_accurate_vblank_count() calls the function > > drm_update_vblank_count(dev, pipe, false). /* This false is default */ > > 3. Finally, the “false” used in drm_update_vblank_count(), will be > > passed to vkms_get_vblank_timestamp() and the condition “if > > (!in_vblank_irq)” will be executed multiple times (we don’t want it). > > > > - Inside vkms_crc, the issue is that the returned frame value change for > > every call of drm_crtc_accurate_vblank_count() because > > in_vblank_irq == false. Hi Ville, > OK. So why is it changing? AFAICS it should not change unless the > timer was moved forward in between the calls. Yes Ville, you’re right. We have to update it only when the function vkms_vblank_simulate() is invoked (timer move forward), and FWIU we do it when we call drm_crtc_handle_vblank(). However, the current implementation of vkms, has a call to drm_crtc_accurate_vblank_count() inside the vkms_vblank_simulate() which is a problem because it also update the vblank value. FWIU, this patch fixes this issue by taking the count value in the data struct instead of call drm_crtc_accurate_vblank_count() which will avoid the extra update. Thanks, Best Regards > > > > - To solve this, I used the value already calculated on vblank->count, > > instead of using the helper function that updates the value. > > > > Shayenne > > > > > > > > > > Does it make sense? I am not sure about this crc code behavior. > > > > > > > > Shayenne > > > > > > > > > > -Daniel > > > > > > > > > > > > > --- > > > > > > > drivers/gpu/drm/vkms/vkms_crc.c | 4 +++- > > > > > > > drivers/gpu/drm/vkms/vkms_crtc.c | 4 +++- > > > > > > > 2 files changed, 6 insertions(+), 2 deletions(-) > > > > > > > > > > > > > > diff --git a/drivers/gpu/drm/vkms/vkms_crc.c b/drivers/gpu/drm/vkms/vkms_crc.c > > > > > > > index d7b409a3c0f8..09a8b00ef1f1 100644 > > > > > > > --- a/drivers/gpu/drm/vkms/vkms_crc.c > > > > > > > +++ b/drivers/gpu/drm/vkms/vkms_crc.c > > > > > > > @@ -161,6 +161,8 @@ void vkms_crc_work_handle(struct work_struct *work) > > > > > > > struct vkms_output *out = drm_crtc_to_vkms_output(crtc); > > > > > > > struct vkms_device *vdev = container_of(out, struct vkms_device, > > > > > > > output); > > > > > > > + unsigned int pipe = drm_crtc_index(crtc); > > > > > > > + struct drm_vblank_crtc *vblank = &crtc->dev->vblank[pipe]; > > > > > > > struct vkms_crc_data *primary_crc = NULL; > > > > > > > struct vkms_crc_data *cursor_crc = NULL; > > > > > > > struct drm_plane *plane; > > > > > > > @@ -196,7 +198,7 @@ void vkms_crc_work_handle(struct work_struct *work) > > > > > > > if (primary_crc) > > > > > > > crc32 = _vkms_get_crc(primary_crc, cursor_crc); > > > > > > > > > > > > > > - frame_end = drm_crtc_accurate_vblank_count(crtc); > > > > > > > + frame_end = vblank->count; > > > > > > > > > > > > > > /* queue_work can fail to schedule crc_work; add crc for > > > > > > > * missing frames > > > > > > > diff --git a/drivers/gpu/drm/vkms/vkms_crtc.c b/drivers/gpu/drm/vkms/vkms_crtc.c > > > > > > > index 8a9aeb0a9ea8..9bf3268e2e92 100644 > > > > > > > --- a/drivers/gpu/drm/vkms/vkms_crtc.c > > > > > > > +++ b/drivers/gpu/drm/vkms/vkms_crtc.c > > > > > > > @@ -10,6 +10,8 @@ static enum hrtimer_restart vkms_vblank_simulate(struct hrtimer *timer) > > > > > > > vblank_hrtimer); > > > > > > > struct drm_crtc *crtc = &output->crtc; > > > > > > > struct vkms_crtc_state *state = to_vkms_crtc_state(crtc->state); > > > > > > > + unsigned int pipe = drm_crtc_index(crtc); > > > > > > > + struct drm_vblank_crtc *vblank = &crtc->dev->vblank[pipe]; > > > > > > > u64 ret_overrun; > > > > > > > bool ret; > > > > > > > > > > > > > > @@ -20,7 +22,7 @@ static enum hrtimer_restart vkms_vblank_simulate(struct hrtimer *timer) > > > > > > > DRM_ERROR("vkms failure on handling vblank"); > > > > > > > > > > > > > > if (state && output->crc_enabled) { > > > > > > > - u64 frame = drm_crtc_accurate_vblank_count(crtc); > > > > > > > + u64 frame = vblank->count; > > > > > > > > > > > > > > /* update frame_start only if a queued vkms_crc_work_handle() > > > > > > > * has read the data > > > > > > > -- > > > > > > > 2.17.1 > > > > > > > > > > > > > > > > > > > -- > > > > > > 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 > > > > > > > > > > -- > > > > > Ville Syrjälä > > > > > Intel > > > > > > -- > > > Ville Syrjälä > > > Intel > > -- > Ville Syrjälä > Intel -- Rodrigo Siqueira https://siqueira.tech Graduate Student Department of Computer Science University of São Paulo