From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eugeniy Paltsev Subject: Re: Patch "asm-generic/bitops/lock.h: Rewrite using atomic_fetch_" causes kernel crash Date: Thu, 30 Aug 2018 11:53:17 +0000 Message-ID: <1535629996.4465.44.camel@synopsys.com> References: <1535567633.4465.23.camel@synopsys.com> <20180830094411.GX24124@hirez.programming.kicks-ass.net> <20180830095148.GB5942@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180830095148.GB5942@arm.com> Content-Language: en-US Content-ID: Sender: linux-kernel-owner@vger.kernel.org To: "peterz@infradead.org" , "will.deacon@arm.com" Cc: "mingo@kernel.org" , "linux-kernel@vger.kernel.org" , "Alexey.Brodkin@synopsys.com" , "Vineet.Gupta1@synopsys.com" , "Eugeniy.Paltsev@synopsys.com" , "tglx@linutronix.de" , "linux-snps-arc@lists.infradead.org" , "yamada.masahiro@socionext.com" , "linux-arm-kernel@lists.infradead.org" , "linux-arch@vger.kernel.org" List-Id: linux-arch.vger.kernel.org SGkgV2lsbCwNCg0KT24gVGh1LCAyMDE4LTA4LTMwIGF0IDEwOjUxICswMTAwLCBXaWxsIERlYWNv biB3cm90ZToNCj4gT24gVGh1LCBBdWcgMzAsIDIwMTggYXQgMTE6NDQ6MTFBTSArMDIwMCwgUGV0 ZXIgWmlqbHN0cmEgd3JvdGU6DQo+ID4gT24gV2VkLCBBdWcgMjksIDIwMTggYXQgMDk6MTY6NDNQ TSArMDAwMCwgVmluZWV0IEd1cHRhIHdyb3RlOg0KPiA+ID4gT24gMDgvMjkvMjAxOCAxMTozMyBB TSwgRXVnZW5peSBQYWx0c2V2IHdyb3RlOg0KPiA+ID4gPiBIaSBHdXlzLA0KPiA+ID4gPiBTaW5j ZSB2NC4xOS1yYzEgd2UgYXJlIGdldHRpbmcgYSBzZXJpb3VzIHJlZ3Jlc3Npb24gb24gcGxhdGZv cm1zIHdpdGggQVJDIGFyY2hpdGVjdHVyZS4NCj4gPiA+ID4gVGhlIGtlcm5lbCBoYXZlIGJlY29t ZSB1bnN0YWJsZSBhbmQgc3BvbnRhbmVvdXNseSBjcmFzaGVzIG9uIExUUCB0ZXN0cyBleGVjdXRp b24gLyBJTyB0ZXN0cyBvcg0KPiA+ID4gPiBldmVuIG9uIGJvb3QuDQo+ID4gPiA+IA0KPiA+ID4g PiBJIGRvbid0IGtub3cgZXhhY3RseSB3aGF0IGJyZWFrcyBidXQgYmlzZWN0IGNsZWFybHkgYXNz aWduIHRoZSBibGFtZSB0byB0aGlzIGNvbW1pdDoNCj4gPiA+ID4gODRjNjU5MTEwM2RiICgibG9j a2luZy9hdG9taWNzLCBhc20tZ2VuZXJpYy9iaXRvcHMvbG9jay5oOiBSZXdyaXRlIHVzaW5nIGF0 b21pY19mZXRjaF8qKCkiKQ0KPiA+ID4gPiBodHRwczovL3VybGRlZmVuc2UucHJvb2Zwb2ludC5j b20vdjIvdXJsP3U9aHR0cHMtM0FfX2dpdGh1Yi5jb21fdG9ydmFsZHNfbGludXhfY29tbWl0Xzg0 YzY1OTExMDNkYmVhZjM5M2EwOTJhM2ZjN2IwOTUxMDgyNWY2YjkmZD1Ed0lCQWcmYz1EUEw2DQo+ ID4gPiA+IF9YXzZKa1hGeDdBWFdxQjB0ZyZyPVpsSk4xTXJpUFVUa0JLQ3JQU3g2N0dtYXBsRVVH Y0FFazl5UHRDTGRVWEkmbT02eTBGRnZrR2RJUTZrWDJsWjMxVjk5bE1mTVYtDQo+ID4gPiA+IFJ5 V3lZaGlVR3poMEJpMCZzPUdOd21oU3luSWNXcWdaaGlPd0ZFRUhfQXRiWkFINDQzX0w2UUg0bndf bHMmZT0NCj4gPiA+ID4gDQo+ID4gPiA+IFJldmVydGluZyB0aGUgY29tbWl0IHNvbHZlcyB0aGlz IHByb2JsZW0uDQo+ID4gPiA+IA0KPiA+ID4gPiBJIHRlc3RlZCB2NC4xOS1yYzEgb24gQVJNICh3 YW5kYm9hcmQsIGkubXg2LCAzMmJpdCwgcXVhcmQgY29yZSwgQVJNdjcpIHdoaWNoIHVzZXMgc2Ft ZQ0KPiA+ID4gPiBnZW5lcmljIGJpdG9wcyBpbXBsZW1lbnRhdGlvbiBhbmQgaXQgd29ya3MgZmlu ZS4NCj4gPiA+ID4gDQo+ID4gPiA+IERvIHlvdSBoYXZlIGFueSBpZGVhcyB3aGF0IHdlbnQgd3Jv bmc/DQo+ID4gPiANCj4gPiA+IEJhY2sgaW4gMjAxNiwgUGV0ZXIgaGFkIGZpeGVkIHRoaXMgZmls ZSBkdWUgdG8gYSBwcm9ibGVtIEkgcmVwb3J0ZWQgb24gQVJDLiBTZWUNCj4gPiA+IGNvbW1pdCBm NzVkNDg2NDRjNTZhICgiYml0b3BzOiBEbyBub3QgZGVmYXVsdCB0byBfX2NsZWFyX2JpdCgpIGZv cg0KPiA+ID4gX19jbGVhcl9iaXRfdW5sb2NrKCkiKQ0KPiA+ID4gVGhhdCBtYWRlIF9fY2xlYXJf Yml0X3VubG9jaygpIHVzZSB0aGUgYXRvbWljIGNsZWFyX2JpdCgpIHZzLiBub24tYXRvbWljDQo+ ID4gPiBfX2NsZWFyX2JpdCgpLCBlZmZlY3RpdmVseSBtYWtpbmcgY2xlYXJfYml0X3VubG9jaygp IGFuZCBfX2NsZWFyX2JpdF91bmxvY2soKSBzYW1lLg0KPiA+ID4gDQo+ID4gPiBUaGlzIHBhdGNo IHVuZG9lcyB0aGF0IHdoaWNoIGNvdWxkIGV4cGxhaW4gdGhlIGlzc3VlcyB5b3Ugc2VlLiBAUGV0 ZXIsIEBXaWxsID8NCj4gPiANCj4gPiBSaWdodCwgc28gdGhlIHRoaW5raW5nIGlzIHRoYXQgb24g cGxhdGZvcm1zIHRoYXQgc3VmZmVyIHRoYXQgaXNzdWUsDQo+ID4gYXRvbWljX3NldCooKSBzaG91 bGQgRFRSVC4gQW5kIGlmIHlvdSBsb29rIGF0IHlvdXIgc3BpbmxvY2sgYmFzZWQgYXRvbWljDQo+ ID4gaW1wbGVtZW50YXRpb24sIHlvdSdsbCBub3RlIHRoYXQgYXRvbWljX3NldCgpIGRvZXMgaW5k ZWVkIGRvIHRoZSByaWdodA0KPiA+IHRoaW5nLg0KPiA+IA0KPiA+IGFyY2gvYXJjL2luY2x1ZGUv YXNtL2F0b21pYy5oOjEwOA0KPiANCj4gWWVhaCwgdGhlIGJpdF9zcGluX2xvY2soKS9fX2JpdF9z cGluX3VubG9jaygpIHJhY2UgZGVzY3JpYmVkIGluIGY3NWQ0ODY0NGM1NmENCj4gYm9pbHMgZG93 biB0byBjb25jdXJyZW50IGF0b21pY19sb25nX3NldF9yZWxlYXNlKCkgdnMNCj4gYXRvbWljX2xv bmdfZmV0Y2hfb3JfYWNxdWlyZSgpLCB3aGljaCByZWFsbHkgbmVlZHMgdG8gd29yay4NCj4gDQo+ IEknbGwga2VlcCBkaWdnaW5nLiBJbiB0aGUgbWVhbnRpbWUsIFZpbmVldCwgZG8geW91IGhhdmUg YW55IHVzZWZ1bCBjcmFzaA0KPiBsb2dzIGFuZCBkbyB5b3Ugb25seSBzZWUgdGhlIGNyYXNoZXMg aW4gY2VydGFpbiBjb25maWd1cmF0aW9ucyAoZS5nLiBTTVAgYnV0DQo+ICFDT05GSUdfQVJDX0hB U19MTFNDKT8NCg0KV2UgZG9uJ3QgaGF2ZSBzdWNoIGNvbmZpZ3VyYXRpb24gKFNNUCB3aXRoICFD T05GSUdfQVJDX0hBU19MTFNDKS4NCg0KSSBjYW4gc2VlIGNyYXNoZXMgd2l0aCBMTFNDIGVuYWJs ZWQgaW4gYm90aCBTTVAgcnVubmluZyBvbiA0IGNvcmVzDQphbmQgU01QIHJ1bm5pbmcgb24gMSBj b3JlLg0KDQoNClRoZXJlIGFyZSBzb21lIGNyYXNoIGxvZ3MgKG5vdCBzdXJlIGlmIHRoZXkgYXJl IHJlYWxseSB1c2VmdWwpOg0KQ3Jhc2hlcyBhcmUgcXVpdGUgc3BvbnRhbmVvdXMgYW5kIG1vc3Rs eSBoYXBwZW5zIGluIElPLXJlbGF0ZWQgY29kZTogDQoNCkNyYXNoIG9uIGJvb3Q6DQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0+OC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnVzYiAxLTE6 IG5ldyBoaWdoLXNwZWVkIFVTQiBkZXZpY2UgbnVtYmVyIDIgdXNpbmcgZWhjaS1wbGF0Zm9ybQ0K aHViIDEtMToxLjA6IFVTQiBodWIgZm91bmQNCmh1YiAxLTE6MS4wOiAyIHBvcnRzIGRldGVjdGVk DQp1c2IgMS0xLjE6IG5ldyBoaWdoLXNwZWVkIFVTQiBkZXZpY2UgbnVtYmVyIDMgdXNpbmcgZWhj aS1wbGF0Zm9ybQ0KdXNiLXN0b3JhZ2UgMS0xLjE6MS4wOiBVU0IgTWFzcyBTdG9yYWdlIGRldmlj ZSBkZXRlY3RlZA0Kc2NzaSBob3N0MDogdXNiLXN0b3JhZ2UgMS0xLjE6MS4wDQpzY3NpIDA6MDow OjA6IERpcmVjdC1BY2Nlc3MgICAgIEdlbmVyaWMgIFNUT1JBR0UgREVWSUNFICAgMDI3MiBQUTog MCBBTlNJOiAwDQpzZCAwOjA6MDowOiBbc2RhXSAxNTc1OTM2MCA1MTItYnl0ZSBsb2dpY2FsIGJs b2NrczogKDguMDcgR0IvNy41MSBHaUIpDQpzZCAwOjA6MDowOiBbc2RhXSBXcml0ZSBQcm90ZWN0 IGlzIG9mZg0Kc2QgMDowOjA6MDogW3NkYV0gTW9kZSBTZW5zZTogMGIgMDAgMDAgMDgNCnNkIDA6 MDowOjA6IFtzZGFdIE5vIENhY2hpbmcgbW9kZSBwYWdlIGZvdW5kDQpzZCAwOjA6MDowOiBbc2Rh XSBBc3N1bWluZyBkcml2ZSBjYWNoZTogd3JpdGUgdGhyb3VnaA0KIHNkYTogc2RhMSBzZGEyIHNk YTMgc2RhNA0Kc2QgMDowOjA6MDogW3NkYV0gQXR0YWNoZWQgU0NTSSByZW1vdmFibGUgZGlzaw0K SU5GTzogdGFzayBzdGFydC1zdG9wLWRhZW06ODUgYmxvY2tlZCBmb3IgbW9yZSB0aGFuIDEwIHNl Y29uZHMuDQogICAgICBOb3QgdGFpbnRlZCA0LjE5LjAtcmMxICMyDQoiZWNobyAwID4gL3Byb2Mv c3lzL2tlcm5lbC9odW5nX3Rhc2tfdGltZW91dF9zZWNzIiBkaXNhYmxlcyB0aGlzIG1lc3NhZ2Uu DQpzdGFydC1zdG9wLWRhZW0gRCAgICAwICAgIDg1ICAgICA4MSAweDAwMDAwMDAwDQoNClN0YWNr IFRyYWNlOg0KICBfX3N3aXRjaF90bysweDAvMHhhYw0KICBfX3NjaGVkdWxlKzB4MWIyLzB4NzMw DQogIGlvX3NjaGVkdWxlKzB4NWMvMHhjMA0KICBfX2xvY2tfcGFnZSsweDk4LzB4ZGMNCiAgZmlu ZF9sb2NrX2VudHJ5KzB4MzgvMHgxMDANCiAgc2htZW1fZ2V0cGFnZV9nZnAuaXNyYS4zKzB4ODIv MHhiZmMNCiAgc2htZW1fZmF1bHQrMHg0Ni8weDEzOA0KICBoYW5kbGVfbW1fZmF1bHQrMHg1YmMv MHg5MjQNCiAgZG9fcGFnZV9mYXVsdCsweGZjLzB4Mjk0DQogIHJldF9mcm9tX2V4Y2VwdGlvbisw eDAvMHg4DQpJTkZPOiB0YXNrIHN0YXJ0LXN0b3AtZGFlbTo4NSBibG9ja2VkIGZvciBtb3JlIHRo YW4gMTAgc2Vjb25kcy4NCiAgICAgIE5vdCB0YWludGVkIDQuMTkuMC1yYzEgIzINCiJlY2hvIDAg PiAvcHJvYy9zeXMva2VybmVsL2h1bmdfdGFza190aW1lb3V0X3NlY3MiIGRpc2FibGVzIHRoaXMg bWVzc2FnZS4NCnN0YXJ0LXN0b3AtZGFlbSBEICAgIDAgICAgODUgICAgIDgxIDB4MDAwMDAwMDAN Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT44LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K DQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+OC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0N CkJVRzogZmFpbHVyZSBhdCBtbS9wYWdlLXdyaXRlYmFjay5jOjI2NTIvY2xlYXJfcGFnZV9kaXJ0 eV9mb3JfaW8oKSENCg0KZ2NjIGdlbmVyYXRlZCBfX2J1aWx0aW5fdHJhcA0KUGF0aDogKG51bGwp DQpDUFU6IDMgUElEOiA3IENvbW06IGt3b3JrZXIvdTg6MCBOb3QgdGFpbnRlZCA0LjE4LjAtMDY5 OTUtZzU0ZGJlNzViYmYxZSAjMjINCldvcmtxdWV1ZTogd3JpdGViYWNrIHdiX3dvcmtmbiAoZmx1 c2gtODowKQ0KDQpbRUNSICAgXTogMHgwMDA5MDAwNSA9PiBnY2MgZ2VuZXJhdGVkIF9fYnVpbHRp bl90cmFwDQpbRUZBICAgXTogMHg5MDE2MmI1MA0KW0JMSU5LIF06IGNsZWFyX3BhZ2VfZGlydHlf Zm9yX2lvKzB4MTNhLzB4MTY0DQpbRVJFVCAgXTogYWJvcnQrMHgyLzB4NA0KW1NUQVQzMl06IDB4 ODAwODA4MDIgOiBJRSBLICAgIA0KQlRBOiAweDkwMjFlMzU2ICBTUDogMHhiZjA0NWM2NCAgRlA6 IDB4MDAwMDAwMDANCkxQUzogMHg5MDY3ZmE2OCBMUEU6IDB4OTA2N2ZhN2MgTFBDOiAweDAwMDAw MDAwDQpyMDA6IDB4MDAwMDAwNDMgcjAxOiAweGJmYjQ2MmQ0IHIwMjogMHgwMDAwMDAwMA0KcjAz OiAweDkwMTU3Nzg4IHIwNDogMHgwMDAwMDAwMCByMDU6IDB4OTA4MGMwNDANCnIwNjogMHgwMDAw MDAzMSByMDc6IDB4MDAwMDAwMDAgcjA4OiAweGE5ZWU4NDAwDQpyMDk6IDB4MDAwMDAwMWUgcjEw OiAweDAwMDAwMTAwIHIxMTogMHgwMDAwMDAwMA0KcjEyOiAweDkwMjFlMzVhIHIxMzogMHhiZmYz M2E1NCByMTQ6IDB4YmU4N2UxMjQNCnIxNTogMHhiZjA0NWU1MCByMTY6IDB4YmU4N2UxMjQgcjE3 OiAweDAwMDA0NzBjDQpyMTg6IDB4MDAwMDAwMGYgcjE5OiAweDkwMmFmZWU0IHIyMDogMHhiZjA0 NWNmNA0KcjIxOiAweGZmZmZmZmZmIHIyMjogMHg5MDgwZTQ3NCByMjM6IDB4MDAwMDAwMDANCnIy NDogMHhiZmYzM2E1NCByMjU6IDB4YmYwMzE2ODANCg0KDQoNClN0YWNrIFRyYWNlOg0KIGFib3J0 KzB4Mi8weDQNCiBjbGVhcl9wYWdlX2RpcnR5X2Zvcl9pbysweDEzYS8weDE2NA0KIHdyaXRlX2Nh Y2hlX3BhZ2VzKzB4MTBhLzB4MzI4DQogbXBhZ2Vfd3JpdGVwYWdlcysweDNjLzB4OTQNCiBkb193 cml0ZXBhZ2VzKzB4NDIvMHgzOTgNCiBfX3dyaXRlYmFja19zaW5nbGVfaW5vZGUrMHgyYS8weDE1 NA0KIHdiX3dyaXRlYmFjaysweDUyNC8weGFjOA0KIHdiX3dvcmtmbisweDE3Yy8weDM0Yw0KIHBy b2Nlc3Nfb25lX3dvcmsrMHgxYTAvMHgzNTQNCiB3b3JrZXJfdGhyZWFkKzB4MTA4LzB4NGEwDQog a3RocmVhZCsweDEwYy8weDExMA0KIHJldF9mcm9tX2ZvcmsrMHgxOC8weDFjDQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0+OC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tPjgtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIA0KIyBta2Rp ciAtcCAvbW50L21tYzIvdHR0ICYmIG1vdW50IC9kZXYvc2RhMSAvbW50L21tYzIvdHR0ICYmIGRm IC1oIC9tbnQvbW1jMi90dHQNCiAmJiBib25uaWUrKyAtdSByb290IC1yIDI1NiAtcyA1MTIgLXgg MSAtZCAvbW50L21tYzIvdHR0ICYmIGVjaG8NCidPSycgJg0KIyBGQVQtZnMgKHNkYTEpOiBWb2x1 bWUgd2FzIG5vdCBwcm9wZXJseSB1bm1vdW50ZWQuIFNvbWUgZGF0YSBtYXkgYmUgY29ycnVwdC4g UGxlYXNlIHJ1biBmc2NrLg0KRmlsZXN5c3RlbSAgICAgICAgICAgICAgICBTaXplICAgICAgVXNl ZCBBdmFpbGFibGUNClVzZSUgTW91bnRlZCBvbg0KL2Rldi9zZGExICAgICAgICAgICAgICAgICAy LjBHICAgICAgNC4wSyAgICAgIDIuMEcgICAwJSAvbW50L21tYzIvdHR0DQpVc2luZyB1aWQ6MCwg Z2lkOjAuDQpXcml0aW5nIHdpdGggcHV0YygpLi4ucmFuZG9tOiBjcm5nIGluaXQgZG9uZQ0KZG9u DQplDQpXcml0aW5nIGludGVsbGlnZW50bHkuLi5kb25lDQpSZXdyaXRpbmcuLi5kb25lDQpSZWFk aW5nIHdpdGggZ2V0YygpLi4uZG9uZQ0KUmVhZGluZyBpbnRlbGxpZ2VudGx5Li4uZG9uZQ0Kc3Rh cnQgJ2VtLi4uZG9uZS4uLmRvbmUuLi5kb25lLi4uDQpDcmVhdGUgZmlsZXMgaW4NCnNlcXVlbnRp YWwgb3JkZXIuLi5kb25lLg0KU3RhdCBmaWxlcyBpbiBzZXF1ZW50aWFsIG9yZGVyLi4uZG9uZS4N CkRlbGV0ZSBmaWxlcyBpbiBzZXF1ZW50aWFsIG9yZGVyLi4uZG9uZS4NCkNyZWF0ZSBmaWxlcyBp biByYW5kb20gb3JkZXIuLi5kb25lLg0KU3RhdCBmaWxlcw0KaW4gcmFuZG9tIG9yZGVyLi4uZG9u ZS4NCkRlbGV0ZSBmaWxlcyBpbiByYW5kb20gb3JkZXIuLi5JTkZPOiB0YXNrIGt3b3JrZXIvdTg6 MDo3IGJsb2NrZWQgZm9yIG1vcmUgdGhhbiAxMCBzZWNvbmRzLg0KICAgICAgTm90IHRhaW50ZWQg NC4xOS4wLXJjMSAjNDENCiJlY2hvDQowID4gL3Byb2Mvc3lzL2tlcm5lbC9odW5nX3Rhc2tfdGlt ZW91dF9zZWNzIiBkaXNhYmxlcyB0aGlzIG1lc3NhZ2UuDQprd29ya2VyL3U4OjAgICAgRCAgICAw ICAgICA3ICAgICAgMiAweDAwMDAwMDAwDQpXb3JrcXVldWU6IHdyaXRlYmFjayB3Yl93b3JrZm4N CihmbHVzaC04OjApDQoNClN0YWNrIFRyYWNlOg0KICBfX3N3aXRjaF90bysweDAvMHhhYw0KICBf X3NjaGVkdWxlKzB4MWI4LzB4NzM0DQogIGlvX3NjaGVkdWxlKzB4NWMvMHhjMA0KICBfX2xvY2tf cGFnZSsweDlhLzB4ZGMNCiAgZ2VuZXJpY193cml0ZXBhZ2VzKzB4YzYvMHgzODQNCiAgZG9fd3Jp dGVwYWdlcysweDQyLzB4Mzk4DQogIF9fd3JpdGViYWNrX3NpbmdsZV9pbm9kZSsweDJhLzB4MTU0 DQogIHdiX3dyaXRlYmFjaysweDUyNC8weGFjOA0KICB3Yl93b3JrZm4rMHgyMWEvMHgzNGMNCiAg cHJvY2Vzc19vbmVfd29yaysweDFhMC8weDM1NA0KICB3b3JrZXJfdGhyZWFkKzB4MTA4LzB4NGEw DQogIGt0aHJlYWQrMHgxMGMvMHgxMTANCiAgcmV0X2Zyb21fZm9yaysweDE4LzB4MWMNCklORk86 IHRhc2sga3dvcmtlci91ODowOjcgYmxvY2tlZCBmb3IgbW9yZSB0aGFuIDEwIHNlY29uZHMuDQog ICAgICBOb3QgdGFpbnRlZCA0LjE5LjAtcmMxICM0MQ0KImVjaG8gMCA+IC9wcm9jL3N5cy9rZXJu ZWwvaHVuZ190YXNrX3RpbWVvdXRfc2VjcyIgZGlzYWJsZXMgdGhpcyBtZXNzYWdlLg0Ka3dvcmtl ci91ODowICAgIEQgICAgMCAgICAgNyAgICAgIDIgMHgwMDAwMDAwMA0KV29ya3F1ZXVlOiB3cml0 ZWJhY2sgd2Jfd29ya2ZuIChmbHVzaC04OjApDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+OC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPjgt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIA0KIyBoYWNrYmVuY2gNClJ1bm5pbmcgaW4g cHJvY2VzcyBtb2RlIHdpdGggMTAgZ3JvdXBzIHVzaW5nIDQwIGZpbGUgZGVzY3JpcHRvcnMgZWFj aCAoPT0gNDAwIHRhc2tzKQ0KRWFjaCBzZW5kZXIgd2lsbCBwYXNzIDEwMCBtZXNzYWdlcyBvZiAx MDAgYnl0ZXMNCklORk86IHRhc2sgaGFja2JlbmNoOjUxOSBibG9ja2VkIGZvciBtb3JlIHRoYW4g MTAgc2Vjb25kcy4NCiAgICAgIE5vdCB0YWludGVkIDQuMTkuMC1yYzEgIzINCiJlY2hvIDAgPiAv cHJvYy9zeXMva2VybmVsL2h1bmdfdGFza190aW1lb3V0X3NlY3MiIGRpc2FibGVzIHRoaXMgbWVz c2FnZS4NCmhhY2tiZW5jaCAgICAgICBEICAgIDAgICA1MTkgICAgMTEwIDB4MDAwMDAwMDANCg0K U3RhY2sgVHJhY2U6DQogIF9fc3dpdGNoX3RvKzB4MC8weGFjDQogIF9fc2NoZWR1bGUrMHgxYjIv MHg3MzANCiAgaW9fc2NoZWR1bGUrMHg1Yy8weGMwDQogIF9fbG9ja19wYWdlKzB4OTgvMHhkYw0K ICBoYW5kbGVfbW1fZmF1bHQrMHg1OTQvMHhlMWMNCiAgZG9fcGFnZV9mYXVsdCsweGZjLzB4Mjk0 DQogIHJldF9mcm9tX2V4Y2VwdGlvbisweDAvMHg4DQpJTkZPOiB0YXNrIGhhY2tiZW5jaDo1MTkg YmxvY2tlZCBmb3IgbW9yZSB0aGFuIDEwIHNlY29uZHMuDQogICAgICBOb3QgdGFpbnRlZCA0LjE5 LjAtcmMxICMyDQoiZWNobyAwID4gL3Byb2Mvc3lzL2tlcm5lbC9odW5nX3Rhc2tfdGltZW91dF9z ZWNzIiBkaXNhYmxlcyB0aGlzIG1lc3NhZ2UuDQpoYWNrYmVuY2ggICAgICAgRCAgICAwICAgNTE5 ICAgIDExMCAweDAwMDAwMDAwDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+OC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0NCg0KDQotLSANCiBFdWdlbml5IFBhbHRzZXY= From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eugeniy.Paltsev@synopsys.com (Eugeniy Paltsev) Date: Thu, 30 Aug 2018 11:53:17 +0000 Subject: Patch "asm-generic/bitops/lock.h: Rewrite using atomic_fetch_" causes kernel crash In-Reply-To: <20180830095148.GB5942@arm.com> References: <1535567633.4465.23.camel@synopsys.com> <20180830094411.GX24124@hirez.programming.kicks-ass.net> <20180830095148.GB5942@arm.com> List-ID: Message-ID: <1535629996.4465.44.camel@synopsys.com> To: linux-snps-arc@lists.infradead.org Hi Will, On Thu, 2018-08-30@10:51 +0100, Will Deacon wrote: > On Thu, Aug 30, 2018@11:44:11AM +0200, Peter Zijlstra wrote: > > On Wed, Aug 29, 2018@09:16:43PM +0000, Vineet Gupta wrote: > > > On 08/29/2018 11:33 AM, Eugeniy Paltsev wrote: > > > > Hi Guys, > > > > Since v4.19-rc1 we are getting a serious regression on platforms with ARC architecture. > > > > The kernel have become unstable and spontaneously crashes on LTP tests execution / IO tests or > > > > even on boot. > > > > > > > > I don't know exactly what breaks but bisect clearly assign the blame to this commit: > > > > 84c6591103db ("locking/atomics, asm-generic/bitops/lock.h: Rewrite using atomic_fetch_*()") > > > > https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_torvalds_linux_commit_84c6591103dbeaf393a092a3fc7b09510825f6b9&d=DwIBAg&c=DPL6 > > > > _X_6JkXFx7AXWqB0tg&r=ZlJN1MriPUTkBKCrPSx67GmaplEUGcAEk9yPtCLdUXI&m=6y0FFvkGdIQ6kX2lZ31V99lMfMV- > > > > RyWyYhiUGzh0Bi0&s=GNwmhSynIcWqgZhiOwFEEH_AtbZAH443_L6QH4nw_ls&e= > > > > > > > > Reverting the commit solves this problem. > > > > > > > > I tested v4.19-rc1 on ARM (wandboard, i.mx6, 32bit, quard core, ARMv7) which uses same > > > > generic bitops implementation and it works fine. > > > > > > > > Do you have any ideas what went wrong? > > > > > > Back in 2016, Peter had fixed this file due to a problem I reported on ARC. See > > > commit f75d48644c56a ("bitops: Do not default to __clear_bit() for > > > __clear_bit_unlock()") > > > That made __clear_bit_unlock() use the atomic clear_bit() vs. non-atomic > > > __clear_bit(), effectively making clear_bit_unlock() and __clear_bit_unlock() same. > > > > > > This patch undoes that which could explain the issues you see. @Peter, @Will ? > > > > Right, so the thinking is that on platforms that suffer that issue, > > atomic_set*() should DTRT. And if you look at your spinlock based atomic > > implementation, you'll note that atomic_set() does indeed do the right > > thing. > > > > arch/arc/include/asm/atomic.h:108 > > Yeah, the bit_spin_lock()/__bit_spin_unlock() race described in f75d48644c56a > boils down to concurrent atomic_long_set_release() vs > atomic_long_fetch_or_acquire(), which really needs to work. > > I'll keep digging. In the meantime, Vineet, do you have any useful crash > logs and do you only see the crashes in certain configurations (e.g. SMP but > !CONFIG_ARC_HAS_LLSC)? We don't have such configuration (SMP with !CONFIG_ARC_HAS_LLSC). I can see crashes with LLSC enabled in both SMP running on 4 cores and SMP running on 1 core. There are some crash logs (not sure if they are really useful): Crashes are quite spontaneous and mostly happens in IO-related code: Crash on boot: ------------------------>8---------------------------- usb 1-1: new high-speed USB device number 2 using ehci-platform hub 1-1:1.0: USB hub found hub 1-1:1.0: 2 ports detected usb 1-1.1: new high-speed USB device number 3 using ehci-platform usb-storage 1-1.1:1.0: USB Mass Storage device detected scsi host0: usb-storage 1-1.1:1.0 scsi 0:0:0:0: Direct-Access Generic STORAGE DEVICE 0272 PQ: 0 ANSI: 0 sd 0:0:0:0: [sda] 15759360 512-byte logical blocks: (8.07 GB/7.51 GiB) sd 0:0:0:0: [sda] Write Protect is off sd 0:0:0:0: [sda] Mode Sense: 0b 00 00 08 sd 0:0:0:0: [sda] No Caching mode page found sd 0:0:0:0: [sda] Assuming drive cache: write through sda: sda1 sda2 sda3 sda4 sd 0:0:0:0: [sda] Attached SCSI removable disk INFO: task start-stop-daem:85 blocked for more than 10 seconds. Not tainted 4.19.0-rc1 #2 "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. start-stop-daem D 0 85 81 0x00000000 Stack Trace: __switch_to+0x0/0xac __schedule+0x1b2/0x730 io_schedule+0x5c/0xc0 __lock_page+0x98/0xdc find_lock_entry+0x38/0x100 shmem_getpage_gfp.isra.3+0x82/0xbfc shmem_fault+0x46/0x138 handle_mm_fault+0x5bc/0x924 do_page_fault+0xfc/0x294 ret_from_exception+0x0/0x8 INFO: task start-stop-daem:85 blocked for more than 10 seconds. Not tainted 4.19.0-rc1 #2 "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. start-stop-daem D 0 85 81 0x00000000 ------------------------>8---------------------------- ------------------------>8---------------------------- BUG: failure at mm/page-writeback.c:2652/clear_page_dirty_for_io()! gcc generated __builtin_trap Path: (null) CPU: 3 PID: 7 Comm: kworker/u8:0 Not tainted 4.18.0-06995-g54dbe75bbf1e #22 Workqueue: writeback wb_workfn (flush-8:0) [ECR ]: 0x00090005 => gcc generated __builtin_trap [EFA ]: 0x90162b50 [BLINK ]: clear_page_dirty_for_io+0x13a/0x164 [ERET ]: abort+0x2/0x4 [STAT32]: 0x80080802 : IE K BTA: 0x9021e356 SP: 0xbf045c64 FP: 0x00000000 LPS: 0x9067fa68 LPE: 0x9067fa7c LPC: 0x00000000 r00: 0x00000043 r01: 0xbfb462d4 r02: 0x00000000 r03: 0x90157788 r04: 0x00000000 r05: 0x9080c040 r06: 0x00000031 r07: 0x00000000 r08: 0xa9ee8400 r09: 0x0000001e r10: 0x00000100 r11: 0x00000000 r12: 0x9021e35a r13: 0xbff33a54 r14: 0xbe87e124 r15: 0xbf045e50 r16: 0xbe87e124 r17: 0x0000470c r18: 0x0000000f r19: 0x902afee4 r20: 0xbf045cf4 r21: 0xffffffff r22: 0x9080e474 r23: 0x00000000 r24: 0xbff33a54 r25: 0xbf031680 Stack Trace: abort+0x2/0x4 clear_page_dirty_for_io+0x13a/0x164 write_cache_pages+0x10a/0x328 mpage_writepages+0x3c/0x94 do_writepages+0x42/0x398 __writeback_single_inode+0x2a/0x154 wb_writeback+0x524/0xac8 wb_workfn+0x17c/0x34c process_one_work+0x1a0/0x354 worker_thread+0x108/0x4a0 kthread+0x10c/0x110 ret_from_fork+0x18/0x1c ------------------------>8---------------------------- ------------------------>8---------------------------- # # mkdir -p /mnt/mmc2/ttt && mount /dev/sda1 /mnt/mmc2/ttt && df -h /mnt/mmc2/ttt && bonnie++ -u root -r 256 -s 512 -x 1 -d /mnt/mmc2/ttt && echo 'OK' & # FAT-fs (sda1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck. Filesystem Size Used Available Use% Mounted on /dev/sda1 2.0G 4.0K 2.0G 0% /mnt/mmc2/ttt Using uid:0, gid:0. Writing with putc()...random: crng init done don e Writing intelligently...done Rewriting...done Reading with getc()...done Reading intelligently...done start 'em...done...done...done... Create files in sequential order...done. Stat files in sequential order...done. Delete files in sequential order...done. Create files in random order...done. Stat files in random order...done. Delete files in random order...INFO: task kworker/u8:0:7 blocked for more than 10 seconds. Not tainted 4.19.0-rc1 #41 "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. kworker/u8:0 D 0 7 2 0x00000000 Workqueue: writeback wb_workfn (flush-8:0) Stack Trace: __switch_to+0x0/0xac __schedule+0x1b8/0x734 io_schedule+0x5c/0xc0 __lock_page+0x9a/0xdc generic_writepages+0xc6/0x384 do_writepages+0x42/0x398 __writeback_single_inode+0x2a/0x154 wb_writeback+0x524/0xac8 wb_workfn+0x21a/0x34c process_one_work+0x1a0/0x354 worker_thread+0x108/0x4a0 kthread+0x10c/0x110 ret_from_fork+0x18/0x1c INFO: task kworker/u8:0:7 blocked for more than 10 seconds. Not tainted 4.19.0-rc1 #41 "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. kworker/u8:0 D 0 7 2 0x00000000 Workqueue: writeback wb_workfn (flush-8:0) ------------------------>8---------------------------- ------------------------>8---------------------------- # # hackbench Running in process mode with 10 groups using 40 file descriptors each (== 400 tasks) Each sender will pass 100 messages of 100 bytes INFO: task hackbench:519 blocked for more than 10 seconds. Not tainted 4.19.0-rc1 #2 "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. hackbench D 0 519 110 0x00000000 Stack Trace: __switch_to+0x0/0xac __schedule+0x1b2/0x730 io_schedule+0x5c/0xc0 __lock_page+0x98/0xdc handle_mm_fault+0x594/0xe1c do_page_fault+0xfc/0x294 ret_from_exception+0x0/0x8 INFO: task hackbench:519 blocked for more than 10 seconds. Not tainted 4.19.0-rc1 #2 "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. hackbench D 0 519 110 0x00000000 ------------------------>8---------------------------- -- Eugeniy Paltsev From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eugeniy.Paltsev@synopsys.com (Eugeniy Paltsev) Date: Thu, 30 Aug 2018 11:53:17 +0000 Subject: Patch "asm-generic/bitops/lock.h: Rewrite using atomic_fetch_" causes kernel crash In-Reply-To: <20180830095148.GB5942@arm.com> References: <1535567633.4465.23.camel@synopsys.com> <20180830094411.GX24124@hirez.programming.kicks-ass.net> <20180830095148.GB5942@arm.com> Message-ID: <1535629996.4465.44.camel@synopsys.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Hi Will, On Thu, 2018-08-30 at 10:51 +0100, Will Deacon wrote: > On Thu, Aug 30, 2018 at 11:44:11AM +0200, Peter Zijlstra wrote: > > On Wed, Aug 29, 2018 at 09:16:43PM +0000, Vineet Gupta wrote: > > > On 08/29/2018 11:33 AM, Eugeniy Paltsev wrote: > > > > Hi Guys, > > > > Since v4.19-rc1 we are getting a serious regression on platforms with ARC architecture. > > > > The kernel have become unstable and spontaneously crashes on LTP tests execution / IO tests or > > > > even on boot. > > > > > > > > I don't know exactly what breaks but bisect clearly assign the blame to this commit: > > > > 84c6591103db ("locking/atomics, asm-generic/bitops/lock.h: Rewrite using atomic_fetch_*()") > > > > https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_torvalds_linux_commit_84c6591103dbeaf393a092a3fc7b09510825f6b9&d=DwIBAg&c=DPL6 > > > > _X_6JkXFx7AXWqB0tg&r=ZlJN1MriPUTkBKCrPSx67GmaplEUGcAEk9yPtCLdUXI&m=6y0FFvkGdIQ6kX2lZ31V99lMfMV- > > > > RyWyYhiUGzh0Bi0&s=GNwmhSynIcWqgZhiOwFEEH_AtbZAH443_L6QH4nw_ls&e= > > > > > > > > Reverting the commit solves this problem. > > > > > > > > I tested v4.19-rc1 on ARM (wandboard, i.mx6, 32bit, quard core, ARMv7) which uses same > > > > generic bitops implementation and it works fine. > > > > > > > > Do you have any ideas what went wrong? > > > > > > Back in 2016, Peter had fixed this file due to a problem I reported on ARC. See > > > commit f75d48644c56a ("bitops: Do not default to __clear_bit() for > > > __clear_bit_unlock()") > > > That made __clear_bit_unlock() use the atomic clear_bit() vs. non-atomic > > > __clear_bit(), effectively making clear_bit_unlock() and __clear_bit_unlock() same. > > > > > > This patch undoes that which could explain the issues you see. @Peter, @Will ? > > > > Right, so the thinking is that on platforms that suffer that issue, > > atomic_set*() should DTRT. And if you look at your spinlock based atomic > > implementation, you'll note that atomic_set() does indeed do the right > > thing. > > > > arch/arc/include/asm/atomic.h:108 > > Yeah, the bit_spin_lock()/__bit_spin_unlock() race described in f75d48644c56a > boils down to concurrent atomic_long_set_release() vs > atomic_long_fetch_or_acquire(), which really needs to work. > > I'll keep digging. In the meantime, Vineet, do you have any useful crash > logs and do you only see the crashes in certain configurations (e.g. SMP but > !CONFIG_ARC_HAS_LLSC)? We don't have such configuration (SMP with !CONFIG_ARC_HAS_LLSC). I can see crashes with LLSC enabled in both SMP running on 4 cores and SMP running on 1 core. There are some crash logs (not sure if they are really useful): Crashes are quite spontaneous and mostly happens in IO-related code: Crash on boot: ------------------------>8---------------------------- usb 1-1: new high-speed USB device number 2 using ehci-platform hub 1-1:1.0: USB hub found hub 1-1:1.0: 2 ports detected usb 1-1.1: new high-speed USB device number 3 using ehci-platform usb-storage 1-1.1:1.0: USB Mass Storage device detected scsi host0: usb-storage 1-1.1:1.0 scsi 0:0:0:0: Direct-Access Generic STORAGE DEVICE 0272 PQ: 0 ANSI: 0 sd 0:0:0:0: [sda] 15759360 512-byte logical blocks: (8.07 GB/7.51 GiB) sd 0:0:0:0: [sda] Write Protect is off sd 0:0:0:0: [sda] Mode Sense: 0b 00 00 08 sd 0:0:0:0: [sda] No Caching mode page found sd 0:0:0:0: [sda] Assuming drive cache: write through sda: sda1 sda2 sda3 sda4 sd 0:0:0:0: [sda] Attached SCSI removable disk INFO: task start-stop-daem:85 blocked for more than 10 seconds. Not tainted 4.19.0-rc1 #2 "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. start-stop-daem D 0 85 81 0x00000000 Stack Trace: __switch_to+0x0/0xac __schedule+0x1b2/0x730 io_schedule+0x5c/0xc0 __lock_page+0x98/0xdc find_lock_entry+0x38/0x100 shmem_getpage_gfp.isra.3+0x82/0xbfc shmem_fault+0x46/0x138 handle_mm_fault+0x5bc/0x924 do_page_fault+0xfc/0x294 ret_from_exception+0x0/0x8 INFO: task start-stop-daem:85 blocked for more than 10 seconds. Not tainted 4.19.0-rc1 #2 "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. start-stop-daem D 0 85 81 0x00000000 ------------------------>8---------------------------- ------------------------>8---------------------------- BUG: failure at mm/page-writeback.c:2652/clear_page_dirty_for_io()! gcc generated __builtin_trap Path: (null) CPU: 3 PID: 7 Comm: kworker/u8:0 Not tainted 4.18.0-06995-g54dbe75bbf1e #22 Workqueue: writeback wb_workfn (flush-8:0) [ECR ]: 0x00090005 => gcc generated __builtin_trap [EFA ]: 0x90162b50 [BLINK ]: clear_page_dirty_for_io+0x13a/0x164 [ERET ]: abort+0x2/0x4 [STAT32]: 0x80080802 : IE K BTA: 0x9021e356 SP: 0xbf045c64 FP: 0x00000000 LPS: 0x9067fa68 LPE: 0x9067fa7c LPC: 0x00000000 r00: 0x00000043 r01: 0xbfb462d4 r02: 0x00000000 r03: 0x90157788 r04: 0x00000000 r05: 0x9080c040 r06: 0x00000031 r07: 0x00000000 r08: 0xa9ee8400 r09: 0x0000001e r10: 0x00000100 r11: 0x00000000 r12: 0x9021e35a r13: 0xbff33a54 r14: 0xbe87e124 r15: 0xbf045e50 r16: 0xbe87e124 r17: 0x0000470c r18: 0x0000000f r19: 0x902afee4 r20: 0xbf045cf4 r21: 0xffffffff r22: 0x9080e474 r23: 0x00000000 r24: 0xbff33a54 r25: 0xbf031680 Stack Trace: abort+0x2/0x4 clear_page_dirty_for_io+0x13a/0x164 write_cache_pages+0x10a/0x328 mpage_writepages+0x3c/0x94 do_writepages+0x42/0x398 __writeback_single_inode+0x2a/0x154 wb_writeback+0x524/0xac8 wb_workfn+0x17c/0x34c process_one_work+0x1a0/0x354 worker_thread+0x108/0x4a0 kthread+0x10c/0x110 ret_from_fork+0x18/0x1c ------------------------>8---------------------------- ------------------------>8---------------------------- # # mkdir -p /mnt/mmc2/ttt && mount /dev/sda1 /mnt/mmc2/ttt && df -h /mnt/mmc2/ttt && bonnie++ -u root -r 256 -s 512 -x 1 -d /mnt/mmc2/ttt && echo 'OK' & # FAT-fs (sda1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck. Filesystem Size Used Available Use% Mounted on /dev/sda1 2.0G 4.0K 2.0G 0% /mnt/mmc2/ttt Using uid:0, gid:0. Writing with putc()...random: crng init done don e Writing intelligently...done Rewriting...done Reading with getc()...done Reading intelligently...done start 'em...done...done...done... Create files in sequential order...done. Stat files in sequential order...done. Delete files in sequential order...done. Create files in random order...done. Stat files in random order...done. Delete files in random order...INFO: task kworker/u8:0:7 blocked for more than 10 seconds. Not tainted 4.19.0-rc1 #41 "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. kworker/u8:0 D 0 7 2 0x00000000 Workqueue: writeback wb_workfn (flush-8:0) Stack Trace: __switch_to+0x0/0xac __schedule+0x1b8/0x734 io_schedule+0x5c/0xc0 __lock_page+0x9a/0xdc generic_writepages+0xc6/0x384 do_writepages+0x42/0x398 __writeback_single_inode+0x2a/0x154 wb_writeback+0x524/0xac8 wb_workfn+0x21a/0x34c process_one_work+0x1a0/0x354 worker_thread+0x108/0x4a0 kthread+0x10c/0x110 ret_from_fork+0x18/0x1c INFO: task kworker/u8:0:7 blocked for more than 10 seconds. Not tainted 4.19.0-rc1 #41 "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. kworker/u8:0 D 0 7 2 0x00000000 Workqueue: writeback wb_workfn (flush-8:0) ------------------------>8---------------------------- ------------------------>8---------------------------- # # hackbench Running in process mode with 10 groups using 40 file descriptors each (== 400 tasks) Each sender will pass 100 messages of 100 bytes INFO: task hackbench:519 blocked for more than 10 seconds. Not tainted 4.19.0-rc1 #2 "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. hackbench D 0 519 110 0x00000000 Stack Trace: __switch_to+0x0/0xac __schedule+0x1b2/0x730 io_schedule+0x5c/0xc0 __lock_page+0x98/0xdc handle_mm_fault+0x594/0xe1c do_page_fault+0xfc/0x294 ret_from_exception+0x0/0x8 INFO: task hackbench:519 blocked for more than 10 seconds. Not tainted 4.19.0-rc1 #2 "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. hackbench D 0 519 110 0x00000000 ------------------------>8---------------------------- -- Eugeniy Paltsev