From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: Re: [PATCH 1/2] drm/i915/execlists: Wrap tail pointer after reset tweaking Date: Mon, 27 Mar 2017 14:07:09 +0300 Message-ID: <87d1d3x9k2.fsf@gaia.fi.intel.com> References: <20170327032815.19504-1-chris@chris-wilson.co.uk> <87fuhzxamn.fsf@gaia.fi.intel.com> <20170327110004.GF10606@nuc-i3427.alporthouse.com> 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 ESMTPS id 32F076E1BD for ; Mon, 27 Mar 2017 11:08:26 +0000 (UTC) In-Reply-To: <20170327110004.GF10606@nuc-i3427.alporthouse.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson Cc: intel-gfx@lists.freedesktop.org, "# v4 . 10+" List-Id: intel-gfx@lists.freedesktop.org Q2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+IHdyaXRlczoKCj4gT24gTW9u LCBNYXIgMjcsIDIwMTcgYXQgMDE6NDQ6MDBQTSArMDMwMCwgTWlrYSBLdW9wcGFsYSB3cm90ZToK Pj4gQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+IHdyaXRlczoKPj4gCj4+ ID4gSWYgdGhlIHJlcXVlc3QtPndhX3RhaWwgaXMgMCAoYmVjYXVzZSBpdCBsYW5kZWQgZXhhY3Rs eSBvbiB0aGUgZW5kIG9mCj4+ID4gdGhlIHJpbmdidWZmZXIpLCB3aGVuIHdlIHJlY29uc3RydWN0 IHJlcXVlc3QtPnRhaWwgZm9sbG93aW5nIGEgcmVzZXQgd2UKPj4gPiBmaWxsIGluIGFuIGlsbGVn YWwgdmFsdWUgKC04IG9yIDB4MDAxZmZmZjgpLiBBcyBhIHJlc3VsdCwgUklOR19IRUFEIGlzCj4+ ID4gbmV2ZXIgYWJsZSB0byBjYXRjaCB1cCB3aXRoIFJJTkdfVEFJTCBhbmQgdGhlIEdQVSBzcGlu cyBlbmRsZXNzbHkuIElmCj4+ID4gdGhlIHJpbmcgY29udGFpbnMgYSBjb3VwbGUgb2YgYnJlYWRj cnVtYnMsIGV2ZW4gb3VyIGhhbmdjaGVjayBpcyB1bmFibGUKPj4gPiB0byBjYXRjaCB0aGUgYnVz eS1sb29waW5nIGFzIHRoZSBBQ1RIRCBhbmQgc2Vxbm8gY29udGludWFsbHkgYWR2YW5jZS4KPj4g Cj4+IFRhaWwgaXMgcGFzdCByaW5nIHNpemUgKG9uIGh3KSBhbmQgdGhlIHJpbmcgY29udGVudHMg aGFzIHNlcW5vIHdyaXRlcy4KPj4gU28gd2Ugd2lsbCByZXBsYXkgdGhlIHJpbmcgY29udGVudHMg b3ZlciBhbmQgb3ZlciBhbmQgc2Vxbm8gYWR2YW5jZXMKPj4gYW5kIHdyYXBzIGJhY2sgdG8gdGhl IGZpcnN0IGJyZWFkY3J1bWJzIGluIHJpbmc/Cj4KPiBZdXAuIEl0IHdhcyBtb3N0IGNvbmZ1c2lu ZyB0byB3YXRjaC4gVGhlIGV4ZWNsaXN0X3BvcnRbXSB3YXMgc3RhdGljLAo+IFJJTkdfU1RBUlQg d2FzIHN0YXRpYywgeWV0IHRoZSBzZXFubyBrZXB0IGNoYW5naW5nLiBJIGZlbHQgbGlrZSBJIHdh cwo+IGhhbGx1Y2luYXRpbmcuIFRoYXQgb3IgaW5zb21uaWEuCgovb1wKCldoZW4gd2UgcmVzZXRf Y29tbW9uX3JpbmcoKSBpdCBpcyBhbHdheXMgYWZ0ZXIgYSBodyByZXNldC4gU28gdGhlCidsYXN0 JyBpbiBzZW5zZSBvZiBoYXJkd2FyZSdzIGxyYyBjb250ZXh0cyBkb2Vzbid0IG1lYW4gbXVjaC4K ClNvIGNhbiB3ZSBhY3R1YWxseSBnZXQgcmlkIG9mIHRoZSB0YWlsIHRyaWNrZXJ5IGFzIGZvciBm aXJzdApyZXF1ZXN0IGFmdGVyIHJlc2V0LCBhcyB0aGUgbGl0ZSByZXN0b3JlIGNhbid0IGhhcHBl biBhbmQKc2hvdWxkIG5vdCBtYXR0ZXI/CgotTWlrYQoKPiAtQ2hyaXMKPgo+IC0tIAo+IENocmlz IFdpbHNvbiwgSW50ZWwgT3BlbiBTb3VyY2UgVGVjaG5vbG9neSBDZW50cmUKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlz dApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga04.intel.com ([192.55.52.120]:16987 "EHLO mga04.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751821AbdC0LJE (ORCPT ); Mon, 27 Mar 2017 07:09:04 -0400 From: Mika Kuoppala To: Chris Wilson Cc: intel-gfx@lists.freedesktop.org, "# v4 . 10+" Subject: Re: [Intel-gfx] [PATCH 1/2] drm/i915/execlists: Wrap tail pointer after reset tweaking In-Reply-To: <20170327110004.GF10606@nuc-i3427.alporthouse.com> References: <20170327032815.19504-1-chris@chris-wilson.co.uk> <87fuhzxamn.fsf@gaia.fi.intel.com> <20170327110004.GF10606@nuc-i3427.alporthouse.com> Date: Mon, 27 Mar 2017 14:07:09 +0300 Message-ID: <87d1d3x9k2.fsf@gaia.fi.intel.com> MIME-Version: 1.0 Content-Type: text/plain Sender: stable-owner@vger.kernel.org List-ID: Chris Wilson writes: > On Mon, Mar 27, 2017 at 01:44:00PM +0300, Mika Kuoppala wrote: >> Chris Wilson writes: >> >> > If the request->wa_tail is 0 (because it landed exactly on the end of >> > the ringbuffer), when we reconstruct request->tail following a reset we >> > fill in an illegal value (-8 or 0x001ffff8). As a result, RING_HEAD is >> > never able to catch up with RING_TAIL and the GPU spins endlessly. If >> > the ring contains a couple of breadcrumbs, even our hangcheck is unable >> > to catch the busy-looping as the ACTHD and seqno continually advance. >> >> Tail is past ring size (on hw) and the ring contents has seqno writes. >> So we will replay the ring contents over and over and seqno advances >> and wraps back to the first breadcrumbs in ring? > > Yup. It was most confusing to watch. The execlist_port[] was static, > RING_START was static, yet the seqno kept changing. I felt like I was > hallucinating. That or insomnia. /o\ When we reset_common_ring() it is always after a hw reset. So the 'last' in sense of hardware's lrc contexts doesn't mean much. So can we actually get rid of the tail trickery as for first request after reset, as the lite restore can't happen and should not matter? -Mika > -Chris > > -- > Chris Wilson, Intel Open Source Technology Centre