From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?B?QW5kcsOpIEhlbnRzY2hlbA==?= Subject: Re: arm: Only load TLS values when needed Date: Thu, 15 Aug 2013 20:27:41 +0200 Message-ID: <520D1D9D.2040706@dawncrow.de> References: <51E42E11.1010903@dawncrow.de> <51E5836B.1010904@arm.com> <51E59E8F.1060501@dawncrow.de> <51E67B98.9040101@arm.com> <51E6F532.1030004@dawncrow.de> <520B8F37.4040609@dawncrow.de> <520BAE58.3060600@arm.com> <520BF4E1.8040708@dawncrow.de> <520D0FFA.1060508@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <520D0FFA.1060508@arm.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.infradead.org To: Jonathan Austin Cc: "linux-arch@vger.kernel.org" , Russell King , Will Deacon , "linux-kernel@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" List-Id: linux-arch.vger.kernel.org SGkgSm9uYXRoYW4sCgpBbSAxNS4wOC4yMDEzIDE5OjI5LCBzY2hyaWViIEpvbmF0aGFuIEF1c3Rp bjoKPiBIaSBBbmRyw6kKPiAKPiAoSSd2ZSBwdXQgUk1LIGFuZCBMQUtNTCBiYWNrIG9uIENjOiB0 aGV5IGdvdCBkcm9wcGVkIHNvbWV3aGVyZSBhbG9uZyB0aGUgd2F5KQo+IAo+IE9uIDE0LzA4LzEz IDIyOjIxLCBBbmRyw6kgSGVudHNjaGVsIHdyb3RlOgo+Pj4+Pj4gWy4uLl0KPj4+Pj4+Pj4gTm93 IHdlJ3ZlIG9ubHkgZ290IG9uZSBpbnN0cnVjdGlvbiBiZXR3ZWVuIHRoZSBzdG9yZSBhbmQgdGhl IGxvYWQKPj4+Pj4+Pj4gYW5kIHJpc2sgc3RhbGxpbmcgdGhlIHBpcGVsaW5lLi4uCj4+Pj4+Pj4+ Cj4+Pj4+Pj4+IERhdmUgTSBjYXV0aW91c2x5IHNheXMgIlRoZSBhbmNpZW50IGFkdmljZSB3YXMg dGhhdCBvbmUgaW5zdHJ1Y3Rpb24KPj4+Pj4+Pj4gd2FzIGVub3VnaCIgYnV0IHRoaXMgaXMgdmVy eSBjb3JlIGRlcGVuZGVudC4uLiBJIHdvbmRlciBpZiBhbnlvbmUKPj4+Pj4+Pj4gaGFzIGEgZ29v ZCBpZGVhIGFib3V0IHdoZXRoZXIgdGhpcyBpcyBhbiBpc3N1ZSBoZXJlLi4uPwo+Pj4+Pj4+Cj4+ Pj4+Pj4gV2UgY291bGQgdXNlIGEgbGRyZCBhdCB0aGUgdG9wLCB0aGF0J2QgYmUgbmVhcmx5IHdo YXQgd2UgaGF2ZSByaWdodAo+Pj4+Pj4+IG5vdywgZG9uJ3Qgd2U/Cj4+Pj4+Pgo+Pj4+Pj4gWWVh LCB0aGF0J2QgYmUgZ29vZCAtIGFzIGZhciBhcyBJIGNhbiBzZWUgZnJvbSBhbiAxMTM2IFRSTSwg dGhlIGxkcmQgKm1heSogYmUgdHdvIGN5Y2xlcyAoZGVwZW5kaW5nIG9uIGFsaWdubWVudCBvZiB0 aGUgd29yZHMpIGJ1dCB0aGUgbGRyIGFuZCBsZHJuZSB3aWxsIGFsd2F5cyBiZSB0d28gY3ljbGVz LiBBaGhoLCB0aGUgam95cyBvZiBtb2RpZnlpbmcgdGhlIGZhc3QgcGF0aCA7KQo+Pj4KPj4+IFdh cyBleHBlY3RpbmcgdG8gc2VlIHNvbWV0aGluZyB0aGF0IHJlZmxlY3RlZCB0aGlzIGRpc2N1c3Np b24sCj4+Cj4+IEFoIG9rLCBpIG1pc3VuZGVyc3Rvb2QgdGhhdCwgc3J5Lgo+PiBTb21ldGhpbmcg bGlrZSB0aGF0Pwo+Pgo+PiBGcm9tOiBBbmRyw6kgSGVudHNjaGVsIDxuZXJ2QGRhd25jcm93LmRl Pgo+Pgo+PiBUaGlzIHBhdGNoIGludGVudHMgdG8gcmVkdWNlIGxvYWRpbmcgaW5zdHJ1Y3Rpb25z IHdoZW4gdGhlIHJlc3VsdGluZyB2YWx1ZSBpcyBub3QgdXNlZC4KPj4gSXQncyBhIGZvbGxvdyB1 cCBvbiBhNDc4MGFkZWVmZDA0MjQ4MmY2MjRmNWUwZDU3N2JmOWNkY2JiNzYwCj4+Cj4gCj4gWW91 IGNhdWdodCBtZSBqdXN0IGJlZm9yZSBydW5uaW5nIGF3YXkgZm9yIGEgd2VlayBvZiBob2xpZGF5 LCBidXQgSSd2ZSBtYW5hZ2VkIHRvIHNxdWVlemUgaW4gYSBiaXQgb2YgdGVzdGluZyAtIGhvcGUg dGhpcyBoZWxwcyAtIEknbGwgdHJ5IHRvIGJlIGNsZWFyIGFib3V0IHdoYXQgSSBoYXZlL2hhdmVu J3QgdGVzdGVkIHNvIHlvdSBjYW4ganVkZ2UgZm9yIHlvdXJzZWxmIGhvdyBtdWNoIHdlaWdodCB0 byBnaXZlIHRoaXMuCgpUaGFua3MgZm9yIHRlc3RpbmcgaXQgYW55d2F5LCBhbmQgaGFwcHkgaG9s aWRheSEKCj4gV2hhdCBJJ3ZlIHRlc3RlZDoKPiAKPiAqIEFwcGx5IHlvdXIgY29kZSB0byAzLjEx LXJjNQo+ICogQm9vdCBvbiBJbnRlZ3JhdG9yIENQICgxMTc2IHIxcDApIGFuZCBydW4gYSBmdWxs IERlYmlhbiBXaGVlenkgaW5pdAo+IAo+IC0tPiBJdCB3b3JrcyEKPiAKPiBJIGFsc28gYXBwbGll ZCB0aGUgZm9sbG93aW5nIGRpZmYgYW5kIHJlYnVpbHQgdG8gY2hlY2sgdGhhdCB3ZSB3ZXJlIHJl YWxseSB0ZXN0aW5nIHRoZSBWNiBOT1QgVjZLIHBhdGggaGVyZToKPiAKPiBkaWZmIC0tZ2l0IGEv YXJjaC9hcm0vaW5jbHVkZS9hc20vdGxzLmggYi9hcmNoL2FybS9pbmNsdWRlL2FzbS90bHMuaAo+ IGluZGV4IDMxNzQzZjcuLjcxZGZlODIgMTAwNjQ0Cj4gLS0tIGEvYXJjaC9hcm0vaW5jbHVkZS9h c20vdGxzLmgKPiArKysgYi9hcmNoL2FybS9pbmNsdWRlL2FzbS90bHMuaAo+IEBAIC00Myw2ICs0 Myw3IEBACj4gICNkZWZpbmUgc3dpdGNoX3RscyAgICAgc3dpdGNoX3Rsc192Ngo+ICAjZWxpZiBk ZWZpbmVkKENPTkZJR19DUFVfMzJ2NkspCj4gICNkZWZpbmUgdGxzX2VtdSAgICAgICAgICAgICAg ICAwCj4gKyNlcnJvcgo+ICAjZGVmaW5lIGhhc190bHNfcmVnICAgICAgICAgICAgMQo+ICAjZGVm aW5lIHN3aXRjaF90bHMgICAgIHN3aXRjaF90bHNfdjZrCj4gICNlbHNlCj4gCj4gV2hhdCBJJ3Zl ICpub3QqIHRlc3RlZDoKPiAqIEFzIHRoaXMgQ1BVIGRvZXMgbm90IGhhdmUgdGhlIHRscyByZWdp c3RlciwgSSBoYXZlbid0IHJ1biBhbnkgdGVzdHMgdGhhdCB0cnkgdG8gcmVhZC93cml0ZSBpdCwg YnV0IHdlIHdvdWxkbid0IGV4cGVjdCB0aGF0IHRvIHdvcmssIHJpZ2h0Pwo+ICogSGF2ZW4ndCB0 cmllZCBhIFY3IHBsYXRmb3JtLCBhcyBJIHVuZGVyc3RhbmQgeW91J3ZlIGFscmVhZHkgZG9uZSB0 aGF0Lgo+ICogSGF2ZW4ndCB2ZXJpZmllZCBpdCBzdGlsbCBidWlsZHMgZm9yIHY0ICh3aGljaCB3 YXMgdGhlIHByb2JsZW0gZm9yIGxkcmQgaW4gdGhlIHBhc3QgYW5kIG5vdyB3ZSd2ZSBwdXQgaXQg YmFjaywgc28gdGhhdCdzIGltcG9ydGFudCkKCkl0IHNob3VsZG4ndCBtYXR0ZXIgYXMgdjQgd291 bGQgbm90IHVzZSB0aGUgdjYgY29kZXBhdGgsIHdvdWxkIGl0PwoKPiAqIFBlcmZvcm1hbmNlIGlt cGFjdAoKSSBvbmx5IGNvdWxkIHRlc3QgaXQgb24gdjcsIHdvdWxkIGJlIGludGVyZXN0aW5nIHRv IHNlZSBzb21lIHY2LCB2NSwgLi4uICJiZW5jaG1hcmtzIiwgdGhvdWdoLgoKPiAKPiBJIHRoaW5r IGl0J2QgYmUgZ29vZCBpZiB5b3UgY2FuIHZlcmlmeSB0aGUgYm90dG9tIHR3byBwb2ludHMgLSBl c3BlY2lhbGx5IHRoZSBsZHJkIG9uZTogcGVyaGFwcyBSdXNzZWxsIGNhbiB0ZWxsIHlvdSB3aGlj aCBwbGF0Zm9ybSBpdCBicm9rZSBvbiBiZWZvcmU/Cj4gCj4gU28sIHRoYXQncyBhCj4gVGVzdGVk LWJ5OiBKb25hdGhhbiBBdXN0aW4gPGpvbmF0aGFuLmF1c3RpbkBhcm0uY29tPgo+IAo+IElmIHlv dSB3YW50IGl0IDopCgpzdXJlLCB0aHguCgo+IEhvcGUgdGhhdCBoZWxwcywKPiAKPiBKb25ueQo+ IAo+PiBTaWduZWQtb2ZmLWJ5OiBBbmRyw6kgSGVudHNjaGVsIDxuZXJ2QGRhd25jcm93LmRlPgo+ Pgo+PiAtLS0KPj4gVGhpcyBwYXRjaCBpcyBhZ2FpbnN0IDI4ZmJjOGI2YTI5Yzg0OWEzZjAzYTZi MDUwMTBkNGI1ODQwNTU2NjUKPj4KPj4gZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2luY2x1ZGUvYXNt L3Rscy5oIGIvYXJjaC9hcm0vaW5jbHVkZS9hc20vdGxzLmgKPj4gaW5kZXggODMyNTliOC4uMzE3 NDNmNyAxMDA2NDQKPj4gLS0tIGEvYXJjaC9hcm0vaW5jbHVkZS9hc20vdGxzLmgKPj4gKysrIGIv YXJjaC9hcm0vaW5jbHVkZS9hc20vdGxzLmgKPj4gQEAgLTMsMjkgKzMsMzEgQEAKPj4KPj4gICAj aWZkZWYgX19BU1NFTUJMWV9fCj4+ICAgI2luY2x1ZGUgPGFzbS9hc20tb2Zmc2V0cy5oPgo+PiAt ICAgIC5tYWNybyBzd2l0Y2hfdGxzX25vbmUsIGJhc2UsIHRwLCB0cHVzZXIsIHRtcDEsIHRtcDIK Pj4gKyAgICAubWFjcm8gc3dpdGNoX3Rsc19ub25lLCBwcmV2LCBuZXh0LCB0cCwgdHB1c2VyLCB0 bXAxLCB0bXAyCj4+ICAgICAgIC5lbmRtCj4+Cj4+IC0gICAgLm1hY3JvIHN3aXRjaF90bHNfdjZr LCBiYXNlLCB0cCwgdHB1c2VyLCB0bXAxLCB0bXAyCj4+ICsgICAgLm1hY3JvIHN3aXRjaF90bHNf djZrLCBwcmV2LCBuZXh0LCB0cCwgdHB1c2VyLCB0bXAxLCB0bXAyCj4+ICsgICAgbGRyZCAgICBc dHAsIFx0cHVzZXIsIFtcbmV4dCwgI1RJX1RQX1ZBTFVFXSAgICBAIGdldCB0aGUgbmV4dCBUTFMg YW5kIHVzZXIgci93IHJlZ2lzdGVyCj4+ICAgICAgIG1yYyAgICBwMTUsIDAsIFx0bXAyLCBjMTMs IGMwLCAyICAgIEAgZ2V0IHRoZSB1c2VyIHIvdyByZWdpc3Rlcgo+PiAgICAgICBtY3IgICAgcDE1 LCAwLCBcdHAsIGMxMywgYzAsIDMgICAgICAgIEAgc2V0IFRMUyByZWdpc3Rlcgo+PiAgICAgICBt Y3IgICAgcDE1LCAwLCBcdHB1c2VyLCBjMTMsIGMwLCAyICAgIEAgYW5kIHRoZSB1c2VyIHIvdyBy ZWdpc3Rlcgo+PiAtICAgIHN0ciAgICBcdG1wMiwgW1xiYXNlLCAjVElfVFBfVkFMVUUgKyA0XSBA IHNhdmUgaXQKPj4gKyAgICBzdHIgICAgXHRtcDIsIFtccHJldiwgI1RJX1RQX1ZBTFVFICsgNF0g QCBzYXZlIGl0Cj4+ICAgICAgIC5lbmRtCj4+Cj4+IC0gICAgLm1hY3JvIHN3aXRjaF90bHNfdjYs IGJhc2UsIHRwLCB0cHVzZXIsIHRtcDEsIHRtcDIKPj4gKyAgICAubWFjcm8gc3dpdGNoX3Rsc192 NiwgcHJldiwgbmV4dCwgdHAsIHRwdXNlciwgdG1wMSwgdG1wMgo+PiArICAgIGxkcmQgICAgXHRw LCBcdHB1c2VyLCBbXG5leHQsICNUSV9UUF9WQUxVRV0KPj4gICAgICAgbGRyICAgIFx0bXAxLCA9 ZWxmX2h3Y2FwCj4+ICAgICAgIGxkciAgICBcdG1wMSwgW1x0bXAxLCAjMF0KPj4gICAgICAgbW92 ICAgIFx0bXAyLCAjMHhmZmZmMGZmZgo+PiAgICAgICB0c3QgICAgXHRtcDEsICNIV0NBUF9UTFMg ICAgICAgIEAgaGFyZHdhcmUgVExTIGF2YWlsYWJsZT8KPj4gICAgICAgc3RyZXEgICAgXHRwLCBb XHRtcDIsICMtMTVdICAgICAgICBAIHNldCBUTFMgdmFsdWUgYXQgMHhmZmZmMGZmMAo+PiAtICAg IG1yY25lICAgIHAxNSwgMCwgXHRtcDIsIGMxMywgYzAsIDIgICAgQCBnZXQgdGhlIHVzZXIgci93 IHJlZ2lzdGVyCj4+ICsgICAgbXJjbmUgICAgcDE1LCAwLCBcdG1wMiwgYzEzLCBjMCwgMiAgICBA IGdldCB0aGUgcHJldmlvdXMgdXNlciByL3cgcmVnaXN0ZXIKPj4gICAgICAgbWNybmUgICAgcDE1 LCAwLCBcdHAsIGMxMywgYzAsIDMgICAgICAgIEAgeWVzLCBzZXQgVExTIHJlZ2lzdGVyCj4+ICAg ICAgIG1jcm5lICAgIHAxNSwgMCwgXHRwdXNlciwgYzEzLCBjMCwgMiAgICBAIHNldCB1c2VyIHIv dyByZWdpc3Rlcgo+PiAtICAgIHN0cm5lICAgIFx0bXAyLCBbXGJhc2UsICNUSV9UUF9WQUxVRSAr IDRdIEAgc2F2ZSBpdAo+PiArICAgIHN0cm5lICAgIFx0bXAyLCBbXHByZXYsICNUSV9UUF9WQUxV RSArIDRdIEAgc2F2ZSBpdAo+PiAgICAgICAuZW5kbQo+Pgo+PiAtICAgIC5tYWNybyBzd2l0Y2hf dGxzX3NvZnR3YXJlLCBiYXNlLCB0cCwgdHB1c2VyLCB0bXAxLCB0bXAyCj4+ICsgICAgLm1hY3Jv IHN3aXRjaF90bHNfc29mdHdhcmUsIHByZXYsIG5leHQsIHRwLCB0cHVzZXIsIHRtcDEsIHRtcDIK Pj4gICAgICAgbW92ICAgIFx0bXAxLCAjMHhmZmZmMGZmZgo+PiAgICAgICBzdHIgICAgXHRwLCBb XHRtcDEsICMtMTVdICAgICAgICBAIHNldCBUTFMgdmFsdWUgYXQgMHhmZmZmMGZmMAo+PiAgICAg ICAuZW5kbQo+PiBkaWZmIC0tZ2l0IGEvYXJjaC9hcm0va2VybmVsL2VudHJ5LWFybXYuUyBiL2Fy Y2gvYXJtL2tlcm5lbC9lbnRyeS1hcm12LlMKPj4gaW5kZXggZDQwZDBlZi4uMTExMTJkZSAxMDA2 NDQKPj4gLS0tIGEvYXJjaC9hcm0va2VybmVsL2VudHJ5LWFybXYuUwo+PiArKysgYi9hcmNoL2Fy bS9rZXJuZWwvZW50cnktYXJtdi5TCj4+IEBAIC02ODksMTIgKzY4OSwxMCBAQCBFTlRSWShfX3N3 aXRjaF90bykKPj4gICAgVEhVTUIoICAgIHN0bWlhICAgIGlwISwge3I0IC0gc2wsIGZwfSAgICAg ICApICAgIEAgU3RvcmUgbW9zdCByZWdzIG9uIHN0YWNrCj4+ICAgIFRIVU1CKCAgICBzdHIgICAg c3AsIFtpcF0sICM0ICAgICAgICAgICApCj4+ICAgIFRIVU1CKCAgICBzdHIgICAgbHIsIFtpcF0s ICM0ICAgICAgICAgICApCj4+IC0gICAgbGRyICAgIHI0LCBbcjIsICNUSV9UUF9WQUxVRV0KPj4g LSAgICBsZHIgICAgcjUsIFtyMiwgI1RJX1RQX1ZBTFVFICsgNF0KPj4gICAjaWZkZWYgQ09ORklH X0NQVV9VU0VfRE9NQUlOUwo+PiAgICAgICBsZHIgICAgcjYsIFtyMiwgI1RJX0NQVV9ET01BSU5d Cj4+ICAgI2VuZGlmCj4+IC0gICAgc3dpdGNoX3RscyByMSwgcjQsIHI1LCByMywgcjcKPj4gKyAg ICBzd2l0Y2hfdGxzIHIxLCByMiwgcjQsIHI1LCByMywgcjcKPj4gICAjaWYgZGVmaW5lZChDT05G SUdfQ0NfU1RBQ0tQUk9URUNUT1IpICYmICFkZWZpbmVkKENPTkZJR19TTVApCj4+ICAgICAgIGxk ciAgICByNywgW3IyLCAjVElfVEFTS10KPj4gICAgICAgbGRyICAgIHI4LCA9X19zdGFja19jaGtf Z3VhcmQKPj4KPj4KPj4KPiAKPiAKPiAtLSAKPiBUbyB1bnN1YnNjcmliZSBmcm9tIHRoaXMgbGlz dDogc2VuZCB0aGUgbGluZSAidW5zdWJzY3JpYmUgbGludXgtYXJjaCIgaW4KPiB0aGUgYm9keSBv ZiBhIG1lc3NhZ2UgdG8gbWFqb3Jkb21vQHZnZXIua2VybmVsLm9yZwo+IE1vcmUgbWFqb3Jkb21v IGluZm8gYXQgIGh0dHA6Ly92Z2VyLmtlcm5lbC5vcmcvbWFqb3Jkb21vLWluZm8uaHRtbAoKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1r ZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpo dHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJu ZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from moutng.kundenserver.de ([212.227.17.8]:64021 "EHLO moutng.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753459Ab3HOS2X (ORCPT ); Thu, 15 Aug 2013 14:28:23 -0400 Message-ID: <520D1D9D.2040706@dawncrow.de> Date: Thu, 15 Aug 2013 20:27:41 +0200 From: =?UTF-8?B?QW5kcsOpIEhlbnRzY2hlbA==?= MIME-Version: 1.0 Subject: Re: arm: Only load TLS values when needed References: <51E42E11.1010903@dawncrow.de> <51E5836B.1010904@arm.com> <51E59E8F.1060501@dawncrow.de> <51E67B98.9040101@arm.com> <51E6F532.1030004@dawncrow.de> <520B8F37.4040609@dawncrow.de> <520BAE58.3060600@arm.com> <520BF4E1.8040708@dawncrow.de> <520D0FFA.1060508@arm.com> In-Reply-To: <520D0FFA.1060508@arm.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-arch-owner@vger.kernel.org List-ID: To: Jonathan Austin Cc: "linux-kernel@vger.kernel.org" , Will Deacon , "linux-arch@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" , Russell King Message-ID: <20130815182741.dPBbGraBK6Qe4I_bLdeMtpFeTWejH12UdIYqfr-qbuQ@z> Hi Jonathan, Am 15.08.2013 19:29, schrieb Jonathan Austin: > Hi André > > (I've put RMK and LAKML back on Cc: they got dropped somewhere along the way) > > On 14/08/13 22:21, André Hentschel wrote: >>>>>> [...] >>>>>>>> Now we've only got one instruction between the store and the load >>>>>>>> and risk stalling the pipeline... >>>>>>>> >>>>>>>> Dave M cautiously says "The ancient advice was that one instruction >>>>>>>> was enough" but this is very core dependent... I wonder if anyone >>>>>>>> has a good idea about whether this is an issue here...? >>>>>>> >>>>>>> We could use a ldrd at the top, that'd be nearly what we have right >>>>>>> now, don't we? >>>>>> >>>>>> Yea, that'd be good - as far as I can see from an 1136 TRM, the ldrd *may* be two cycles (depending on alignment of the words) but the ldr and ldrne will always be two cycles. Ahhh, the joys of modifying the fast path ;) >>> >>> Was expecting to see something that reflected this discussion, >> >> Ah ok, i misunderstood that, sry. >> Something like that? >> >> From: André Hentschel >> >> This patch intents to reduce loading instructions when the resulting value is not used. >> It's a follow up on a4780adeefd042482f624f5e0d577bf9cdcbb760 >> > > You caught me just before running away for a week of holiday, but I've managed to squeeze in a bit of testing - hope this helps - I'll try to be clear about what I have/haven't tested so you can judge for yourself how much weight to give this. Thanks for testing it anyway, and happy holiday! > What I've tested: > > * Apply your code to 3.11-rc5 > * Boot on Integrator CP (1176 r1p0) and run a full Debian Wheezy init > > --> It works! > > I also applied the following diff and rebuilt to check that we were really testing the V6 NOT V6K path here: > > diff --git a/arch/arm/include/asm/tls.h b/arch/arm/include/asm/tls.h > index 31743f7..71dfe82 100644 > --- a/arch/arm/include/asm/tls.h > +++ b/arch/arm/include/asm/tls.h > @@ -43,6 +43,7 @@ > #define switch_tls switch_tls_v6 > #elif defined(CONFIG_CPU_32v6K) > #define tls_emu 0 > +#error > #define has_tls_reg 1 > #define switch_tls switch_tls_v6k > #else > > What I've *not* tested: > * As this CPU does not have the tls register, I haven't run any tests that try to read/write it, but we wouldn't expect that to work, right? > * Haven't tried a V7 platform, as I understand you've already done that. > * Haven't verified it still builds for v4 (which was the problem for ldrd in the past and now we've put it back, so that's important) It shouldn't matter as v4 would not use the v6 codepath, would it? > * Performance impact I only could test it on v7, would be interesting to see some v6, v5, ... "benchmarks", though. > > I think it'd be good if you can verify the bottom two points - especially the ldrd one: perhaps Russell can tell you which platform it broke on before? > > So, that's a > Tested-by: Jonathan Austin > > If you want it :) sure, thx. > Hope that helps, > > Jonny > >> Signed-off-by: André Hentschel >> >> --- >> This patch is against 28fbc8b6a29c849a3f03a6b05010d4b584055665 >> >> diff --git a/arch/arm/include/asm/tls.h b/arch/arm/include/asm/tls.h >> index 83259b8..31743f7 100644 >> --- a/arch/arm/include/asm/tls.h >> +++ b/arch/arm/include/asm/tls.h >> @@ -3,29 +3,31 @@ >> >> #ifdef __ASSEMBLY__ >> #include >> - .macro switch_tls_none, base, tp, tpuser, tmp1, tmp2 >> + .macro switch_tls_none, prev, next, tp, tpuser, tmp1, tmp2 >> .endm >> >> - .macro switch_tls_v6k, base, tp, tpuser, tmp1, tmp2 >> + .macro switch_tls_v6k, prev, next, tp, tpuser, tmp1, tmp2 >> + ldrd \tp, \tpuser, [\next, #TI_TP_VALUE] @ get the next TLS and user r/w register >> mrc p15, 0, \tmp2, c13, c0, 2 @ get the user r/w register >> mcr p15, 0, \tp, c13, c0, 3 @ set TLS register >> mcr p15, 0, \tpuser, c13, c0, 2 @ and the user r/w register >> - str \tmp2, [\base, #TI_TP_VALUE + 4] @ save it >> + str \tmp2, [\prev, #TI_TP_VALUE + 4] @ save it >> .endm >> >> - .macro switch_tls_v6, base, tp, tpuser, tmp1, tmp2 >> + .macro switch_tls_v6, prev, next, tp, tpuser, tmp1, tmp2 >> + ldrd \tp, \tpuser, [\next, #TI_TP_VALUE] >> ldr \tmp1, =elf_hwcap >> ldr \tmp1, [\tmp1, #0] >> mov \tmp2, #0xffff0fff >> tst \tmp1, #HWCAP_TLS @ hardware TLS available? >> streq \tp, [\tmp2, #-15] @ set TLS value at 0xffff0ff0 >> - mrcne p15, 0, \tmp2, c13, c0, 2 @ get the user r/w register >> + mrcne p15, 0, \tmp2, c13, c0, 2 @ get the previous user r/w register >> mcrne p15, 0, \tp, c13, c0, 3 @ yes, set TLS register >> mcrne p15, 0, \tpuser, c13, c0, 2 @ set user r/w register >> - strne \tmp2, [\base, #TI_TP_VALUE + 4] @ save it >> + strne \tmp2, [\prev, #TI_TP_VALUE + 4] @ save it >> .endm >> >> - .macro switch_tls_software, base, tp, tpuser, tmp1, tmp2 >> + .macro switch_tls_software, prev, next, tp, tpuser, tmp1, tmp2 >> mov \tmp1, #0xffff0fff >> str \tp, [\tmp1, #-15] @ set TLS value at 0xffff0ff0 >> .endm >> diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S >> index d40d0ef..11112de 100644 >> --- a/arch/arm/kernel/entry-armv.S >> +++ b/arch/arm/kernel/entry-armv.S >> @@ -689,12 +689,10 @@ ENTRY(__switch_to) >> THUMB( stmia ip!, {r4 - sl, fp} ) @ Store most regs on stack >> THUMB( str sp, [ip], #4 ) >> THUMB( str lr, [ip], #4 ) >> - ldr r4, [r2, #TI_TP_VALUE] >> - ldr r5, [r2, #TI_TP_VALUE + 4] >> #ifdef CONFIG_CPU_USE_DOMAINS >> ldr r6, [r2, #TI_CPU_DOMAIN] >> #endif >> - switch_tls r1, r4, r5, r3, r7 >> + switch_tls r1, r2, r4, r5, r3, r7 >> #if defined(CONFIG_CC_STACKPROTECTOR) && !defined(CONFIG_SMP) >> ldr r7, [r2, #TI_TASK] >> ldr r8, =__stack_chk_guard >> >> >> > > > -- > To unsubscribe from this list: send the line "unsubscribe linux-arch" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html