From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: Re: [PATCH v2] drm/i915: Fix BUG in i915_gem.c when switch to console Date: Thu, 12 Mar 2015 09:00:33 -0700 Message-ID: <20150312160033.GU27526@intel.com> References: <87pp8er54n.fsf@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id BED826E477 for ; Thu, 12 Mar 2015 09:02:32 -0700 (PDT) Content-Disposition: inline In-Reply-To: <87pp8er54n.fsf@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Jani Nikula Cc: Xi Ruoyao , intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org, airlied@linux.ie, dri-level@lists.freedesktop.org, daniel.vetter@intel.com List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBNYXIgMTIsIDIwMTUgYXQgMTA6Mjg6NTZBTSArMDIwMCwgSmFuaSBOaWt1bGEgd3Jv dGU6Cj4gT24gVGh1LCAxMiBNYXIgMjAxNSwgWGkgUnVveWFvIDx4cnkxMTFAb3V0bG9vay5jb20+ IHdyb3RlOgo+ID4gSW4gaW50ZWxfY3J0Y19wYWdlX2ZsaXAsIGludGVsX2Rpc3BsYXkuYywgdGhl IGNvZGUgY2hhbmdlZCB0aGUgZnJhbWVidWZmZXIKPiA+IGFzc2lnbmVkIHRvIHBsYW5lIGNydGMt PnByaW1hcnkgYnkKPiA+Cj4gPiBjcnRjLT5wcmltYXJ5LT5mYiA9IGZiOwo+ID4KPiA+IEhvd2V2 ZXIsIGl0IGZvcmdvdCB0byBjaGFuZ2UgY3J0Yy0+cHJpbWFyeS0+c3RhdGUtPmZiLiBIb3dldmVy LCB3aGVuIHdlCj4gPiBzd2l0Y2ggdG8gY29uc29sZSwgc29tZSBrZXJuZWwgY29kZSB3aWxsIHJl YWQgY3J0Yy0+cHJpbWFyeS0+c3RhdGUtPmZiCj4gPiB0byBnZXQgdGhlIGZyYW1lYnVmZmVyIGFz c2lnbmVkIHRvIGNydGMtPnByaW1hdHkuIFRoZW4gYSBmcmFtZWJ1ZmZlcgo+ID4gb2JqZWN0IGNh biBiZSB1bnBpbm5lZCB0d2ljZSBhbmQgYSBrZXJuZWwgQlVHIHdpbGwgYmUgcHJvZHVjZWQgaW4g aTkxNV9nZW0uYy4KPiA+Cj4gPiBTbywgdXBkYXRlIGNydGMtPnByaW1hcnktPnN0YXRlLT5mYiBp biBpbnRlbF9kaXNwbGF5LmMgdXNpbmcKPiA+IGRybV9hdG9taWNfc2V0X2ZiX2Zvcl9wbGFuZSB0 byBmaXggdGhlIEJVRy4KPiA+Cj4gPiBTaWduZWQtb2ZmLWJ5OiBYaSBSdW95YW8gPHhyeTExMUBv dXRsb29rLmNvbT4KPiA+IEZpeGVkOiBCdWcgOTM3MTEgPGh0dHBzOi8vYnVnemlsbGEua2VybmVs Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTM3MTE+Cj4gCj4gSXMgdGhpcyBhIHByb2JsZW0gd2l0aCBk cm0taW50ZWwtbmlnaHRseT8gSW4gcGFydGljdWxhciBzZWUKPiAKPiBjb21taXQgYWZkNjVlYjRj YzA1NzhhOWMwN2Q2MjFhY2RiOGE1NzBlMjc4MmJmNwo+IEF1dGhvcjogTWF0dCBSb3BlciA8bWF0 dGhldy5kLnJvcGVyQGludGVsLmNvbT4KPiBEYXRlOiAgIFR1ZSBGZWIgMyAxMzoxMDowNCAyMDE1 IC0wODAwCj4gCj4gICAgIGRybS9pOTE1OiBFbnN1cmUgcGxhbmUtPnN0YXRlLT5mYiBzdGF5cyBp biBzeW5jIHdpdGggcGxhbmUtPmZiCj4gCj4gTWF0dCwgZG8geW91IHRoaW5rIHRoaXMgZml4ZXMg dGhlIGRlc2NyaWJlZCBpc3N1ZT8gQ2FuIHdlIGJhY2twb3J0IHRvCj4gZHJtLWludGVsLWZpeGVz IChhbmQgdjQuMCk/Cj4gCj4gQlIsCj4gSmFuaS4KPiAKClllYWgsIFhpJ3MgcGF0Y2ggc2hvdWxk IGJlIHRoZSBlcXVpdmFsZW50IG9mIG15IGV2ZW4gZWFybGllciBwYXRjaDoKCiAgICAgICAgY29t bWl0IGRiMDY4NDIwNTYwNTExZGU4MGFjNTkyMjI2NDRmMmJkZjI3OGMzZDUKICAgICAgICBBdXRo b3I6IE1hdHQgUm9wZXIgPG1hdHRoZXcuZC5yb3BlckBpbnRlbC5jb20+CiAgICAgICAgRGF0ZTog ICBGcmkgSmFuIDMwIDE2OjIyOjM2IDIwMTUgLTA4MDAKCiAgICAgICAgICAgIGRybS9pOTE1OiBL ZWVwIHBsYW5lLT5zdGF0ZSB1cGRhdGVkIG9uIHBhZ2VmbGlwCgpzbyBiYWNrcG9ydGluZyBlaXRo ZXIgb2YgdGhvc2Ugd291bGQgYmUgZmluZSB0byBzb2x2ZSB0aGUgaXNzdWUuICBUaGUKT25lIHlv dSByZWZlcmVuY2UgYWJvdmUgYWxzbyBjbGVhbnMgdXAgbW9yZSBwbGFjZXMgd2hlcmUgd2UgZ2V0 IG91dCBvZgpzeW5jLCBidXQgSSdtIG5vdCBzdXJlIGlmIGFueSBvZiB0aG9zZSBjYXVzZSBpbW1l ZGlhdGUgcHJvYmxlbXM7IEkgdGhpbmsKdGhvc2Ugd2VyZSBqdXN0IHByZXBhcmF0aW9uIGZvciBv dGhlciAtbmV4dCB3b3JrIHRoYXQgd2FzIG9uIHRoZSB3YXkuCgoKTWF0dAoKPiAKPiAKPiA+IC0t LQo+ID4gIFNvcnJ5LCB0aGUgcHJldmlvdXMgcGF0Y2ggaXMgbWFuZ2xlZCBieSBlbWFpbCBjbGll bnQsIHNvIEkgYW0gcmUtc2VuZGluZyBpdC4KPiA+Cj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGlzcGxheS5jIHwgMiArKwo+ID4gIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMo KykKPiA+Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxh eS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiBpbmRleCBlNzMw Nzg5Li45NzA4M2ZkIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGlzcGxheS5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMK PiA+IEBAIC0zNyw2ICszNyw3IEBACj4gPiAgI2luY2x1ZGUgPGRybS9pOTE1X2RybS5oPgo+ID4g ICNpbmNsdWRlICJpOTE1X2Rydi5oIgo+ID4gICNpbmNsdWRlICJpOTE1X3RyYWNlLmgiCj4gPiAr I2luY2x1ZGUgPGRybS9kcm1fYXRvbWljLmg+Cj4gPiAgI2luY2x1ZGUgPGRybS9kcm1fYXRvbWlj X2hlbHBlci5oPgo+ID4gICNpbmNsdWRlIDxkcm0vZHJtX2RwX2hlbHBlci5oPgo+ID4gICNpbmNs dWRlIDxkcm0vZHJtX2NydGNfaGVscGVyLmg+Cj4gPiBAQCAtOTgxNiw2ICs5ODE3LDcgQEAgc3Rh dGljIGludCBpbnRlbF9jcnRjX3BhZ2VfZmxpcChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gPiAg CWRybV9nZW1fb2JqZWN0X3JlZmVyZW5jZSgmb2JqLT5iYXNlKTsKPiA+ICAKPiA+ICAJY3J0Yy0+ cHJpbWFyeS0+ZmIgPSBmYjsKPiA+ICsJZHJtX2F0b21pY19zZXRfZmJfZm9yX3BsYW5lKGNydGMt PnByaW1hcnktPnN0YXRlLCBmYik7Cj4gPiAgCj4gPiAgCXdvcmstPnBlbmRpbmdfZmxpcF9vYmog PSBvYmo7Cj4gPiAgCj4gPiAtLSAKPiA+IDEuOS4xCj4gPgo+IAo+IC0tIAo+IEphbmkgTmlrdWxh LCBJbnRlbCBPcGVuIFNvdXJjZSBUZWNobm9sb2d5IENlbnRlcgoKLS0gCk1hdHQgUm9wZXIKR3Jh cGhpY3MgU29mdHdhcmUgRW5naW5lZXIKSW9URyBQbGF0Zm9ybSBFbmFibGluZyAmIERldmVsb3Bt ZW50CkludGVsIENvcnBvcmF0aW9uCig5MTYpIDM1Ni0yNzk1Cl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1030277AbbCLQCe (ORCPT ); Thu, 12 Mar 2015 12:02:34 -0400 Received: from mga03.intel.com ([134.134.136.65]:34780 "EHLO mga03.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932198AbbCLQCd (ORCPT ); Thu, 12 Mar 2015 12:02:33 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.11,389,1422950400"; d="scan'208";a="664361305" Date: Thu, 12 Mar 2015 09:00:33 -0700 From: Matt Roper To: Jani Nikula Cc: Xi Ruoyao , daniel.vetter@intel.com, airlied@linux.ie, intel-gfx@lists.freedesktop.org, dri-level@lists.freedesktop.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v2] drm/i915: Fix BUG in i915_gem.c when switch to console Message-ID: <20150312160033.GU27526@intel.com> References: <87pp8er54n.fsf@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <87pp8er54n.fsf@intel.com> User-Agent: Mutt/1.5.20 (2009-06-14) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Mar 12, 2015 at 10:28:56AM +0200, Jani Nikula wrote: > On Thu, 12 Mar 2015, Xi Ruoyao wrote: > > In intel_crtc_page_flip, intel_display.c, the code changed the framebuffer > > assigned to plane crtc->primary by > > > > crtc->primary->fb = fb; > > > > However, it forgot to change crtc->primary->state->fb. However, when we > > switch to console, some kernel code will read crtc->primary->state->fb > > to get the framebuffer assigned to crtc->primaty. Then a framebuffer > > object can be unpinned twice and a kernel BUG will be produced in i915_gem.c. > > > > So, update crtc->primary->state->fb in intel_display.c using > > drm_atomic_set_fb_for_plane to fix the BUG. > > > > Signed-off-by: Xi Ruoyao > > Fixed: Bug 93711 > > Is this a problem with drm-intel-nightly? In particular see > > commit afd65eb4cc0578a9c07d621acdb8a570e2782bf7 > Author: Matt Roper > Date: Tue Feb 3 13:10:04 2015 -0800 > > drm/i915: Ensure plane->state->fb stays in sync with plane->fb > > Matt, do you think this fixes the described issue? Can we backport to > drm-intel-fixes (and v4.0)? > > BR, > Jani. > Yeah, Xi's patch should be the equivalent of my even earlier patch: commit db068420560511de80ac59222644f2bdf278c3d5 Author: Matt Roper Date: Fri Jan 30 16:22:36 2015 -0800 drm/i915: Keep plane->state updated on pageflip so backporting either of those would be fine to solve the issue. The One you reference above also cleans up more places where we get out of sync, but I'm not sure if any of those cause immediate problems; I think those were just preparation for other -next work that was on the way. Matt > > > > --- > > Sorry, the previous patch is mangled by email client, so I am re-sending it. > > > > drivers/gpu/drm/i915/intel_display.c | 2 ++ > > 1 file changed, 2 insertions(+) > > > > diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c > > index e730789..97083fd 100644 > > --- a/drivers/gpu/drm/i915/intel_display.c > > +++ b/drivers/gpu/drm/i915/intel_display.c > > @@ -37,6 +37,7 @@ > > #include > > #include "i915_drv.h" > > #include "i915_trace.h" > > +#include > > #include > > #include > > #include > > @@ -9816,6 +9817,7 @@ static int intel_crtc_page_flip(struct drm_crtc *crtc, > > drm_gem_object_reference(&obj->base); > > > > crtc->primary->fb = fb; > > + drm_atomic_set_fb_for_plane(crtc->primary->state, fb); > > > > work->pending_flip_obj = obj; > > > > -- > > 1.9.1 > > > > -- > Jani Nikula, Intel Open Source Technology Center -- Matt Roper Graphics Software Engineer IoTG Platform Enabling & Development Intel Corporation (916) 356-2795