From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932574AbbFHUEG (ORCPT ); Mon, 8 Jun 2015 16:04:06 -0400 Received: from mga14.intel.com ([192.55.52.115]:19406 "EHLO mga14.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753499AbbFHUD4 (ORCPT ); Mon, 8 Jun 2015 16:03:56 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.13,575,1427785200"; d="scan'208";a="739629523" From: "Luck, Tony" To: Borislav Petkov CC: "Chen, Gong" , "linux-kernel@vger.kernel.org" Subject: RE: [PATCH 4/4 Rebase] x86, MCE: Avoid potential deadlock in MCE context Thread-Topic: [PATCH 4/4 Rebase] x86, MCE: Avoid potential deadlock in MCE context Thread-Index: AQHQksgtBLIHic8CpUKauHP9qzgCfZ2FDk8AgAPpk4D//zX4gIAbA5GA///0otA= Date: Mon, 8 Jun 2015 20:03:08 +0000 Message-ID: <3908561D78D1C84285E8C5FCA982C28F32A8E51A@ORSMSX114.amr.corp.intel.com> References: <1432150538-3120-1-git-send-email-gong.chen@linux.intel.com> <1432150538-3120-5-git-send-email-gong.chen@linux.intel.com> <20150520092800.GB3645@pd.tnic> <20150522211247.GB4930@gchen.bj.intel.com> <20150522090941.GD3606@pd.tnic> <20150608134127.GE5877@pd.tnic> In-Reply-To: <20150608134127.GE5877@pd.tnic> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.22.254.138] Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from base64 to 8bit by nfs id t58K4BCI023942 > So AFAINM, we want to do MCE work only after we've logged something to > the genpool. So we can do the much simplified thing below and kick the > workqueue from within mce_log() as everything that logs, calls that > function. > > Tony, any concerns? @@ -156,7 +156,8 @@ void mce_log(struct mce *mce) /* Emit the trace record: */ trace_mce_record(mce); - atomic_notifier_call_chain(&x86_mce_decoder_chain, 0, mce); + mce_genpool_add(mce); + irq_work_queue(&mce_irq_work); Is it safe to call irq_work_queue() from MCE context? If that is OK, then I don't have any concerns. -Tony {.n++%ݶw{.n+{G{ayʇڙ,jfhz_(階ݢj"mG?&~iOzv^m ?I