Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752146Ab3DUVms (ORCPT ); Sun, 21 Apr 2013 17:42:48 -0400 Received: from mail.skyhub.de ([78.46.96.112]:39456 "EHLO mail.skyhub.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751702Ab3DUVmq (ORCPT ); Sun, 21 Apr 2013 17:42:46 -0400 Date: Sun, 21 Apr 2013 23:42:41 +0200 From: Borislav Petkov To: "Paul E. McKenney" Cc: x86-ml , lkml , tiwai@suse.de Subject: Re: irq 16: nobody cared Message-ID: <20130421214241.GA4593@pd.tnic> References: <20130420185330.GA4654@pd.tnic> <20130420235206.GA3509@linux.vnet.ibm.com> <20130421103403.GA4594@pd.tnic> <20130421163002.GB3509@linux.vnet.ibm.com> <20130421165653.GA4623@pd.tnic> <20130421181035.GC4559@pd.tnic> <20130421185609.GD3509@linux.vnet.ibm.com> <20130421190655.GA5807@pd.tnic> <20130421203447.GE3509@linux.vnet.ibm.com> <20130421205139.GC5807@pd.tnic> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20130421205139.GC5807@pd.tnic> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1889 Lines: 69 On Sun, Apr 21, 2013 at 10:51:39PM +0200, Borislav Petkov wrote: > A similar oneliner at the end of the resume path. > > Maybe have rcu suspend/resume callbacks where you can do this stuff > and maybe more in the future. Ok, here's one - it is pretty straight-forward using that notifier abomination :-). It is only in rcutree.c, it could probably be shared with rcutiny.c. And it has a section mismatch but I'll fix that too. It works though - two suspend/resume cycles looked ok. -- diff --git a/kernel/rcutree.c b/kernel/rcutree.c index 986d1d3a34f5..cb1f61ede2f9 100644 --- a/kernel/rcutree.c +++ b/kernel/rcutree.c @@ -53,6 +53,7 @@ #include #include #include +#include #include "rcutree.h" #include @@ -3097,6 +3098,22 @@ static int __cpuinit rcu_cpu_notify(struct notifier_block *self, return NOTIFY_OK; } +static int __cpuinit rcu_pm_notify(struct notifier_block *self, + unsigned long action, void *hcpu) +{ + switch (action) { + case PM_HIBERNATION_PREPARE: + rcu_expedited = 1; + break; + case PM_POST_RESTORE: + rcu_expedited = 0; + break; + default: + break; + } + return NOTIFY_OK; +} + /* * Spawn the kthread that handles this RCU flavor's grace periods. */ @@ -3323,6 +3340,7 @@ void __init rcu_init(void) * or the scheduler are operational. */ cpu_notifier(rcu_cpu_notify, 0); + pm_notifier(rcu_pm_notify, 0); for_each_online_cpu(cpu) rcu_cpu_notify(NULL, CPU_UP_PREPARE, (void *)(long)cpu); } -- Regards/Gruss, Boris. Sent from a fat crate under my desk. Formatting is fine. -- -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/