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=-1.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_PASS,URIBL_BLOCKED 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 954A0C4360F for ; Thu, 4 Apr 2019 10:54:02 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 6E36E206C0 for ; Thu, 4 Apr 2019 10:54:02 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729466AbfDDKyB convert rfc822-to-8bit (ORCPT ); Thu, 4 Apr 2019 06:54:01 -0400 Received: from mail.fireflyinternet.com ([109.228.58.192]:51313 "EHLO fireflyinternet.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727071AbfDDKyA (ORCPT ); Thu, 4 Apr 2019 06:54:00 -0400 X-Default-Received-SPF: pass (skip=forwardok (res=PASS)) x-ip-name=78.156.65.138; Received: from localhost (unverified [78.156.65.138]) by fireflyinternet.com (Firefly Internet (M1)) with ESMTP (TLS) id 16128902-1500050 for multiple; Thu, 04 Apr 2019 11:53:47 +0100 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8BIT To: Janusz Krzysztofik From: Chris Wilson In-Reply-To: <1bda752c136f3a75817fe257027edd8be4e7472e.camel@linux.intel.com> Cc: David Airlie , intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Rodrigo Vivi References: <20190404102445.12303-1-janusz.krzysztofik@linux.intel.com> <155437373474.7532.10868620123516507965@skylake-alporthouse-com> <155437462649.7532.18347010454266779928@skylake-alporthouse-com> <1bda752c136f3a75817fe257027edd8be4e7472e.camel@linux.intel.com> Message-ID: <155437522546.7532.6754257066058816161@skylake-alporthouse-com> User-Agent: alot/0.6 Subject: Re: [Intel-gfx] [PATCH] drm/i915: Fix context IDs not released on driver hot unbind Date: Thu, 04 Apr 2019 11:53:45 +0100 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Quoting Janusz Krzysztofik (2019-04-04 11:50:14) > On Thu, 2019-04-04 at 11:43 +0100, Chris Wilson wrote: > > Quoting Janusz Krzysztofik (2019-04-04 11:40:24) > > > On Thu, 2019-04-04 at 11:28 +0100, Chris Wilson wrote: > > > > Quoting Janusz Krzysztofik (2019-04-04 11:24:45) > > > > > From: Janusz Krzysztofik > > > > > > > > > > In case the driver gets unbound while a device is open, kernel > > > > > panic > > > > > may be forced if a list of allocated context IDs is not empty. > > > > > > > > > > When a device is open, the list may happen to be not empty > > > > > because > > > > > a > > > > > context ID, once allocated by a context ID allocator to a > > > > > context > > > > > assosiated with that open file descriptor, is released as late > > > > > as > > > > > on device close. > > > > > > > > > > On the other hand, there is a need to release all allocated > > > > > context > > > > > IDs > > > > > and destroy the context ID allocator on driver unbind, even if > > > > > a > > > > > device > > > > > is open, in order to free memory resources consumed and prevent > > > > > from > > > > > memory leaks. The purpose of the forced kernel panic was to > > > > > protect > > > > > the context ID allocator from being silently destroyed if not > > > > > all > > > > > allocated IDs had been released. > > > > > > > > Those open fd are still pointing into kernel memory where the > > > > driver > > > > used to be. The panic is entirely correct, we should not be > > > > unloading > > > > the module before those dangling pointers have been made safe. > > > > > > > > This is papering over the symptom. How is the module being > > > > unloaded > > > > with > > > > open fd? > > > > > > A user can play with the driver unbind or device remove sysfs > > > interface. > > > > Sure, but we must still follow all the steps before _unloading_ the > > module or else the user is left pointing into reused kernel memory. > > I'm not talking about unloading the module, that is prevented by open > fds. The driver still exists after being unbound from a device and may > just respond with -ENODEV. i915_gem_contexts_fini() *is* module unload. -Chris From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: Re: [Intel-gfx] [PATCH] drm/i915: Fix context IDs not released on driver hot unbind Date: Thu, 04 Apr 2019 11:53:45 +0100 Message-ID: <155437522546.7532.6754257066058816161@skylake-alporthouse-com> References: <20190404102445.12303-1-janusz.krzysztofik@linux.intel.com> <155437373474.7532.10868620123516507965@skylake-alporthouse-com> <155437462649.7532.18347010454266779928@skylake-alporthouse-com> <1bda752c136f3a75817fe257027edd8be4e7472e.camel@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1bda752c136f3a75817fe257027edd8be4e7472e.camel@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Janusz Krzysztofik Cc: David Airlie , intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Rodrigo Vivi List-Id: dri-devel@lists.freedesktop.org UXVvdGluZyBKYW51c3ogS3J6eXN6dG9maWsgKDIwMTktMDQtMDQgMTE6NTA6MTQpCj4gT24gVGh1 LCAyMDE5LTA0LTA0IGF0IDExOjQzICswMTAwLCBDaHJpcyBXaWxzb24gd3JvdGU6Cj4gPiBRdW90 aW5nIEphbnVzeiBLcnp5c3p0b2ZpayAoMjAxOS0wNC0wNCAxMTo0MDoyNCkKPiA+ID4gT24gVGh1 LCAyMDE5LTA0LTA0IGF0IDExOjI4ICswMTAwLCBDaHJpcyBXaWxzb24gd3JvdGU6Cj4gPiA+ID4g UXVvdGluZyBKYW51c3ogS3J6eXN6dG9maWsgKDIwMTktMDQtMDQgMTE6MjQ6NDUpCj4gPiA+ID4g PiBGcm9tOiBKYW51c3ogS3J6eXN6dG9maWsgPGphbnVzei5rcnp5c3p0b2Zpa0BpbnRlbC5jb20+ Cj4gPiA+ID4gPiAKPiA+ID4gPiA+IEluIGNhc2UgdGhlIGRyaXZlciBnZXRzIHVuYm91bmQgd2hp bGUgYSBkZXZpY2UgaXMgb3Blbiwga2VybmVsCj4gPiA+ID4gPiBwYW5pYwo+ID4gPiA+ID4gbWF5 IGJlIGZvcmNlZCBpZiBhIGxpc3Qgb2YgYWxsb2NhdGVkIGNvbnRleHQgSURzIGlzIG5vdCBlbXB0 eS4KPiA+ID4gPiA+IAo+ID4gPiA+ID4gV2hlbiBhIGRldmljZSBpcyBvcGVuLCB0aGUgbGlzdCBt YXkgaGFwcGVuIHRvIGJlIG5vdCBlbXB0eQo+ID4gPiA+ID4gYmVjYXVzZQo+ID4gPiA+ID4gYQo+ ID4gPiA+ID4gY29udGV4dCBJRCwgb25jZSBhbGxvY2F0ZWQgYnkgYSBjb250ZXh0IElEIGFsbG9j YXRvciB0byBhCj4gPiA+ID4gPiBjb250ZXh0Cj4gPiA+ID4gPiBhc3Nvc2lhdGVkIHdpdGggdGhh dCBvcGVuIGZpbGUgZGVzY3JpcHRvciwgaXMgcmVsZWFzZWQgYXMgbGF0ZQo+ID4gPiA+ID4gYXMK PiA+ID4gPiA+IG9uIGRldmljZSBjbG9zZS4KPiA+ID4gPiA+IAo+ID4gPiA+ID4gT24gdGhlIG90 aGVyIGhhbmQsIHRoZXJlIGlzIGEgbmVlZCB0byByZWxlYXNlIGFsbCBhbGxvY2F0ZWQKPiA+ID4g PiA+IGNvbnRleHQKPiA+ID4gPiA+IElEcwo+ID4gPiA+ID4gYW5kIGRlc3Ryb3kgdGhlIGNvbnRl eHQgSUQgYWxsb2NhdG9yIG9uIGRyaXZlciB1bmJpbmQsIGV2ZW4gaWYKPiA+ID4gPiA+IGEKPiA+ ID4gPiA+IGRldmljZQo+ID4gPiA+ID4gaXMgb3BlbiwgaW4gb3JkZXIgdG8gZnJlZSBtZW1vcnkg cmVzb3VyY2VzIGNvbnN1bWVkIGFuZCBwcmV2ZW50Cj4gPiA+ID4gPiBmcm9tCj4gPiA+ID4gPiBt ZW1vcnkgbGVha3MuICBUaGUgcHVycG9zZSBvZiB0aGUgZm9yY2VkIGtlcm5lbCBwYW5pYyB3YXMg dG8KPiA+ID4gPiA+IHByb3RlY3QKPiA+ID4gPiA+IHRoZSBjb250ZXh0IElEIGFsbG9jYXRvciBm cm9tIGJlaW5nIHNpbGVudGx5IGRlc3Ryb3llZCBpZiBub3QKPiA+ID4gPiA+IGFsbAo+ID4gPiA+ ID4gYWxsb2NhdGVkIElEcyBoYWQgYmVlbiByZWxlYXNlZC4KPiA+ID4gPiAKPiA+ID4gPiBUaG9z ZSBvcGVuIGZkIGFyZSBzdGlsbCBwb2ludGluZyBpbnRvIGtlcm5lbCBtZW1vcnkgd2hlcmUgdGhl Cj4gPiA+ID4gZHJpdmVyCj4gPiA+ID4gdXNlZCB0byBiZS4gVGhlIHBhbmljIGlzIGVudGlyZWx5 IGNvcnJlY3QsIHdlIHNob3VsZCBub3QgYmUKPiA+ID4gPiB1bmxvYWRpbmcKPiA+ID4gPiB0aGUg bW9kdWxlIGJlZm9yZSB0aG9zZSBkYW5nbGluZyBwb2ludGVycyBoYXZlIGJlZW4gbWFkZSBzYWZl Lgo+ID4gPiA+IAo+ID4gPiA+IFRoaXMgaXMgcGFwZXJpbmcgb3ZlciB0aGUgc3ltcHRvbS4gSG93 IGlzIHRoZSBtb2R1bGUgYmVpbmcKPiA+ID4gPiB1bmxvYWRlZAo+ID4gPiA+IHdpdGgKPiA+ID4g PiBvcGVuIGZkPyAKPiA+ID4gCj4gPiA+IEEgdXNlciBjYW4gcGxheSB3aXRoIHRoZSBkcml2ZXIg dW5iaW5kIG9yIGRldmljZSByZW1vdmUgc3lzZnMKPiA+ID4gaW50ZXJmYWNlLgo+ID4gCj4gPiBT dXJlLCBidXQgd2UgbXVzdCBzdGlsbCBmb2xsb3cgYWxsIHRoZSBzdGVwcyBiZWZvcmUgX3VubG9h ZGluZ18gdGhlCj4gPiBtb2R1bGUgb3IgZWxzZSB0aGUgdXNlciBpcyBsZWZ0IHBvaW50aW5nIGlu dG8gcmV1c2VkIGtlcm5lbCBtZW1vcnkuCj4gCj4gSSdtIG5vdCB0YWxraW5nIGFib3V0IHVubG9h ZGluZyB0aGUgbW9kdWxlLCB0aGF0IGlzIHByZXZlbnRlZCBieSBvcGVuCj4gZmRzLiAgVGhlIGRy aXZlciBzdGlsbCBleGlzdHMgYWZ0ZXIgYmVpbmcgdW5ib3VuZCBmcm9tIGEgZGV2aWNlIGFuZCBt YXkKPiBqdXN0IHJlc3BvbmQgd2l0aCAtRU5PREVWLgoKaTkxNV9nZW1fY29udGV4dHNfZmluaSgp ICppcyogbW9kdWxlIHVubG9hZC4KLUNocmlzCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2RyaS1kZXZlbA==