From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oded Gabbay Subject: Re: [PATCH 1/3] amdkfd: Don't clear *kfd2kgd on kfd_module_init Date: Sun, 21 Dec 2014 15:24:31 +0200 Message-ID: <5496CA0F.8000800@amd.com> References: <1419108374-7020-1-git-send-email-oded.gabbay@amd.com> <1419108374-7020-2-git-send-email-oded.gabbay@amd.com> <5496AEAD.3090003@vodafone.de> <5496B04C.50502@amd.com> <5496BAE0.5090901@vodafone.de> <5496C5EA.7050200@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1on0140.outbound.protection.outlook.com [157.56.110.140]) by gabe.freedesktop.org (Postfix) with ESMTP id 65D216E0B3 for ; Sun, 21 Dec 2014 05:24:55 -0800 (PST) In-Reply-To: <5496C5EA.7050200@amd.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: =?UTF-8?B?Q2hyaXN0aWFuIEvDtm5pZw==?= , dri-devel@lists.freedesktop.org Cc: Alexander.Deucher@amd.com, linux-kernel@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org CgpPbiAxMi8yMS8yMDE0IDAzOjA2IFBNLCBPZGVkIEdhYmJheSB3cm90ZToKPgo+Cj4gT24gMTIv MjEvMjAxNCAwMjoxOSBQTSwgQ2hyaXN0aWFuIEvDtm5pZyB3cm90ZToKPj4gQW0gMjEuMTIuMjAx NCB1bSAxMjozNCBzY2hyaWViIE9kZWQgR2FiYmF5Ogo+Pj4KPj4+Cj4+PiBPbiAxMi8yMS8yMDE0 IDAxOjI3IFBNLCBDaHJpc3RpYW4gS8O2bmlnIHdyb3RlOgo+Pj4+IEFtIDIwLjEyLjIwMTQgdW0g MjE6NDYgc2NocmllYiBPZGVkIEdhYmJheToKPj4+Pj4gV2hlbiBhbWRrZmQgYW5kIHJhZGVvbiBh cmUgY29tcGlsZWQgaW5zaWRlIHRoZSBrZXJuZWwgaW1hZ2UgKG5vdCBhcyBtb2R1bGVzKSwKPj4+ Pj4gcmFkZW9uIHdpbGwgbG9hZCBiZWZvcmUgYW1ka2ZkIGFuZCB3aWxsIHNldCAqa2ZkMmtnZCB0 byBpdHMgaW50ZXJmYWNlCj4+Pj4+IHN0cnVjdHVyZS4gVGhlcmVmb3JlLCB3ZSBtdXN0IG5vdCBz ZXQgKmtmZDJrZ2QgdG8gTlVMTCB3aGVuIGFtZGtmZCBpcyBsb2FkZWQKPj4+Pj4gYmVjYXVzZSBp dCB3aWxsIG92ZXJyaWRlIHJhZGVvbidzIGluaXRpYWxpemF0aW9uIGFuZCBjYXVzZSBrZXJuZWwg QlVHLgo+Pj4+Pgo+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBPZGVkIEdhYmJheSA8b2RlZC5nYWJiYXlA YW1kLmNvbT4KPj4+Pgo+Pj4+IFlvdSBzaG91bGQgcHJvYmFibHkgcmF0aGVyIGZpeCB0aGUgZGVw ZW5kZW5jeSBiZXR3ZWVuIHRoZSB0d28gbW9kdWxlcyB0byBnZXQgYW4KPj4+PiBkZXRlcm1pbmVk IGxvYWQgb3JkZXIgaW5zdGVhZCBvZiBkb2luZyBzdWNoIG5hc3R5IHdvcmthcm91bmRzLgo+Pj4+ Cj4+Pj4gQ2hyaXN0aWFuLgo+Pj4KPj4+IFRoZSBwcm9ibGVtIGlzIHRoYXQgd2hlbiBtb2R1bGVz IGFyZSBjb21waWxlZCBpbnNpZGUgdGhlIGtlcm5lbCwgdGhlcmUgaXMgTk8KPj4+IGRldGVybWlu ZWQgbG9hZCBvcmRlciBhbmQgdGhlcmUgaXMgbm8gbWVjaGFuaXNtIHRvIGVuZm9yY2UgdGhhdC4g SWYgdGhlcmUKPj4+IGlzL3dhcyBzdWNoIGEgbWVjaGFuaXNtLCBJIHdvdWxkIG9mIGNvdXJzZSBw cmVmZXIgdG8gdXNlIGl0Lgo+Pgo+PiBUaGVyZSBzaG91bGQgYmUgYW4gZGV0ZXJtaW5lZCBvcmRl ciBiYXNlZCBvbiB0aGUgc3ltYm9sIHVzZSwgb3RoZXJ3aXNlCj4+IGluaXRpYWxpemluZyBtb3N0 IG9mIHRoZSBrZXJuZWwgbW9kdWxlcyB3b3VsZG4ndCB3b3JrIGFzIGV4cGVjdGVkLiBGb3IgZXhh bXBsZQo+PiByYWRlb24gZGVwZW5kcyBvbiB0aGUgZHJtIG1vZHVsZSBtdXN0IGJlIGxvYWRlZCBi ZWZvcmUgcmFkZW9uIGlzIGxvYWRlZC4KPiBUaGVyZSBzaG91bGQgYmUsIGJ1dCB3aGVuIHRoZSBt b2R1bGVzIGFyZSBjb21waWxlZCBpbiwgdGhleSBhcmUgbG9hZGVkIGJhc2VkIG9uCj4gbGluayBv cmRlciBvbmx5LCBpZiB0aGV5IGFyZSBpbiB0aGUgc2FtZSBncm91cCwgYW5kIHRoZSBncm91cHMg YXJlIGxvYWRlZCBieSBhCj4gcHJlLWRlZmluZWQgb3JkZXIuCj4gVGhlIGdyb3VwcyBhcmU6IHB1 cmUsIGNvcmUsIHBvc3Rjb3JlLCBhcmNoLCBzdWJzeXMsIGZzLCBkZXZpY2UgKHdoaWNoIHJlcHJl c2VudHMKPiBhbGwgdGhlIG1vZHVsZXMpIGFuZCBsYXRlLiBTZWUgaW5pdC5oCj4KPiBTbyByYWRl b24sIGFtZGtmZCBhbmQgYW1kX2lvbW11X3YyIGFyZSBhbGwgaW4gZGV2aWNlIGdyb3VwLCBhbmQg aW4gdGhlIGdyb3VwCj4gdGhleSBhcmUgb3JkZXJlZCBieSB0aGVpciBsaW5rIG9yZGVyLgo+Cj4g WWVzLCByYWRlb24gbG9hZHMgYWZ0ZXIgZHJtLCBiZWNhdXNlIGRybSoubyBhcmUgYmVmb3JlIHJh ZGVvbioubyBpbiB0aGUKPiBNYWtlZmlsZS4gU2VlCj4gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29t L3F1ZXN0aW9ucy81NjY5NjQ3L2xpbnV4LW9yZGVyLW9mLXN0YXRpY2FsbHktbGlua2VkLW1vZHVs ZS1sb2FkaW5nCj4KClNvIEkgdHJpZWQgbW92aW5nIGFtZGtmZCBpbnNpZGUgdGhlIE1ha2VmaWxl IGJlZm9yZSByYWRlb24sIGFuZCB0aGF0IG1hZGUgYW1ka2ZkIApsb2FkIGJlZm9yZSByYWRlb24g ZGlkLiBUaGlzIHNvbHZlcyBteSBmaXJzdCBwcm9ibGVtIC0gb3JkZXIgYmV0d2VlbiBhbWRrZmQg YW5kIApyYWRlb24uIEhvd2V2ZXIsIGFtZF9pb21tdV92MiBkb2Vzbid0IGJlbG9uZyB0byB0aGUg ZHJtIE1ha2VmaWxlLCBhbmQgSSBkb24ndCAKd2FudCB0byBtb3ZlIGlvbW11IGJlZm9yZSBncHUs IHNvIEkgZG9uJ3QgaGF2ZSBhIHNvbHV0aW9uIGZvciB0aGUgb3JkZXIgYmV0d2VlbiAKYW1ka2Zk IGFuZCBhbWRfaW9tbXVfdjIuCgoJT2RlZAo+Cj4KPj4KPj4+Cj4+PiBBY3R1YWxseSwgSSBkb24n dCB1bmRlcnN0YW5kIHdoeSB0aGUga2VybmVsIGRvZXNuJ3QgZW5mb3JjZSB0aGUgb3JkZXIKPj4+ IGFjY29yZGluZyB0byB0aGUgdXNlIG9mIGV4cG9ydGVkIHN5bWJvbHMsIGxpa2UgaXQgZG9lcyB3 aXRoIG1vZHVsZXMuCj4+Cj4+IFllYWgsIHRoYXQncyBpbmRlZWQgcmF0aGVyIHN0cmFuZ2UuIFRo ZXJlIG11c3QgYmUgc29tZXRoaW5nIGluIHRoZSBhbWRrZmQgY29kZQo+PiB3aGljaCBicm9rZSB0 aGF0IHNvbWVob3cuCj4gSU1PLCB0aGF0J3MgYSBmYXItZmV0Y2hlZCBndWVzcy4gQ291bGQgeW91 IHBvaW50IHRvIHNvbWV0aGluZyBtb3JlIHNwZWNpZmljID8KPgo+Pgo+PiBBcyBmYXIgYXMgSSB1 bmRlcnN0YW5kIHlvdSB0aGUgZGVzaXJlZCBpbml0IG9yZGVyIGlzIHJhZGVvbiBhbmQgYW1kX2lv bW11X3YyCj4+IGZpcnN0IGFuZCB0aGVuIGFtZGtmZCwgcmlnaHQ/Cj4gQWN0dWFsbHkgbm8uIFRo ZSBwcmVmZXJyZWQgb3JkZXIgaXMgYW1kX2lvbW11X3YyLCBhbWRrZmQgYW5kIHJhZGVvbiBsYXN0 LiBUaGlzCj4gaXMgdGhlIG9yZGVyIHRoYXQgaGFwcGVucyB3aGVuIGFsbCB0aHJlZSBhcmUgYnVp bHQgYXMgbW9kdWxlcy4gTW9yZSBhY2N1cmF0ZWx5LAo+IHJhZGVvbiBpbml0cywgYnV0IGl0cyBp bml0IHRyaWdnZXJzIGFtZGtmZCBpbml0LCB3aGljaCB0cmlnZ2VycyBhbWRfaW9tbXVfdjIKPiBp bml0LiBTbyBiZWZvcmUgcmFkZW9uIHJlYWNoZXMgaXRzIHByb2JlIHN0YWdlLCBhbGwgdGhlIG1v ZHVsZXMgd2VyZSBpbml0aWFsaXplZC4KPgo+IFNvIHdoYXQgaGFwcGVucyB3aGVuIHlvdSBib290 IHdpdGggcmFkZW9uLAo+PiBhbWRfaW9tbXVfdjIgYW5kIGFtZGtmZCBibGFja2xpc3RlZCBmb3Ig YXV0b21hdGljYWxseSBsb2FkIGFuZCBvbmx5IGxvYWQgYW1ka2ZkCj4+IG1hbnVhbGx5Pwo+IEFz IHNhaWQgYWJvdmUsIHRoYXQncyBvay4KPj4KPj4+IFRoZXJlIHdpbGwgYWx3YXlzIGJlIGRlcGVu ZGVuY2llcyBiZXR3ZWVuIGtnZCAocmFkZW9uKSBhbmQgYW1ka2ZkIGFuZCBiZXR3ZWVuCj4+PiBh bWRrZmQgYW5kIGFtZF9pb21tdV92Mi4gSSBkb24ndCB0aGluayBJIGNhbiBlbGltaW5hdGUgdGhv c2UgZGVwZW5kZW5jaWVzLCBub3QKPj4+IHdpdGhvdXQgYSB2ZXJ5IGNvbXBsZXggc29sdXRpb24u IEFuZCB0aGUgZmFjdCB0aGF0IHRoaXMgY29tcGxleCBzb2x1dGlvbgo+Pj4gb2NjdXJzIG9ubHkg aW4gYSB2ZXJ5IHNwZWNpZmljIHVzZSBjYXNlIChhbGwgbW9kdWxlcyBjb21waWxlZCBpbiksIG1h a2VzIG1lCj4+PiBsZXNzIGluY2xpbmVkIHRvIGRvIHRoYXQuCj4+Pgo+Pj4gU28gSSBkb24ndCBz ZWUgaXQgYXMgYSAibmFzdHkgd29ya2Fyb3VuZCIuIEkgd291bGQgY2FsbCBpdCBqdXN0IGEgIndv cmthcm91bmQiCj4+PiBmb3IgYSBzcGVjaWZpYyB1c2UgY2FzZSwgd2hpY2ggc2hvdWxkIGJlIHNv bHZlZCBieSBhIGdlbmVyaWMgc29sdXRpb24gdG8gdGhlCj4+PiBrZXJuZWwgZW5mb3JjaW5nIGxv YWQgb3JkZXJzLgo+Pgo+PiBUaGUgbm9ybWFsIGtlcm5lbCBtb2R1bGUgaGFuZGxpbmcgYWxyZWFk eSBzaG91bGQgcHJvdmlkZSB0aGUgY29ycmVjdCBpbml0IG9yZGVyLAo+PiBzbyBJIHdvdWxkIHN0 aWxsIGNhbGwgdGhpcyBhIHJhdGhlciBuYXN0eSB3b3JrYXJvdW5kIGJlY2F1c2Ugd2UgY291bGRu J3QgZmluZAo+PiB0aGUgdW5kZXJseWluZyBwcm9ibGVtLgo+IFdlbGwsIHRoZSBub3JtYWwga2Vy bmVsIG1vZHVsZSBoYW5kbGluZyBkb2Vzbid0IHdvcmsgd2hlbiBhbGwgbW9kdWxlcyBhcmUKPiBj b21waWxlZCBpbi4gSSdtIG5vdCBhIGh1Z2UgZXhwZXJ0IG9uIHRoaXMgaXNzdWUgc28gSSBoYWQg Sm9lcmcgUm9lZGVsIGhlbHAgbWUKPiBhbmFseXplIHRoaXMgKHRoYW5rcyBKb2VyZykgYW5kIGhl IGFncmVlZCB0aGF0IHRoZXJlIGlzIG5vIGVuZm9yY2VtZW50IG9mIG9yZGVyCj4gaW4gdGhpcyBj YXNlLgo+Cj4+Cj4+IENocmlzdGlhbi4KPj4KPj4+Cj4+PiAgICAgT2RlZAo+Pj4+Cj4+Pj4+IC0t LQo+Pj4+PiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9tb2R1bGUuYyB8IDUgKyst LS0KPj4+Pj4gICAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygt KQo+Pj4+Pgo+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2Zk X21vZHVsZS5jCj4+Pj4+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX21vZHVsZS5j Cj4+Pj4+IGluZGV4IDk1ZDVhZjEuLjIzNjU2MmYgMTAwNjQ0Cj4+Pj4+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9tb2R1bGUuYwo+Pj4+PiArKysgYi9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGtmZC9rZmRfbW9kdWxlLmMKPj4+Pj4gQEAgLTM0LDcgKzM0LDcgQEAKPj4+Pj4g ICAjZGVmaW5lIEtGRF9EUklWRVJfTUlOT1IgICAgNwo+Pj4+PiAgICNkZWZpbmUgS0ZEX0RSSVZF Ul9QQVRDSExFVkVMICAgIDAKPj4+Pj4gLWNvbnN0IHN0cnVjdCBrZmQya2dkX2NhbGxzICprZmQy a2dkOwo+Pj4+PiArY29uc3Qgc3RydWN0IGtmZDJrZ2RfY2FsbHMgKmtmZDJrZ2QgPSBOVUxMOwo+ Pj4+PiAgIHN0YXRpYyBjb25zdCBzdHJ1Y3Qga2dkMmtmZF9jYWxscyBrZ2Qya2ZkID0gewo+Pj4+ PiAgICAgICAuZXhpdCAgICAgICAgPSBrZ2Qya2ZkX2V4aXQsCj4+Pj4+ICAgICAgIC5wcm9iZSAg ICAgICAgPSBrZ2Qya2ZkX3Byb2JlLAo+Pj4+PiBAQCAtODQsMTQgKzg0LDEzIEBAIEVYUE9SVF9T WU1CT0woa2dkMmtmZF9pbml0KTsKPj4+Pj4gICB2b2lkIGtnZDJrZmRfZXhpdCh2b2lkKQo+Pj4+ PiAgIHsKPj4+Pj4gKyAgICBrZmQya2dkID0gTlVMTDsKPj4+Pj4gICB9Cj4+Pj4+ICAgc3RhdGlj IGludCBfX2luaXQga2ZkX21vZHVsZV9pbml0KHZvaWQpCj4+Pj4+ICAgewo+Pj4+PiAgICAgICBp bnQgZXJyOwo+Pj4+PiAtICAgIGtmZDJrZ2QgPSBOVUxMOwo+Pj4+PiAtCj4+Pj4+ICAgICAgIC8q IFZlcmlmeSBtb2R1bGUgcGFyYW1ldGVycyAqLwo+Pj4+PiAgICAgICBpZiAoKHNjaGVkX3BvbGlj eSA8IEtGRF9TQ0hFRF9QT0xJQ1lfSFdTKSB8fAo+Pj4+PiAgICAgICAgICAgKHNjaGVkX3BvbGlj eSA+IEtGRF9TQ0hFRF9QT0xJQ1lfTk9fSFdTKSkgewo+Pj4+Cj4+Cj4gX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBkcmktZGV2ZWwgbWFpbGluZyBsaXN0 Cj4gZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHA6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2 ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9kcmktZGV2ZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752847AbaLUNY4 (ORCPT ); Sun, 21 Dec 2014 08:24:56 -0500 Received: from mail-by2on0132.outbound.protection.outlook.com ([207.46.100.132]:14793 "EHLO na01-by2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752675AbaLUNYz convert rfc822-to-8bit (ORCPT ); Sun, 21 Dec 2014 08:24:55 -0500 X-WSS-ID: 0NGXP9C-07-ATP-02 X-M-MSG: Message-ID: <5496CA0F.8000800@amd.com> Date: Sun, 21 Dec 2014 15:24:31 +0200 From: Oded Gabbay Organization: AMD User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.3.0 MIME-Version: 1.0 To: =?UTF-8?B?Q2hyaXN0aWFuIEvDtm5pZw==?= , CC: , , Joerg Roedel Subject: Re: [PATCH 1/3] amdkfd: Don't clear *kfd2kgd on kfd_module_init References: <1419108374-7020-1-git-send-email-oded.gabbay@amd.com> <1419108374-7020-2-git-send-email-oded.gabbay@amd.com> <5496AEAD.3090003@vodafone.de> <5496B04C.50502@amd.com> <5496BAE0.5090901@vodafone.de> <5496C5EA.7050200@amd.com> In-Reply-To: <5496C5EA.7050200@amd.com> Content-Type: text/plain; charset="utf-8"; format=flowed X-Originating-IP: [10.20.0.84] Content-Transfer-Encoding: 8BIT X-EOPAttributedMessage: 0 Authentication-Results: spf=none (sender IP is 165.204.84.221) smtp.mailfrom=Oded.Gabbay@amd.com; X-Forefront-Antispam-Report: CIP:165.204.84.221;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10019020)(979002)(6009001)(428002)(51704005)(189002)(377454003)(479174004)(24454002)(199003)(31966008)(92566001)(77096005)(97736003)(33656002)(47776003)(21056001)(84676001)(4396001)(59896002)(64706001)(93886004)(68736005)(107046002)(15975445007)(101416001)(1720100001)(54356999)(46102003)(105586002)(64126003)(19580405001)(2950100001)(77156002)(50986999)(15395725005)(65806001)(76176999)(50466002)(65956001)(19580395003)(83506001)(62966003)(86362001)(80316001)(120916001)(65816999)(87266999)(23676002)(99396003)(36756003)(106466001)(87936001)(20776003)(2101003)(969003)(989001)(999001)(1009001)(1019001);DIR:OUT;SFP:1102;SCL:1;SRVR:CO1PR02MB208;H:atltwp01.amd.com;FPR:;SPF:None;MLV:ovrnspm;PTR:InfoDomainNonexistent;MX:1;A:1;LANG:en; X-Microsoft-Antispam: UriScan:; X-Microsoft-Antispam: BCL:0;PCL:0;RULEID:;SRVR:CO1PR02MB208; X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004);SRVR:CO1PR02MB208; X-Forefront-PRVS: 0432A04947 X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:;SRVR:CO1PR02MB208; X-OriginatorOrg: amd4.onmicrosoft.com Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 12/21/2014 03:06 PM, Oded Gabbay wrote: > > > On 12/21/2014 02:19 PM, Christian König wrote: >> Am 21.12.2014 um 12:34 schrieb Oded Gabbay: >>> >>> >>> On 12/21/2014 01:27 PM, Christian König wrote: >>>> Am 20.12.2014 um 21:46 schrieb Oded Gabbay: >>>>> When amdkfd and radeon are compiled inside the kernel image (not as modules), >>>>> radeon will load before amdkfd and will set *kfd2kgd to its interface >>>>> structure. Therefore, we must not set *kfd2kgd to NULL when amdkfd is loaded >>>>> because it will override radeon's initialization and cause kernel BUG. >>>>> >>>>> Signed-off-by: Oded Gabbay >>>> >>>> You should probably rather fix the dependency between the two modules to get an >>>> determined load order instead of doing such nasty workarounds. >>>> >>>> Christian. >>> >>> The problem is that when modules are compiled inside the kernel, there is NO >>> determined load order and there is no mechanism to enforce that. If there >>> is/was such a mechanism, I would of course prefer to use it. >> >> There should be an determined order based on the symbol use, otherwise >> initializing most of the kernel modules wouldn't work as expected. For example >> radeon depends on the drm module must be loaded before radeon is loaded. > There should be, but when the modules are compiled in, they are loaded based on > link order only, if they are in the same group, and the groups are loaded by a > pre-defined order. > The groups are: pure, core, postcore, arch, subsys, fs, device (which represents > all the modules) and late. See init.h > > So radeon, amdkfd and amd_iommu_v2 are all in device group, and in the group > they are ordered by their link order. > > Yes, radeon loads after drm, because drm*.o are before radeon*.o in the > Makefile. See > http://stackoverflow.com/questions/5669647/linux-order-of-statically-linked-module-loading > So I tried moving amdkfd inside the Makefile before radeon, and that made amdkfd load before radeon did. This solves my first problem - order between amdkfd and radeon. However, amd_iommu_v2 doesn't belong to the drm Makefile, and I don't want to move iommu before gpu, so I don't have a solution for the order between amdkfd and amd_iommu_v2. Oded > > >> >>> >>> Actually, I don't understand why the kernel doesn't enforce the order >>> according to the use of exported symbols, like it does with modules. >> >> Yeah, that's indeed rather strange. There must be something in the amdkfd code >> which broke that somehow. > IMO, that's a far-fetched guess. Could you point to something more specific ? > >> >> As far as I understand you the desired init order is radeon and amd_iommu_v2 >> first and then amdkfd, right? > Actually no. The preferred order is amd_iommu_v2, amdkfd and radeon last. This > is the order that happens when all three are built as modules. More accurately, > radeon inits, but its init triggers amdkfd init, which triggers amd_iommu_v2 > init. So before radeon reaches its probe stage, all the modules were initialized. > > So what happens when you boot with radeon, >> amd_iommu_v2 and amdkfd blacklisted for automatically load and only load amdkfd >> manually? > As said above, that's ok. >> >>> There will always be dependencies between kgd (radeon) and amdkfd and between >>> amdkfd and amd_iommu_v2. I don't think I can eliminate those dependencies, not >>> without a very complex solution. And the fact that this complex solution >>> occurs only in a very specific use case (all modules compiled in), makes me >>> less inclined to do that. >>> >>> So I don't see it as a "nasty workaround". I would call it just a "workaround" >>> for a specific use case, which should be solved by a generic solution to the >>> kernel enforcing load orders. >> >> The normal kernel module handling already should provide the correct init order, >> so I would still call this a rather nasty workaround because we couldn't find >> the underlying problem. > Well, the normal kernel module handling doesn't work when all modules are > compiled in. I'm not a huge expert on this issue so I had Joerg Roedel help me > analyze this (thanks Joerg) and he agreed that there is no enforcement of order > in this case. > >> >> Christian. >> >>> >>> Oded >>>> >>>>> --- >>>>> drivers/gpu/drm/amd/amdkfd/kfd_module.c | 5 ++--- >>>>> 1 file changed, 2 insertions(+), 3 deletions(-) >>>>> >>>>> diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_module.c >>>>> b/drivers/gpu/drm/amd/amdkfd/kfd_module.c >>>>> index 95d5af1..236562f 100644 >>>>> --- a/drivers/gpu/drm/amd/amdkfd/kfd_module.c >>>>> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_module.c >>>>> @@ -34,7 +34,7 @@ >>>>> #define KFD_DRIVER_MINOR 7 >>>>> #define KFD_DRIVER_PATCHLEVEL 0 >>>>> -const struct kfd2kgd_calls *kfd2kgd; >>>>> +const struct kfd2kgd_calls *kfd2kgd = NULL; >>>>> static const struct kgd2kfd_calls kgd2kfd = { >>>>> .exit = kgd2kfd_exit, >>>>> .probe = kgd2kfd_probe, >>>>> @@ -84,14 +84,13 @@ EXPORT_SYMBOL(kgd2kfd_init); >>>>> void kgd2kfd_exit(void) >>>>> { >>>>> + kfd2kgd = NULL; >>>>> } >>>>> static int __init kfd_module_init(void) >>>>> { >>>>> int err; >>>>> - kfd2kgd = NULL; >>>>> - >>>>> /* Verify module parameters */ >>>>> if ((sched_policy < KFD_SCHED_POLICY_HWS) || >>>>> (sched_policy > KFD_SCHED_POLICY_NO_HWS)) { >>>> >> > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/dri-devel