From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [CI-ping 15/15] drm/i915: Late request cancellations are harmful Date: Mon, 18 Apr 2016 12:46:45 +0300 Message-ID: <87lh4bp7ui.fsf@intel.com> References: <1460491389-8602-1-git-send-email-chris@chris-wilson.co.uk> <1460491389-8602-15-git-send-email-chris@chris-wilson.co.uk> <20160413095721.GR2510@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id A41276E199 for ; Mon, 18 Apr 2016 09:46:48 +0000 (UTC) In-Reply-To: <20160413095721.GR2510@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter , Chris Wilson Cc: Daniel Vetter , intel-gfx@lists.freedesktop.org, stable@vger.kernel.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCAxMyBBcHIgMjAxNiwgRGFuaWVsIFZldHRlciA8ZGFuaWVsQGZmd2xsLmNoPiB3cm90 ZToKPiBPbiBUdWUsIEFwciAxMiwgMjAxNiBhdCAwOTowMzowOVBNICswMTAwLCBDaHJpcyBXaWxz b24gd3JvdGU6Cj4+IENvbmNlcHR1YWxseSwgZWFjaCByZXF1ZXN0IGlzIGEgcmVjb3JkIG9mIGEg aGFyZHdhcmUgdHJhbnNhY3Rpb24gLSB3ZQo+PiBidWlsZCB1cCBhIGxpc3Qgb2YgcGVuZGluZyBj b21tYW5kcyBhbmQgdGhlbiBlaXRoZXIgY29tbWl0IHRoZW0gdG8KPj4gaGFyZHdhcmUsIG9yIGNh bmNlbCB0aGVtLiBIb3dldmVyLCB3aGlsc3QgYnVpbGRpbmcgdXAgdGhlIGxpc3Qgb2YKPj4gcGVu ZGluZyBjb21tYW5kcywgd2UgbWF5IG1vZGlmeSBzdGF0ZSBvdXRzaWRlIG9mIHRoZSByZXF1ZXN0 IGFuZCBtYWtlCj4+IHJlZmVyZW5jZXMgdG8gdGhlIHBlbmRpbmcgcmVxdWVzdC4gSWYgd2UgZG8g c28gYW5kIHRoZW4gY2FuY2VsIHRoYXQKPj4gcmVxdWVzdCwgZXh0ZXJuYWwgb2JqZWN0cyB0aGVu IHBvaW50IHRvIHRoZSBkZWxldGVkIHJlcXVlc3QgbGVhZGluZyB0bwo+PiBib3RoIGdyYXBoaWNh bCBhbmQgbWVtb3J5IGNvcnJ1cHRpb24uCj4+IAo+PiBUaGUgZWFzaWVzdCBleGFtcGxlIGlzIHRv IGNvbnNpZGVyIG9iamVjdC9WTUEgdHJhY2tpbmcuIFdoZW4gd2UgbWFyayBhbgo+PiBvYmplY3Qg YXMgYWN0aXZlIGluIGEgcmVxdWVzdCwgd2Ugc3RvcmUgYSBwb2ludGVyIHRvIHRoaXMsIHRoZSBt b3N0Cj4+IHJlY2VudCByZXF1ZXN0LCBpbiB0aGUgb2JqZWN0LiBUaGVuIHdlIHdhbnQgdG8gZnJl ZSB0aGF0IG9iamVjdCwgd2Ugd2FpdAo+PiBmb3IgdGhlIG1vc3QgcmVjZW50IHJlcXVlc3QgdG8g YmUgaWRsZSBiZWZvcmUgcHJvY2VlZGluZyAob3RoZXJ3aXNlIHRoZQo+PiBoYXJkd2FyZSB3aWxs IHdyaXRlIHRvIHBhZ2VzIG5vdyBvd25lZCBieSB0aGUgc3lzdGVtLCBvciB3ZSB3aWxsIGF0dGVt cHQKPj4gdG8gcmVhZCBmcm9tIHRob3NlIHBhZ2VzIGJlZm9yZSB0aGUgaGFyZHdhcmUgaXMgZmlu aXNoZWQgd3JpdGluZykuIElmCj4+IHRoZSByZXF1ZXN0IHdhcyBjYW5jZWxsZWQgaW5zdGVhZCwg dGhhdCB3YWl0IGNvbXBsZXRlcyBpbW1lZGlhdGVseS4gQXMgYQo+PiByZXN1bHQsIGFsbCByZXF1 ZXN0cyBtdXN0IGJlIGNvbW1pdHRlZCBhbmQgbm90IGNhbmNlbGxlZCBpZiB0aGUgZXh0ZXJuYWwK Pj4gc3RhdGUgaXMgdW5rbm93bi4KPj4gCj4+IEFsbCB0aGF0IHJlbWFpbnMgb2YgaTkxNV9nZW1f cmVxdWVzdF9jYW5jZWwoKSB1c2VycyBhcmUganVzdCBhIGNvdXBsZSBvZgo+PiBleHRyZW1lbHkg dW5saWtlbHkgYWxsb2NhdGlvbiBmYWlsdXJlcywgc28gcmVtb3ZlIHRoZSBBUEkgZW50aXJlbHku Cj4+IAo+PiBBIGNvbnNlcXVlbmNlIG9mIGNvbW1pdHRpbmcgYWxsIGluY29tcGxldGUgcmVxdWVz dHMgaXMgdGhhdCB3ZSBnZW5lcmF0ZQo+PiBleGNlc3MgYnJlYWRjcnVtYnMgYW5kIGZpbGwgdGhl IHJpbmcgbXVjaCBtb3JlIG9mdGVuIHdpdGggZHVtbXkgd29yay4gV2UKPj4gaGF2ZSBjb21wbGV0 ZWx5IHVuZG9uZSB0aGUgb3V0c3RhbmRpbmdfbGFzdF9zZXFubyBvcHRpbWlzYXRpb24uCj4+IAo+ PiBCdWd6aWxsYTogaHR0cHM6Ly9idWdzLmZyZWVkZXNrdG9wLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9 OTM5MDcKPj4gU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24u Y28udWs+Cj4+IENjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgo+PiBD YzogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGxpbnV4LmludGVsLmNvbT4KPj4gQ2M6 IHN0YWJsZUB2Z2VyLmtlcm5lbC5vcmcKPgo+IENjOiBKb2huIEhhcnJpc29uIDxKb2huLkMuSGFy cmlzb25ASW50ZWwuY29tPgo+Cj4gSSdkIGxpa2UgSm9obidzIGFjayBvbiB0aGlzIG9uIHRvbywg YnV0IHBhdGNoIGl0c2VsZiBsb29rcyBzb3VuZC4gRmFzdCByLWIKPiBzaW5jZSB3ZSd2ZSBkaXNj dXNzZWQgdGhpcyBhIHdoaWxlIGFnbyBhbHJlYWR5IC4uLgo+Cj4gUmV2aWV3ZWQtYnk6IERhbmll bCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+CgpGWUksIHRoaXMgKCopIGRvZXMgbm90 IGNoZXJyeS1waWNrIGNsZWFubHkgdG8gZHJtLWludGVsLWZpeGVzLgoKQlIsCkphbmkuCgoKKCop IFdlbGwsIG5vdCBleGFjdGx5ICp0aGlzKiBidXQgcmF0aGVyCmh0dHBzOi8vcGF0Y2h3b3JrLmZy ZWVkZXNrdG9wLm9yZy9wYXRjaC84MDk2MS8gd2hpY2ggd2FzIG5vdCBwb3N0ZWQgb24KdGhlIGxp c3Qgc28gSSBjYW4ndCByZXBseSB0byBpdC4KCgo+PiAtLS0KPj4gIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmggICAgICAgICAgICB8ICAyIC0tCj4+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbS5jICAgICAgICAgICAgfCA1MCArKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0t LS0KPj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYyB8IDE1ICsr Ky0tLS0tLQo+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jICAgICAgIHwg IDIgKy0KPj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jICAgICAgICAgICB8ICA0 ICstLQo+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfb3ZlcmxheS5jICAgICAgIHwgIDgg KystLS0KPj4gIDYgZmlsZXMgY2hhbmdlZCwgMzAgaW5zZXJ0aW9ucygrKSwgNTEgZGVsZXRpb25z KC0pCj4+IAo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPj4gaW5kZXggMDYxZWNjNDNkOTM1Li5k ZTg0ZGQ3YmU5NzEgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmgKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+PiBAQCAtMjMzMSw3 ICsyMzMxLDYgQEAgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0IHsKPj4gIHN0cnVjdCBkcm1f aTkxNV9nZW1fcmVxdWVzdCAqIF9fbXVzdF9jaGVjawo+PiAgaTkxNV9nZW1fcmVxdWVzdF9hbGxv YyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCj4+ICAJCSAgICAgICBzdHJ1Y3QgaW50 ZWxfY29udGV4dCAqY3R4KTsKPj4gLXZvaWQgaTkxNV9nZW1fcmVxdWVzdF9jYW5jZWwoc3RydWN0 IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpOwo+PiAgdm9pZCBpOTE1X2dlbV9yZXF1ZXN0X2Zy ZWUoc3RydWN0IGtyZWYgKnJlcV9yZWYpOwo+PiAgaW50IGk5MTVfZ2VtX3JlcXVlc3RfYWRkX3Rv X2NsaWVudChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPj4gIAkJCQkgICBzdHJ1 Y3QgZHJtX2ZpbGUgKmZpbGUpOwo+PiBAQCAtMjg4Myw3ICsyODgyLDYgQEAgaW50IGk5MTVfZ2Vt X3N3X2ZpbmlzaF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+PiAg CQkJICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Cj4+ICB2b2lkIGk5MTVfZ2VtX2V4 ZWNidWZmZXJfbW92ZV90b19hY3RpdmUoc3RydWN0IGxpc3RfaGVhZCAqdm1hcywKPj4gIAkJCQkJ c3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpOwo+PiAtdm9pZCBpOTE1X2dlbV9leGVj YnVmZmVyX3JldGlyZV9jb21tYW5kcyhzdHJ1Y3QgaTkxNV9leGVjYnVmZmVyX3BhcmFtcyAqcGFy YW1zKTsKPj4gIGludCBpOTE1X2dlbV9yaW5nYnVmZmVyX3N1Ym1pc3Npb24oc3RydWN0IGk5MTVf ZXhlY2J1ZmZlcl9wYXJhbXMgKnBhcmFtcywKPj4gIAkJCQkgICBzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X2V4ZWNidWZmZXIyICphcmdzLAo+PiAgCQkJCSAgIHN0cnVjdCBsaXN0X2hlYWQgKnZtYXMpOwo+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPj4gaW5kZXggYjY4NzlkNDNkZDc0Li5jNmYwOWU3ODM5 ZWEgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+PiBAQCAtMjc4NSw3ICsyNzg1LDgg QEAgX19pOTE1X2dlbV9yZXF1ZXN0X2FsbG9jKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSwKPj4gIAkJICogZnVsbHkgcHJlcGFyZWQuIFRodXMgaXQgY2FuIGJlIGNsZWFuZWQgdXAgdXNp bmcgdGhlIHByb3Blcgo+PiAgCQkgKiBmcmVlIGNvZGUuCj4+ICAJCSAqLwo+PiAtCQlpOTE1X2dl bV9yZXF1ZXN0X2NhbmNlbChyZXEpOwo+PiArCQlpbnRlbF9yaW5nX3Jlc2VydmVkX3NwYWNlX2Nh bmNlbChyZXEtPnJpbmdidWYpOwo+PiArCQlpOTE1X2dlbV9yZXF1ZXN0X3VucmVmZXJlbmNlKHJl cSk7Cj4+ICAJCXJldHVybiByZXQ7Cj4+ICAJfQo+PiAgCj4+IEBAIC0yODIyLDEzICsyODIzLDYg QEAgaTkxNV9nZW1fcmVxdWVzdF9hbGxvYyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUs Cj4+ICAJcmV0dXJuIGVyciA/IEVSUl9QVFIoZXJyKSA6IHJlcTsKPj4gIH0KPj4gIAo+PiAtdm9p ZCBpOTE1X2dlbV9yZXF1ZXN0X2NhbmNlbChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJl cSkKPj4gLXsKPj4gLQlpbnRlbF9yaW5nX3Jlc2VydmVkX3NwYWNlX2NhbmNlbChyZXEtPnJpbmdi dWYpOwo+PiAtCj4+IC0JaTkxNV9nZW1fcmVxdWVzdF91bnJlZmVyZW5jZShyZXEpOwo+PiAtfQo+ PiAtCj4+ICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKgo+PiAgaTkxNV9nZW1fZmluZF9h Y3RpdmVfcmVxdWVzdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4+ICB7Cj4+IEBA IC0zNDM4LDEyICszNDMyLDkgQEAgaW50IGk5MTVfZ3B1X2lkbGUoc3RydWN0IGRybV9kZXZpY2Ug KmRldikKPj4gIAkJCQlyZXR1cm4gUFRSX0VSUihyZXEpOwo+PiAgCj4+ICAJCQlyZXQgPSBpOTE1 X3N3aXRjaF9jb250ZXh0KHJlcSk7Cj4+IC0JCQlpZiAocmV0KSB7Cj4+IC0JCQkJaTkxNV9nZW1f cmVxdWVzdF9jYW5jZWwocmVxKTsKPj4gLQkJCQlyZXR1cm4gcmV0Owo+PiAtCQkJfQo+PiAtCj4+ ICAJCQlpOTE1X2FkZF9yZXF1ZXN0X25vX2ZsdXNoKHJlcSk7Cj4+ICsJCQlpZiAocmV0KQo+PiAr CQkJCXJldHVybiByZXQ7Cj4+ICAJCX0KPj4gIAo+PiAgCQlyZXQgPSBpbnRlbF9lbmdpbmVfaWRs ZShlbmdpbmUpOwo+PiBAQCAtNDk0MywzNCArNDkzNCwzMyBAQCBpOTE1X2dlbV9pbml0X2h3KHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4+ICAJCXJlcSA9IGk5MTVfZ2VtX3JlcXVlc3RfYWxsb2Mo ZW5naW5lLCBOVUxMKTsKPj4gIAkJaWYgKElTX0VSUihyZXEpKSB7Cj4+ICAJCQlyZXQgPSBQVFJf RVJSKHJlcSk7Cj4+IC0JCQlpOTE1X2dlbV9jbGVhbnVwX2VuZ2luZXMoZGV2KTsKPj4gLQkJCWdv dG8gb3V0Owo+PiArCQkJYnJlYWs7Cj4+ICAJCX0KPj4gIAo+PiAgCQlpZiAoZW5naW5lLT5pZCA9 PSBSQ1MpIHsKPj4gLQkJCWZvciAoaiA9IDA7IGogPCBOVU1fTDNfU0xJQ0VTKGRldik7IGorKykK Pj4gLQkJCQlpOTE1X2dlbV9sM19yZW1hcChyZXEsIGopOwo+PiArCQkJZm9yIChqID0gMDsgaiA8 IE5VTV9MM19TTElDRVMoZGV2KTsgaisrKSB7Cj4+ICsJCQkJcmV0ID0gaTkxNV9nZW1fbDNfcmVt YXAocmVxLCBqKTsKPj4gKwkJCQlpZiAocmV0KQo+PiArCQkJCQlnb3RvIGVycl9yZXF1ZXN0Owo+ PiArCQkJfQo+PiAgCQl9Cj4+ICAKPj4gIAkJcmV0ID0gaTkxNV9wcGd0dF9pbml0X3JpbmcocmVx KTsKPj4gLQkJaWYgKHJldCAmJiByZXQgIT0gLUVJTykgewo+PiAtCQkJRFJNX0VSUk9SKCJQUEdU VCBlbmFibGUgJXMgZmFpbGVkICVkXG4iLAo+PiAtCQkJCSAgZW5naW5lLT5uYW1lLCByZXQpOwo+ PiAtCQkJaTkxNV9nZW1fcmVxdWVzdF9jYW5jZWwocmVxKTsKPj4gLQkJCWk5MTVfZ2VtX2NsZWFu dXBfZW5naW5lcyhkZXYpOwo+PiAtCQkJZ290byBvdXQ7Cj4+IC0JCX0KPj4gKwkJaWYgKHJldCkK Pj4gKwkJCWdvdG8gZXJyX3JlcXVlc3Q7Cj4+ICAKPj4gIAkJcmV0ID0gaTkxNV9nZW1fY29udGV4 dF9lbmFibGUocmVxKTsKPj4gLQkJaWYgKHJldCAmJiByZXQgIT0gLUVJTykgewo+PiAtCQkJRFJN X0VSUk9SKCJDb250ZXh0IGVuYWJsZSAlcyBmYWlsZWQgJWRcbiIsCj4+ICsJCWlmIChyZXQpCj4+ ICsJCQlnb3RvIGVycl9yZXF1ZXN0Owo+PiArCj4+ICtlcnJfcmVxdWVzdDoKPj4gKwkJaTkxNV9h ZGRfcmVxdWVzdF9ub19mbHVzaChyZXEpOwo+PiArCQlpZiAocmV0KSB7Cj4+ICsJCQlEUk1fRVJS T1IoIkZhaWxlZCB0byBlbmFibGUgJXMsIGVycm9yPSVkXG4iLAo+PiAgCQkJCSAgZW5naW5lLT5u YW1lLCByZXQpOwo+PiAtCQkJaTkxNV9nZW1fcmVxdWVzdF9jYW5jZWwocmVxKTsKPj4gIAkJCWk5 MTVfZ2VtX2NsZWFudXBfZW5naW5lcyhkZXYpOwo+PiAtCQkJZ290byBvdXQ7Cj4+ICsJCQlicmVh azsKPj4gIAkJfQo+PiAtCj4+IC0JCWk5MTVfYWRkX3JlcXVlc3Rfbm9fZmx1c2gocmVxKTsKPj4g IAl9Cj4+ICAKPj4gIG91dDoKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX2V4ZWNidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNi dWZmZXIuYwo+PiBpbmRleCA2ZWU0ZjAwZjYyMGMuLjZmNGYyYTZjZGY5MyAxMDA2NDQKPj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jCj4+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwo+PiBAQCAtMTEzNyw3ICsx MTM3LDcgQEAgaTkxNV9nZW1fZXhlY2J1ZmZlcl9tb3ZlX3RvX2FjdGl2ZShzdHJ1Y3QgbGlzdF9o ZWFkICp2bWFzLAo+PiAgCX0KPj4gIH0KPj4gIAo+PiAtdm9pZAo+PiArc3RhdGljIHZvaWQKPj4g IGk5MTVfZ2VtX2V4ZWNidWZmZXJfcmV0aXJlX2NvbW1hbmRzKHN0cnVjdCBpOTE1X2V4ZWNidWZm ZXJfcGFyYW1zICpwYXJhbXMpCj4+ICB7Cj4+ICAJLyogVW5jb25kaXRpb25hbGx5IGZvcmNlIGFk ZF9yZXF1ZXN0IHRvIGVtaXQgYSBmdWxsIGZsdXNoLiAqLwo+PiBAQCAtMTMyMiw3ICsxMzIyLDYg QEAgaTkxNV9nZW1fcmluZ2J1ZmZlcl9zdWJtaXNzaW9uKHN0cnVjdCBpOTE1X2V4ZWNidWZmZXJf cGFyYW1zICpwYXJhbXMsCj4+ICAJdHJhY2VfaTkxNV9nZW1fcmluZ19kaXNwYXRjaChwYXJhbXMt PnJlcXVlc3QsIHBhcmFtcy0+ZGlzcGF0Y2hfZmxhZ3MpOwo+PiAgCj4+ICAJaTkxNV9nZW1fZXhl Y2J1ZmZlcl9tb3ZlX3RvX2FjdGl2ZSh2bWFzLCBwYXJhbXMtPnJlcXVlc3QpOwo+PiAtCWk5MTVf Z2VtX2V4ZWNidWZmZXJfcmV0aXJlX2NvbW1hbmRzKHBhcmFtcyk7Cj4+ICAKPj4gIAlyZXR1cm4g MDsKPj4gIH0KPj4gQEAgLTE2MjQsNyArMTYyMyw3IEBAIGk5MTVfZ2VtX2RvX2V4ZWNidWZmZXIo c3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPj4gIAo+PiAgCXJldCA9IGk5MTVf Z2VtX3JlcXVlc3RfYWRkX3RvX2NsaWVudChyZXEsIGZpbGUpOwo+PiAgCWlmIChyZXQpCj4+IC0J CWdvdG8gZXJyX2JhdGNoX3VucGluOwo+PiArCQlnb3RvIGVycl9yZXF1ZXN0Owo+PiAgCj4+ICAJ LyoKPj4gIAkgKiBTYXZlIGFzc29ydGVkIHN0dWZmIGF3YXkgdG8gcGFzcyB0aHJvdWdoIHRvICpf c3VibWlzc2lvbigpLgo+PiBAQCAtMTY0MSw2ICsxNjQwLDggQEAgaTkxNV9nZW1fZG9fZXhlY2J1 ZmZlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+PiAgCXBhcmFtcy0+cmVx dWVzdCAgICAgICAgICAgICAgICAgPSByZXE7Cj4+ICAKPj4gIAlyZXQgPSBkZXZfcHJpdi0+Z3Qu ZXhlY2J1Zl9zdWJtaXQocGFyYW1zLCBhcmdzLCAmZWItPnZtYXMpOwo+PiArZXJyX3JlcXVlc3Q6 Cj4+ICsJaTkxNV9nZW1fZXhlY2J1ZmZlcl9yZXRpcmVfY29tbWFuZHMocGFyYW1zKTsKPj4gIAo+ PiAgZXJyX2JhdGNoX3VucGluOgo+PiAgCS8qCj4+IEBAIC0xNjU3LDE0ICsxNjU4LDYgQEAgZXJy Ogo+PiAgCWk5MTVfZ2VtX2NvbnRleHRfdW5yZWZlcmVuY2UoY3R4KTsKPj4gIAllYl9kZXN0cm95 KGViKTsKPj4gIAo+PiAtCS8qCj4+IC0JICogSWYgdGhlIHJlcXVlc3Qgd2FzIGNyZWF0ZWQgYnV0 IG5vdCBzdWNjZXNzZnVsbHkgc3VibWl0dGVkIHRoZW4gaXQKPj4gLQkgKiBtdXN0IGJlIGZyZWVk IGFnYWluLiBJZiBpdCB3YXMgc3VibWl0dGVkIHRoZW4gaXQgaXMgYmVpbmcgdHJhY2tlZAo+PiAt CSAqIG9uIHRoZSBhY3RpdmUgcmVxdWVzdCBsaXN0IGFuZCBubyBjbGVhbiB1cCBpcyByZXF1aXJl ZCBoZXJlLgo+PiAtCSAqLwo+PiAtCWlmIChyZXQgJiYgIUlTX0VSUl9PUl9OVUxMKHJlcSkpCj4+ IC0JCWk5MTVfZ2VtX3JlcXVlc3RfY2FuY2VsKHJlcSk7Cj4+IC0KPj4gIAltdXRleF91bmxvY2so JmRldi0+c3RydWN0X211dGV4KTsKPj4gIAo+PiAgcHJlX211dGV4X2VycjoKPj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+PiBpbmRleCBiMWI0NTc4NjRlMTcuLjNjYWU1OTZkMTBh MyAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+PiBAQCAtMTE2NjQs NyArMTE2NjQsNyBAQCBjbGVhbnVwX3VucGluOgo+PiAgCWludGVsX3VucGluX2ZiX29iaihmYiwg Y3J0Yy0+cHJpbWFyeS0+c3RhdGUtPnJvdGF0aW9uKTsKPj4gIGNsZWFudXBfcGVuZGluZzoKPj4g IAlpZiAoIUlTX0VSUl9PUl9OVUxMKHJlcXVlc3QpKQo+PiAtCQlpOTE1X2dlbV9yZXF1ZXN0X2Nh bmNlbChyZXF1ZXN0KTsKPj4gKwkJaTkxNV9hZGRfcmVxdWVzdF9ub19mbHVzaChyZXF1ZXN0KTsK Pj4gIAlhdG9taWNfZGVjKCZpbnRlbF9jcnRjLT51bnBpbl93b3JrX2NvdW50KTsKPj4gIAltdXRl eF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKPj4gIGNsZWFudXA6Cj4+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2xyYy5jCj4+IGluZGV4IGI4ZjZiOTY0NzJhNi4uNmZjMjRkZWFhMTZhIDEwMDY0NAo+ PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+PiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+PiBAQCAtMTAxMCw3ICsxMDEwLDYgQEAgaW50IGlu dGVsX2V4ZWNsaXN0c19zdWJtaXNzaW9uKHN0cnVjdCBpOTE1X2V4ZWNidWZmZXJfcGFyYW1zICpw YXJhbXMsCj4+ICAJdHJhY2VfaTkxNV9nZW1fcmluZ19kaXNwYXRjaChwYXJhbXMtPnJlcXVlc3Qs IHBhcmFtcy0+ZGlzcGF0Y2hfZmxhZ3MpOwo+PiAgCj4+ICAJaTkxNV9nZW1fZXhlY2J1ZmZlcl9t b3ZlX3RvX2FjdGl2ZSh2bWFzLCBwYXJhbXMtPnJlcXVlc3QpOwo+PiAtCWk5MTVfZ2VtX2V4ZWNi dWZmZXJfcmV0aXJlX2NvbW1hbmRzKHBhcmFtcyk7Cj4+ICAKPj4gIAlyZXR1cm4gMDsKPj4gIH0K Pj4gQEAgLTI2NzksMTMgKzI2NzgsMTIgQEAgaW50IGludGVsX2xyX2NvbnRleHRfZGVmZXJyZWRf YWxsb2Moc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCwKPj4gIAkJfQo+PiAgCj4+ICAJCXJldCA9 IGVuZ2luZS0+aW5pdF9jb250ZXh0KHJlcSk7Cj4+ICsJCWk5MTVfYWRkX3JlcXVlc3Rfbm9fZmx1 c2gocmVxKTsKPj4gIAkJaWYgKHJldCkgewo+PiAgCQkJRFJNX0VSUk9SKCJyaW5nIGluaXQgY29u dGV4dDogJWRcbiIsCj4+ICAJCQkJcmV0KTsKPj4gLQkJCWk5MTVfZ2VtX3JlcXVlc3RfY2FuY2Vs KHJlcSk7Cj4+ICAJCQlnb3RvIGVycm9yX3JpbmdidWY7Cj4+ICAJCX0KPj4gLQkJaTkxNV9hZGRf cmVxdWVzdF9ub19mbHVzaChyZXEpOwo+PiAgCX0KPj4gIAlyZXR1cm4gMDsKPj4gIAo+PiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfb3ZlcmxheS5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfb3ZlcmxheS5jCj4+IGluZGV4IDY2OTRlOTIzMGNkNS4uYmNjM2I2 YTAxNmQ4IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9vdmVybGF5 LmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfb3ZlcmxheS5jCj4+IEBAIC0y NDcsNyArMjQ3LDcgQEAgc3RhdGljIGludCBpbnRlbF9vdmVybGF5X29uKHN0cnVjdCBpbnRlbF9v dmVybGF5ICpvdmVybGF5KQo+PiAgCj4+ICAJcmV0ID0gaW50ZWxfcmluZ19iZWdpbihyZXEsIDQp Owo+PiAgCWlmIChyZXQpIHsKPj4gLQkJaTkxNV9nZW1fcmVxdWVzdF9jYW5jZWwocmVxKTsKPj4g KwkJaTkxNV9hZGRfcmVxdWVzdF9ub19mbHVzaChyZXEpOwo+PiAgCQlyZXR1cm4gcmV0Owo+PiAg CX0KPj4gIAo+PiBAQCAtMjkwLDcgKzI5MCw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfb3ZlcmxheV9j b250aW51ZShzdHJ1Y3QgaW50ZWxfb3ZlcmxheSAqb3ZlcmxheSwKPj4gIAo+PiAgCXJldCA9IGlu dGVsX3JpbmdfYmVnaW4ocmVxLCAyKTsKPj4gIAlpZiAocmV0KSB7Cj4+IC0JCWk5MTVfZ2VtX3Jl cXVlc3RfY2FuY2VsKHJlcSk7Cj4+ICsJCWk5MTVfYWRkX3JlcXVlc3Rfbm9fZmx1c2gocmVxKTsK Pj4gIAkJcmV0dXJuIHJldDsKPj4gIAl9Cj4+ICAKPj4gQEAgLTM1Niw3ICszNTYsNyBAQCBzdGF0 aWMgaW50IGludGVsX292ZXJsYXlfb2ZmKHN0cnVjdCBpbnRlbF9vdmVybGF5ICpvdmVybGF5KQo+ PiAgCj4+ICAJcmV0ID0gaW50ZWxfcmluZ19iZWdpbihyZXEsIDYpOwo+PiAgCWlmIChyZXQpIHsK Pj4gLQkJaTkxNV9nZW1fcmVxdWVzdF9jYW5jZWwocmVxKTsKPj4gKwkJaTkxNV9hZGRfcmVxdWVz dF9ub19mbHVzaChyZXEpOwo+PiAgCQlyZXR1cm4gcmV0Owo+PiAgCX0KPj4gIAo+PiBAQCAtNDMx LDcgKzQzMSw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfb3ZlcmxheV9yZWxlYXNlX29sZF92aWQoc3Ry dWN0IGludGVsX292ZXJsYXkgKm92ZXJsYXkpCj4+ICAKPj4gIAkJcmV0ID0gaW50ZWxfcmluZ19i ZWdpbihyZXEsIDIpOwo+PiAgCQlpZiAocmV0KSB7Cj4+IC0JCQlpOTE1X2dlbV9yZXF1ZXN0X2Nh bmNlbChyZXEpOwo+PiArCQkJaTkxNV9hZGRfcmVxdWVzdF9ub19mbHVzaChyZXEpOwo+PiAgCQkJ cmV0dXJuIHJldDsKPj4gIAkJfQo+PiAgCj4+IC0tIAo+PiAyLjguMC5yYzMKPj4gCgotLSAKSmFu aSBOaWt1bGEsIEludGVsIE9wZW4gU291cmNlIFRlY2hub2xvZ3kgQ2VudGVyCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxp c3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga14.intel.com ([192.55.52.115]:58887 "EHLO mga14.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751806AbcDRJrK (ORCPT ); Mon, 18 Apr 2016 05:47:10 -0400 From: Jani Nikula To: Daniel Vetter , Chris Wilson Cc: Daniel Vetter , intel-gfx@lists.freedesktop.org, stable@vger.kernel.org Subject: Re: [Intel-gfx] [CI-ping 15/15] drm/i915: Late request cancellations are harmful In-Reply-To: <20160413095721.GR2510@phenom.ffwll.local> References: <1460491389-8602-1-git-send-email-chris@chris-wilson.co.uk> <1460491389-8602-15-git-send-email-chris@chris-wilson.co.uk> <20160413095721.GR2510@phenom.ffwll.local> Date: Mon, 18 Apr 2016 12:46:45 +0300 Message-ID: <87lh4bp7ui.fsf@intel.com> MIME-Version: 1.0 Content-Type: text/plain Sender: stable-owner@vger.kernel.org List-ID: On Wed, 13 Apr 2016, Daniel Vetter wrote: > On Tue, Apr 12, 2016 at 09:03:09PM +0100, Chris Wilson wrote: >> Conceptually, each request is a record of a hardware transaction - we >> build up a list of pending commands and then either commit them to >> hardware, or cancel them. However, whilst building up the list of >> pending commands, we may modify state outside of the request and make >> references to the pending request. If we do so and then cancel that >> request, external objects then point to the deleted request leading to >> both graphical and memory corruption. >> >> The easiest example is to consider object/VMA tracking. When we mark an >> object as active in a request, we store a pointer to this, the most >> recent request, in the object. Then we want to free that object, we wait >> for the most recent request to be idle before proceeding (otherwise the >> hardware will write to pages now owned by the system, or we will attempt >> to read from those pages before the hardware is finished writing). If >> the request was cancelled instead, that wait completes immediately. As a >> result, all requests must be committed and not cancelled if the external >> state is unknown. >> >> All that remains of i915_gem_request_cancel() users are just a couple of >> extremely unlikely allocation failures, so remove the API entirely. >> >> A consequence of committing all incomplete requests is that we generate >> excess breadcrumbs and fill the ring much more often with dummy work. We >> have completely undone the outstanding_last_seqno optimisation. >> >> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93907 >> Signed-off-by: Chris Wilson >> Cc: Daniel Vetter >> Cc: Tvrtko Ursulin >> Cc: stable@vger.kernel.org > > Cc: John Harrison > > I'd like John's ack on this on too, but patch itself looks sound. Fast r-b > since we've discussed this a while ago already ... > > Reviewed-by: Daniel Vetter FYI, this (*) does not cherry-pick cleanly to drm-intel-fixes. BR, Jani. (*) Well, not exactly *this* but rather https://patchwork.freedesktop.org/patch/80961/ which was not posted on the list so I can't reply to it. >> --- >> drivers/gpu/drm/i915/i915_drv.h | 2 -- >> drivers/gpu/drm/i915/i915_gem.c | 50 ++++++++++++------------------ >> drivers/gpu/drm/i915/i915_gem_execbuffer.c | 15 +++------ >> drivers/gpu/drm/i915/intel_display.c | 2 +- >> drivers/gpu/drm/i915/intel_lrc.c | 4 +-- >> drivers/gpu/drm/i915/intel_overlay.c | 8 ++--- >> 6 files changed, 30 insertions(+), 51 deletions(-) >> >> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h >> index 061ecc43d935..de84dd7be971 100644 >> --- a/drivers/gpu/drm/i915/i915_drv.h >> +++ b/drivers/gpu/drm/i915/i915_drv.h >> @@ -2331,7 +2331,6 @@ struct drm_i915_gem_request { >> struct drm_i915_gem_request * __must_check >> i915_gem_request_alloc(struct intel_engine_cs *engine, >> struct intel_context *ctx); >> -void i915_gem_request_cancel(struct drm_i915_gem_request *req); >> void i915_gem_request_free(struct kref *req_ref); >> int i915_gem_request_add_to_client(struct drm_i915_gem_request *req, >> struct drm_file *file); >> @@ -2883,7 +2882,6 @@ int i915_gem_sw_finish_ioctl(struct drm_device *dev, void *data, >> struct drm_file *file_priv); >> void i915_gem_execbuffer_move_to_active(struct list_head *vmas, >> struct drm_i915_gem_request *req); >> -void i915_gem_execbuffer_retire_commands(struct i915_execbuffer_params *params); >> int i915_gem_ringbuffer_submission(struct i915_execbuffer_params *params, >> struct drm_i915_gem_execbuffer2 *args, >> struct list_head *vmas); >> diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c >> index b6879d43dd74..c6f09e7839ea 100644 >> --- a/drivers/gpu/drm/i915/i915_gem.c >> +++ b/drivers/gpu/drm/i915/i915_gem.c >> @@ -2785,7 +2785,8 @@ __i915_gem_request_alloc(struct intel_engine_cs *engine, >> * fully prepared. Thus it can be cleaned up using the proper >> * free code. >> */ >> - i915_gem_request_cancel(req); >> + intel_ring_reserved_space_cancel(req->ringbuf); >> + i915_gem_request_unreference(req); >> return ret; >> } >> >> @@ -2822,13 +2823,6 @@ i915_gem_request_alloc(struct intel_engine_cs *engine, >> return err ? ERR_PTR(err) : req; >> } >> >> -void i915_gem_request_cancel(struct drm_i915_gem_request *req) >> -{ >> - intel_ring_reserved_space_cancel(req->ringbuf); >> - >> - i915_gem_request_unreference(req); >> -} >> - >> struct drm_i915_gem_request * >> i915_gem_find_active_request(struct intel_engine_cs *engine) >> { >> @@ -3438,12 +3432,9 @@ int i915_gpu_idle(struct drm_device *dev) >> return PTR_ERR(req); >> >> ret = i915_switch_context(req); >> - if (ret) { >> - i915_gem_request_cancel(req); >> - return ret; >> - } >> - >> i915_add_request_no_flush(req); >> + if (ret) >> + return ret; >> } >> >> ret = intel_engine_idle(engine); >> @@ -4943,34 +4934,33 @@ i915_gem_init_hw(struct drm_device *dev) >> req = i915_gem_request_alloc(engine, NULL); >> if (IS_ERR(req)) { >> ret = PTR_ERR(req); >> - i915_gem_cleanup_engines(dev); >> - goto out; >> + break; >> } >> >> if (engine->id == RCS) { >> - for (j = 0; j < NUM_L3_SLICES(dev); j++) >> - i915_gem_l3_remap(req, j); >> + for (j = 0; j < NUM_L3_SLICES(dev); j++) { >> + ret = i915_gem_l3_remap(req, j); >> + if (ret) >> + goto err_request; >> + } >> } >> >> ret = i915_ppgtt_init_ring(req); >> - if (ret && ret != -EIO) { >> - DRM_ERROR("PPGTT enable %s failed %d\n", >> - engine->name, ret); >> - i915_gem_request_cancel(req); >> - i915_gem_cleanup_engines(dev); >> - goto out; >> - } >> + if (ret) >> + goto err_request; >> >> ret = i915_gem_context_enable(req); >> - if (ret && ret != -EIO) { >> - DRM_ERROR("Context enable %s failed %d\n", >> + if (ret) >> + goto err_request; >> + >> +err_request: >> + i915_add_request_no_flush(req); >> + if (ret) { >> + DRM_ERROR("Failed to enable %s, error=%d\n", >> engine->name, ret); >> - i915_gem_request_cancel(req); >> i915_gem_cleanup_engines(dev); >> - goto out; >> + break; >> } >> - >> - i915_add_request_no_flush(req); >> } >> >> out: >> diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/i915_gem_execbuffer.c >> index 6ee4f00f620c..6f4f2a6cdf93 100644 >> --- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c >> +++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c >> @@ -1137,7 +1137,7 @@ i915_gem_execbuffer_move_to_active(struct list_head *vmas, >> } >> } >> >> -void >> +static void >> i915_gem_execbuffer_retire_commands(struct i915_execbuffer_params *params) >> { >> /* Unconditionally force add_request to emit a full flush. */ >> @@ -1322,7 +1322,6 @@ i915_gem_ringbuffer_submission(struct i915_execbuffer_params *params, >> trace_i915_gem_ring_dispatch(params->request, params->dispatch_flags); >> >> i915_gem_execbuffer_move_to_active(vmas, params->request); >> - i915_gem_execbuffer_retire_commands(params); >> >> return 0; >> } >> @@ -1624,7 +1623,7 @@ i915_gem_do_execbuffer(struct drm_device *dev, void *data, >> >> ret = i915_gem_request_add_to_client(req, file); >> if (ret) >> - goto err_batch_unpin; >> + goto err_request; >> >> /* >> * Save assorted stuff away to pass through to *_submission(). >> @@ -1641,6 +1640,8 @@ i915_gem_do_execbuffer(struct drm_device *dev, void *data, >> params->request = req; >> >> ret = dev_priv->gt.execbuf_submit(params, args, &eb->vmas); >> +err_request: >> + i915_gem_execbuffer_retire_commands(params); >> >> err_batch_unpin: >> /* >> @@ -1657,14 +1658,6 @@ err: >> i915_gem_context_unreference(ctx); >> eb_destroy(eb); >> >> - /* >> - * If the request was created but not successfully submitted then it >> - * must be freed again. If it was submitted then it is being tracked >> - * on the active request list and no clean up is required here. >> - */ >> - if (ret && !IS_ERR_OR_NULL(req)) >> - i915_gem_request_cancel(req); >> - >> mutex_unlock(&dev->struct_mutex); >> >> pre_mutex_err: >> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c >> index b1b457864e17..3cae596d10a3 100644 >> --- a/drivers/gpu/drm/i915/intel_display.c >> +++ b/drivers/gpu/drm/i915/intel_display.c >> @@ -11664,7 +11664,7 @@ cleanup_unpin: >> intel_unpin_fb_obj(fb, crtc->primary->state->rotation); >> cleanup_pending: >> if (!IS_ERR_OR_NULL(request)) >> - i915_gem_request_cancel(request); >> + i915_add_request_no_flush(request); >> atomic_dec(&intel_crtc->unpin_work_count); >> mutex_unlock(&dev->struct_mutex); >> cleanup: >> diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c >> index b8f6b96472a6..6fc24deaa16a 100644 >> --- a/drivers/gpu/drm/i915/intel_lrc.c >> +++ b/drivers/gpu/drm/i915/intel_lrc.c >> @@ -1010,7 +1010,6 @@ int intel_execlists_submission(struct i915_execbuffer_params *params, >> trace_i915_gem_ring_dispatch(params->request, params->dispatch_flags); >> >> i915_gem_execbuffer_move_to_active(vmas, params->request); >> - i915_gem_execbuffer_retire_commands(params); >> >> return 0; >> } >> @@ -2679,13 +2678,12 @@ int intel_lr_context_deferred_alloc(struct intel_context *ctx, >> } >> >> ret = engine->init_context(req); >> + i915_add_request_no_flush(req); >> if (ret) { >> DRM_ERROR("ring init context: %d\n", >> ret); >> - i915_gem_request_cancel(req); >> goto error_ringbuf; >> } >> - i915_add_request_no_flush(req); >> } >> return 0; >> >> diff --git a/drivers/gpu/drm/i915/intel_overlay.c b/drivers/gpu/drm/i915/intel_overlay.c >> index 6694e9230cd5..bcc3b6a016d8 100644 >> --- a/drivers/gpu/drm/i915/intel_overlay.c >> +++ b/drivers/gpu/drm/i915/intel_overlay.c >> @@ -247,7 +247,7 @@ static int intel_overlay_on(struct intel_overlay *overlay) >> >> ret = intel_ring_begin(req, 4); >> if (ret) { >> - i915_gem_request_cancel(req); >> + i915_add_request_no_flush(req); >> return ret; >> } >> >> @@ -290,7 +290,7 @@ static int intel_overlay_continue(struct intel_overlay *overlay, >> >> ret = intel_ring_begin(req, 2); >> if (ret) { >> - i915_gem_request_cancel(req); >> + i915_add_request_no_flush(req); >> return ret; >> } >> >> @@ -356,7 +356,7 @@ static int intel_overlay_off(struct intel_overlay *overlay) >> >> ret = intel_ring_begin(req, 6); >> if (ret) { >> - i915_gem_request_cancel(req); >> + i915_add_request_no_flush(req); >> return ret; >> } >> >> @@ -431,7 +431,7 @@ static int intel_overlay_release_old_vid(struct intel_overlay *overlay) >> >> ret = intel_ring_begin(req, 2); >> if (ret) { >> - i915_gem_request_cancel(req); >> + i915_add_request_no_flush(req); >> return ret; >> } >> >> -- >> 2.8.0.rc3 >> -- Jani Nikula, Intel Open Source Technology Center