From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Brezillon Subject: Re: [RFC PATCH] drm/vc4: Add a load tracker to prevent HVS underflow errors Date: Tue, 16 Oct 2018 15:10:53 +0200 Message-ID: <20181016151045.76944938@bbrezillon> References: <20181016094045.23021-1-boris.brezillon@bootlin.com> <20181016125743.GZ31561@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail.bootlin.com (mail.bootlin.com [62.4.15.54]) by gabe.freedesktop.org (Postfix) with ESMTP id 62C906E21D for ; Tue, 16 Oct 2018 13:10:55 +0000 (UTC) In-Reply-To: <20181016125743.GZ31561@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter Cc: "Hollingworth, Gordon" , dri-devel@lists.freedesktop.org, Eben Upton List-Id: dri-devel@lists.freedesktop.org SGkgRGFuaWVsLAoKT24gVHVlLCAxNiBPY3QgMjAxOCAxNDo1Nzo0MyArMDIwMApEYW5pZWwgVmV0 dGVyIDxkYW5pZWxAZmZ3bGwuY2g+IHdyb3RlOgoKPiBPbiBUdWUsIE9jdCAxNiwgMjAxOCBhdCAx MTo0MDo0NUFNICswMjAwLCBCb3JpcyBCcmV6aWxsb24gd3JvdGU6Cj4gPiBUaGUgSFZTIGJsb2Nr IGlzIHN1cHBvc2VkIHRvIGZpbGwgdGhlIHBpeGVsdmFsdmUgRklGT3MgZmFzdCBlbm91Z2ggdG8K PiA+IG1lZXQgdGhlIHJlcXVlc3RlZCBmcmFtZXJhdGUuIFRoZSBwcm9ibGVtIGlzLCB0aGUgSFZT IGFuZCBtZW1vcnkgYnVzCj4gPiBiYW5kd2lkdGhzIGFyZSBsaW1pdGVkLCBhbmQgaWYgd2UgZG9u J3QgdGFrZSB0aGVzZSBsaW1pdGF0aW9ucyBpbnRvCj4gPiBhY2NvdW50IHdlIG1pZ2h0IGVuZCB1 cCB3aXRoIEhWUyB1bmRlcmZsb3cgZXJyb3JzLgo+ID4gCj4gPiBUaGlzIHBhdGNoIGlzIHRyeWlu ZyB0byBtb2RlbCB0aGUgcGVyLXBsYW5lIEhWUyBhbmQgbWVtb3J5IGJ1cyBiYW5kd2lkdGgKPiA+ IGNvbnN1bXB0aW9uIGFuZCB0YWtlIGEgZGVjaXNpb24gYXQgYXRvbWljX2NoZWNrKCkgdGltZSB3 aGV0aGVyIHRoZQo+ID4gZXN0aW1hdGVkIGxvYWQgd2lsbCBmaXQgaW4gdGhlIEhWUyBhbmQgbWVt YnVzIGJ1ZGdldC4KPiA+IAo+ID4gTm90ZSB0aGF0IHdlIHRha2UgYW4gZXh0cmEgbWFyZ2luIG9u IHRoZSBtZW1vcnkgYnVzIGNvbnN1bXB0aW9uIHRvIGxldAo+ID4gdGhlIHN5c3RlbSBydW4gc21v b3RobHkgd2hlbiBvdGhlciBibG9ja3MgYXJlIGRvaW5nIGhlYXZ5IHVzZSBvZiB0aGUKPiA+IG1l bW9yeSBidXMuIFNhbWUgZ29lcyBmb3IgdGhlIEhWUyBsaW1pdCwgZXhjZXB0IHRoZSBtYXJnaW4g aXMgc21hbGxlciBpbgo+ID4gdGhpcyBjYXNlLCBzaW5jZSB0aGUgSFZTIGlzIG5vdCB1c2VkIGJ5 IGV4dGVybmFsIGNvbXBvbmVudHMuCj4gPiAKPiA+IFNpZ25lZC1vZmYtYnk6IEJvcmlzIEJyZXpp bGxvbiA8Ym9yaXMuYnJlemlsbG9uQGJvb3RsaW4uY29tPgo+ID4gLS0tCj4gPiBUaGlzIGxvZ2lj IGhhcyBiZWVuIHZhbGlkYXRlZCB1c2luZyBhIHNpbXBsZSBzaGVsbCBzY3JpcHQgYW5kCj4gPiBz b21lIGluc3RydW1lbnRhdGlvbiBpbiB0aGUgVkM0IGRyaXZlcjoKPiA+IAo+ID4gLSBjYXB0dXJl IHVuZGVyZmxvdyBlcnJvcnMgYXQgdGhlIEhWUyBsZXZlbCBhbmQgZXhwb3NlIGEgZGVidWdmcyBm aWxlCj4gPiAgIHJlcG9ydGluZyB0aG9zZSBlcnJvcnMKPiA+IC0gYWRkIGRlYnVnZnMgZmlsZXMg dG8gZXhwb3NlIHdoZW4gYXRvbWljX2NoZWNrIGZhaWxzIGJlY2F1c2Ugb2YgdGhlCj4gPiAgIEhW UyBvciBtZW1idXMgbG9hZCBsaW1pdGF0aW9uIG9yIHdoZW4gaXQgZmFpbHMgZm9yIG90aGVyIHJl YXNvbnMKPiA+IAo+ID4gVGhlIGJyYW5jaCBjb250YWluaW5nIHRob3NlIG1vZGlmaWNhdGlvbiBp cyBhdmFpbGFibGUgaGVyZSBbMV0sIGFuZCB0aGUKPiA+IHNjcmlwdCAod2hpY2ggaXMgaW50ZXJu YWxseSB1c2luZyBtb2RldGVzdCkgaXMgaGVyZSBbMl0gKHBsZWFzZSBub3RlCj4gPiB0aGF0IEkn bSBiYWQgYXQgd3JpdGluZyBzaGVsbCBzY3JpcHRzIDotKSkuCj4gPiAKPiA+IE5vdGUgdGhhdCB0 aG9zZSBtb2RpZmljYXRpb24gdGVuZCB0byBvdmVyLWVzdGltYXRlIHRoZSBsb2FkLCBhbmQgdGh1 cwo+ID4gcmVqZWN0IHNldHVwcyB0aGF0IG1pZ2h0IGhhdmUgcHJldmlvdXNseSB3b3JrZWQsIHNv IHdlIG1pZ2h0IHdhbnQgdG8KPiA+IGFkanVzdCB0aGUgbGltaXRzIHRvIGF2b2lkIHRoYXQuCj4g PiAKPiA+IFsxXWh0dHBzOi8vZ2l0aHViLmNvbS9iYnJlemlsbG9uL2xpbnV4L3RyZWUvdmM0L2h2 cy1iYW5kd2lkdGgtZXZhbAo+ID4gWzJdaHR0cHM6Ly9naXRodWIuY29tL2JicmV6aWxsb24vdmM0 LWh2cy1iYW5kd2lkdGgtdGVzdCAgCj4gCj4gQW55IGludGVyZXN0IGluIHVzaW5nIGlndCB0byB0 ZXN0IHRoaXMgc3R1ZmY/IFdlIGhhdmUgYXQgbGVhc3QgYSBidW5jaCBvZgo+IHRlc3RzIGFscmVh ZHkgaW4gdGhlcmUgdGhhdCB0cnkgYWxsIGtpbmRzIG9mIHBsYW5lIHNldHVwcy4gQW5kIHdlIHVz ZQo+IHRob3NlIHRvIGh1bnQgZm9yIHVuZGVycnVucyBvbiBpOTE1IGh3Lgo+IAo+IFdydCB1bmRl cnJ1biByZXBvcnRpbmc6IE9uIGk5MTUgd2UganVzdCBkdW1wIHRoZW0gaW50byBkbWVzZyBhdCB0 aGUgZXJyb3IKPiBsZXZlbCwgdXNpbmcgRFJNX0VSUk9SLCBwbHVzIGEgdHJhY2Vwb2ludC4gU2Vl IGUuZy4KPiBpbnRlbF9wY2hfZmlmb191bmRlcnJ1bl9pcnFfaGFuZGxlcigpLiBJZiB0aGVyZSdz IGludGVyZXN0IHdlIGNvdWxkCj4gcGVyaGFwcyBleHRyYWN0IHRoaXMgaW50byBzb21ldGhpbmcg Y29tbW9uLCBzaW1pbGFyIHRvIHdoYXQgd2FzIGRvbmUgd2l0aAo+IGNyYyBzdXBwb3J0IGFscmVh ZHkuCgpTb3VuZHMgbGlrZSBhIGdvb2QgaWRlYS4gSSdsbCBoYXZlIGEgbG9vayBhdCB3aGF0J3Mg ZG9uZSBpbiB0aGUgaW50ZWwKZHJpdmVyIGFuZCB3aWxsIGNoZWNrIGhvdyBmZWFzaWJsZSB0aGlz IGlzIHRvIGhhdmUgYSBjb21tb24KaW5mcmFzdHJ1Y3R1cmUgdG8gdGVzdCB0aGF0IGluIGlndC4K ClRoYW5rcyBmb3IgdGhlIHBvaW50ZXJzLgoKCj4gPiArc3RhdGljIGludCB2YzRfbG9hZF90cmFj a2VyX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gPiArewo+ ID4gKwlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpvbGRfcGxhbmVfc3RhdGUsICpuZXdfcGxhbmVf c3RhdGU7Cj4gPiArCXN0cnVjdCB2YzRfZGV2ICp2YzQgPSB0b192YzRfZGV2KHN0YXRlLT5kZXYp Owo+ID4gKwlzdHJ1Y3QgdmM0X2xvYWRfdHJhY2tlcl9zdGF0ZSAqbG9hZF9zdGF0ZTsKPiA+ICsJ c3RydWN0IGRybV9wcml2YXRlX3N0YXRlICpwcml2X3N0YXRlOwo+ID4gKwlzdHJ1Y3QgZHJtX3Bs YW5lICpwbGFuZTsKPiA+ICsJaW50IHJldCwgaTsKPiA+ICsgIAo+IAo+IFlvdSdyZSBtaXNzaW5n IHRoZSBtb2Rlc2V0IGxvY2tpbmcgZm9yIHZjNC0+bG9hZF90cmFja2VyLiBTZWUgdGhlCj4ga2Vy bmVsZG9jIGZvciBkcm1fYXRvbWljX2dldF9wcml2YXRlX29ial9zdGF0ZSgpLgoKSG0sIEkgbWlz c2VkIHRoaXMgcGFydCBvZiB0aGUgZG9jLCBhbmQgSSB0aG91Z2h0IHdlIHdlcmUgcHJvdGVjdGVk IGJ5CnRoZSBtb2Rlc2V0IGxvY2suCgo+IFByb2JhYmx5IGEgZ29vZCB0aW1lIHRvCj4gaW1wbGVt ZW50IHRoZSBsb2NraW5nIHJlZmFjdG9yaW5nIGlkZWEgSSBoYXZlIGFuZCBqdXN0IGltcGxlbWVu dCBhIHBlcgo+IHByaXZhdGVfb2JqIGxvY2ssIGFuZCByZW1vdmUgYWxsIHRoZSBhZC1ob2MgbG9j a2luZyBmcm9tIGFsbCB0aGUgY2FsbGVycz8KCkxldCBtZSBzZWUgaWYgSSBnZXQgaXQgY29ycmVj dGx5LiBZb3Ugd2FudCB0byBhZGQgYSBsb2NrIHRvIHRoZQpkcm1fcHJpdmF0ZV9vYmogc3RydWN0 LCByaWdodD8KCj4gCj4gV291bGQgZGVmaW5pdGVseSBzaW1wbGlmeSB0aGUgY29kZSwgYW5kIGF2 b2lkICJvb3BzIG5vIGxvY2tpbmciIGlzc3Vlcwo+IGxpa2UgaGVyZS4KClllcCwgSSBhZ3JlZS4K Cj4gCj4gQ2hlZXJzLCBEYW5pZWwKPiAKPiA+ICsJcHJpdl9zdGF0ZSA9IGRybV9hdG9taWNfZ2V0 X3ByaXZhdGVfb2JqX3N0YXRlKHN0YXRlLAo+ID4gKwkJCQkJCSAgICAgICZ2YzQtPmxvYWRfdHJh Y2tlcik7Cj4gPiArCWlmIChJU19FUlIocHJpdl9zdGF0ZSkpCj4gPiArCQlyZXR1cm4gUFRSX0VS Uihwcml2X3N0YXRlKTsKPiA+ICsKPiA+ICsJbG9hZF9zdGF0ZSA9IHRvX3ZjNF9sb2FkX3RyYWNr ZXJfc3RhdGUocHJpdl9zdGF0ZSk7Cj4gPiArCWZvcl9lYWNoX29sZG5ld19wbGFuZV9pbl9zdGF0 ZShzdGF0ZSwgcGxhbmUsIG9sZF9wbGFuZV9zdGF0ZSwKPiA+ICsJCQkJICAgICAgIG5ld19wbGFu ZV9zdGF0ZSwgaSkgewo+ID4gKwkJc3RydWN0IHZjNF9wbGFuZV9zdGF0ZSAqdmM0X3BsYW5lX3N0 YXRlOwo+ID4gKwo+ID4gKwkJaWYgKG9sZF9wbGFuZV9zdGF0ZS0+ZmIgJiYgb2xkX3BsYW5lX3N0 YXRlLT5jcnRjKSB7Cj4gPiArCQkJdmM0X3BsYW5lX3N0YXRlID0gdG9fdmM0X3BsYW5lX3N0YXRl KG9sZF9wbGFuZV9zdGF0ZSk7Cj4gPiArCQkJbG9hZF9zdGF0ZS0+bWVtYnVzX2xvYWQgLT0gdmM0 X3BsYW5lX3N0YXRlLT5tZW1idXNfbG9hZDsKPiA+ICsJCQlsb2FkX3N0YXRlLT5odnNfbG9hZCAt PSB2YzRfcGxhbmVfc3RhdGUtPmh2c19sb2FkOwo+ID4gKwkJfQo+ID4gKwo+ID4gKwkJaWYgKG5l d19wbGFuZV9zdGF0ZS0+ZmIgJiYgbmV3X3BsYW5lX3N0YXRlLT5jcnRjKSB7Cj4gPiArCQkJdmM0 X3BsYW5lX3N0YXRlID0gdG9fdmM0X3BsYW5lX3N0YXRlKG5ld19wbGFuZV9zdGF0ZSk7Cj4gPiAr CQkJbG9hZF9zdGF0ZS0+bWVtYnVzX2xvYWQgKz0gdmM0X3BsYW5lX3N0YXRlLT5tZW1idXNfbG9h ZDsKPiA+ICsJCQlsb2FkX3N0YXRlLT5odnNfbG9hZCArPSB2YzRfcGxhbmVfc3RhdGUtPmh2c19s b2FkOwo+ID4gKwkJfQo+ID4gKwl9Cj4gPiArCj4gPiArCS8qIFRoZSBhYm9sc3V0ZSBsaW1pdCBp cyAyR2J5dGUvc2VjLCBidXQgbGV0J3MgdGFrZSBhIG1hcmdpbiB0byBsZXQKPiA+ICsJICogdGhl IHN5c3RlbSB3b3JrIHdoZW4gb3RoZXIgYmxvY2tzIGFyZSBhY2Nlc3NpbmcgdGhlIG1lbW9yeS4K PiA+ICsJICovCj4gPiArCWlmIChsb2FkX3N0YXRlLT5tZW1idXNfbG9hZCA+IFNaXzFHICsgU1pf NTEyTSkKPiA+ICsJCXJldHVybiAtRU5PU1BDOwo+ID4gKwo+ID4gKwkvKiBIVlMgY2xvY2sgaXMg c3VwcG9zZWQgdG8gcnVuIEAgMjUwTWh6LCBsZXQncyB0YWtlIGEgbWFyZ2luIGFuZAo+ID4gKwkg KiBjb25zaWRlciB0aGUgbWF4aW11bSBudW1iZXIgb2YgY3ljbGVzIGlzIDI0ME0uCj4gPiArCSAq Lwo+ID4gKwlpZiAobG9hZF9zdGF0ZS0+aHZzX2xvYWQgPiAyNDAwMDAwMDBVTEwpCj4gPiArCQly ZXR1cm4gLUVOT1NQQzsgIAo+IAo+IEVJTlZBTCBpcyBmb3IgYXRvbWljX2NoZWNrIGZhaWx1cmVz LiBFTk9TUEMgaXNuJ3Qgb25lIG9mIHRoZSBwZXJtaXR0ZWQKPiBlcnJubyBjb2Rlcywgc2VlIHRo ZSBrZXJuZWwtZG9jIGZvciAmZHJtX21vZGVfY29uZmlnX2Z1bmNzLmF0b21pY19jaGVjay4KPiBh dG9taWNfY29tbWl0IGhhcyBhIGRpZmZlcmVudCBzZXQgb2YgcGVybWlzc2libGUgZXJybm8gY29k ZXMuCgpPa2F5LCB3aWxsIGNoYW5nZSBFTk9TUEMgaW50byBFSU5WQUwuCgo+IAo+IFdlIHNob3Vs ZCBwcm9iYWJseSBlbmZvcmNlIHRoaXMgaW4gZHJtIGNvcmUgLi4uCgpFbm91Z2ggb24gbXkgcGxh dGUgZm9yIG5vdywgSSdsbCBsZXQgc29tZW9uZSBlbHNlIHRha2UgY2FyZSBvZgp0aGF0IGlmIHlv dSBkb24ndCBtaW5kIDotUC4KClRoYW5rcyBmb3IgdGhlIHJldmlldy4KCkJvcmlzCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5n IGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=