From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Wed, 12 Apr 2017 23:47:49 +0200 From: Borislav Petkov Subject: Re: [RFC PATCH] x86, mce: change the mce notifier to 'blocking' from 'atomic' Message-ID: <20170412214749.jyt7cmyhovivtb2m@pd.tnic> References: <20170411224457.24777-1-vishal.l.verma@intel.com> <20170412091442.dwonfr4dwyta7nvx@pd.tnic> <20170412195903.GA29506@omniknight.lm.intel.com> <20170412202238.5d327vmwjqvbzzop@pd.tnic> <1492028744.2738.14.camel@intel.com> <20170412205229.GA13659@intel.com> <20170412211931.GA15771@intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20170412211931.GA15771@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: linux-nvdimm-bounces@lists.01.org Sender: "Linux-nvdimm" To: "Luck, Tony" Cc: "linux-nvdimm@lists.01.org" , "x86@kernel.org" , "linux-kernel@vger.kernel.org" , Thomas Gleixner List-ID: T24gV2VkLCBBcHIgMTIsIDIwMTcgYXQgMDI6MTk6MzJQTSAtMDcwMCwgTHVjaywgVG9ueSB3cm90 ZToKPiBPbiBXZWQsIEFwciAxMiwgMjAxNyBhdCAxMToxMjoyMVBNICswMjAwLCBUaG9tYXMgR2xl aXhuZXIgd3JvdGU6Cj4gPiBUaGVyZSBpcyBhbm90aGVyIHNvbHV0aW9uOgo+ID4gCj4gPiBDb252 ZXJ0IHRoZSBub3RpZmllciB0byBhIGJsb2NraW5nIG5vdGlmaWVyIGFuZCBpbiB0aGUgcGFuaWMg Y2FzZSwgaWdub3JlCj4gPiB0aGUgbG9ja2luZyBhbmQgaW52b2tlIHRoZSBub3RpZmllciBjaGFp biBkaXJlY3RseS4gVGhhdCBuZWVkcyBzb21lIG1pbmltYWwKPiA+IHN1cmdlcnkgaW4gdGhlIG5v dGlmaWVyIGNvZGUgdG8gYWxsb3cgdGhhdCwgYnV0IHRoYXQncyBjZXJ0YWlubHkgbGVzcyB1Z2x5 Cj4gPiB0aGFuIHNwbGl0dGluZyBzdHVmZiB1cCBpbnRvIHR3byBjaGFpbnMuCj4gCj4gQnV0IEkg d29uZGVyIHdoZXRoZXIgd2UgYWN0dWFsbHkgd2FudCB0d28gY2hhaW5zLiAgV2UndmUgYmVlbiBh ZGRpbmcgYSBidW5jaAo+IG9mIGdlbmVyYWwgcnVuLXRpbWUgbG9nZ2luZyBhbmQgcmVjb3Zlcnkg c3R1ZmYgdG8gdGhpcyBjaGFpbi4gU28gbm93IHdlIGhhdmUKPiB0aGluZ3MgdGhlcmUgdGhhdCBh cmVuJ3QgbmVlZGVkIG9yIHVzZWZ1bCBpbiB0aGUgcGFuaWMgY2FzZS4gRS5nLgo+IHNyYW9fZGVj b2RlX25vdGlmaWVyKCkgKHdoaWNoIHRyaWVzIHRvIG9mZmxpbmUgYSBwYWdlIHRoYXQgcmVwb3J0 ZWQgYW4KPiB1bmNvcnJlY3RlZCBlcnJvciBvdXQgb2YgdGhlIGV4ZWN1dGlvbiBwYXRoKSBhbmQg Qm9yaXMncyBuZXcgQ0VDIGNvZGUuCgpJIGd1ZXNzIHdlJ2xsIGhhdmUgdG8uIFRoZSBDRUMgdGhp bmcgZG9lcyBtdXRleF9sb2NrKCkgdG9vIGFuZCB0aGUKYXRvbWljIG5vdGlmaWVyIGRpc2FibGVz IHByZWVtcHRpb246CgpfX2F0b21pY19ub3RpZmllcl9jYWxsX2NoYWluKCkKIHJjdV9yZWFkX2xv Y2soKQogIF9fcmN1X3JlYWRfbG9jaygpCglpZiAoSVNfRU5BQkxFRChDT05GSUdfUFJFRU1QVF9D T1VOVCkpCgkJcHJlZW1wdF9kaXNhYmxlKCk7CgpzbyB3ZSBuZWVkIHRvIHRoaW5rIGFib3V0IHNv bWV0aGluZyBiZXR0ZXIgdG8gaGFuZGxlIGV2ZW50cyBkb3duIHRoZQp3aG9sZSBjaGFpbi4gTWF5 YmUgcm91dGUgZXZlbnRzIGZyb20gdGhlIGF0b21pYyBwYXRoIHRvIHRoZSBibG9ja2luZwpwYXRo IHdoZXJlIHRoZSBzbGVlcGluZyBub3RpZmllciBjYWxsYmFja3MgY2FuIHNsZWVwIGFzIG11Y2gg YXMgdGhleQp3YW50IHRvLi4uCgotLSAKUmVnYXJkcy9HcnVzcywKICAgIEJvcmlzLgoKU1VTRSBM aW51eCBHbWJILCBHRjogRmVsaXggSW1lbmTDtnJmZmVyLCBKYW5lIFNtaXRoYXJkLCBHcmFoYW0g Tm9ydG9uLCBIUkIgMjEyODQgKEFHIE7DvHJuYmVyZykKLS0gCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkxpbnV4LW52ZGltbSBtYWlsaW5nIGxpc3QKTGlu dXgtbnZkaW1tQGxpc3RzLjAxLm9yZwpodHRwczovL2xpc3RzLjAxLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2xpbnV4LW52ZGltbQo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754926AbdDLVsN (ORCPT ); Wed, 12 Apr 2017 17:48:13 -0400 Received: from mx2.suse.de ([195.135.220.15]:36827 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754785AbdDLVsK (ORCPT ); Wed, 12 Apr 2017 17:48:10 -0400 Date: Wed, 12 Apr 2017 23:47:49 +0200 From: Borislav Petkov To: "Luck, Tony" Cc: Thomas Gleixner , Dan Williams , "Verma, Vishal L" , "linux-kernel@vger.kernel.org" , "linux-nvdimm@lists.01.org" , "ross.zwisler@linux.intel.com" , "x86@kernel.org" Subject: Re: [RFC PATCH] x86, mce: change the mce notifier to 'blocking' from 'atomic' Message-ID: <20170412214749.jyt7cmyhovivtb2m@pd.tnic> References: <20170411224457.24777-1-vishal.l.verma@intel.com> <20170412091442.dwonfr4dwyta7nvx@pd.tnic> <20170412195903.GA29506@omniknight.lm.intel.com> <20170412202238.5d327vmwjqvbzzop@pd.tnic> <1492028744.2738.14.camel@intel.com> <20170412205229.GA13659@intel.com> <20170412211931.GA15771@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20170412211931.GA15771@intel.com> User-Agent: NeoMutt/20170113 (1.7.2) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Apr 12, 2017 at 02:19:32PM -0700, Luck, Tony wrote: > On Wed, Apr 12, 2017 at 11:12:21PM +0200, Thomas Gleixner wrote: > > There is another solution: > > > > Convert the notifier to a blocking notifier and in the panic case, ignore > > the locking and invoke the notifier chain directly. That needs some minimal > > surgery in the notifier code to allow that, but that's certainly less ugly > > than splitting stuff up into two chains. > > But I wonder whether we actually want two chains. We've been adding a bunch > of general run-time logging and recovery stuff to this chain. So now we have > things there that aren't needed or useful in the panic case. E.g. > srao_decode_notifier() (which tries to offline a page that reported an > uncorrected error out of the execution path) and Boris's new CEC code. I guess we'll have to. The CEC thing does mutex_lock() too and the atomic notifier disables preemption: __atomic_notifier_call_chain() rcu_read_lock() __rcu_read_lock() if (IS_ENABLED(CONFIG_PREEMPT_COUNT)) preempt_disable(); so we need to think about something better to handle events down the whole chain. Maybe route events from the atomic path to the blocking path where the sleeping notifier callbacks can sleep as much as they want to... -- Regards/Gruss, Boris. SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard, Graham Norton, HRB 21284 (AG Nürnberg) --