From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752929AbcBAJ3D (ORCPT ); Mon, 1 Feb 2016 04:29:03 -0500 Received: from casper.infradead.org ([85.118.1.10]:33391 "EHLO casper.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750733AbcBAJ27 (ORCPT ); Mon, 1 Feb 2016 04:28:59 -0500 Date: Mon, 1 Feb 2016 10:28:56 +0100 From: Peter Zijlstra To: riel@redhat.com Cc: linux-kernel@vger.kernel.org, fweisbec@gmail.com, tglx@linutronix.de, mingo@kernel.org, luto@amacapital.net, clark@redhat.com Subject: Re: [PATCH 3/4] time,acct: drop irq save & restore from __acct_update_integrals Message-ID: <20160201092856.GM6357@twins.programming.kicks-ass.net> References: <1454292751-23472-1-git-send-email-riel@redhat.com> <1454292751-23472-4-git-send-email-riel@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1454292751-23472-4-git-send-email-riel@redhat.com> User-Agent: Mutt/1.5.21 (2012-12-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sun, Jan 31, 2016 at 09:12:30PM -0500, riel@redhat.com wrote: > kernel/tsacct.c | 6 +----- > 1 file changed, 1 insertion(+), 5 deletions(-) > > diff --git a/kernel/tsacct.c b/kernel/tsacct.c > index 9c23584c76c4..31fb6c9746d4 100644 > --- a/kernel/tsacct.c > +++ b/kernel/tsacct.c > @@ -124,20 +124,18 @@ static void __acct_update_integrals(struct task_struct *tsk, > cputime_t utime, cputime_t stime) > { > cputime_t time, dtime; > - unsigned long flags; > u64 delta; > > if (!likely(tsk->mm)) > return; > > - local_irq_save(flags); > time = stime + utime; > dtime = time - tsk->acct_timexpd; > /* Avoid division: cputime_t is often in nanoseconds already. */ > delta = cputime_to_nsecs(dtime); > > if (delta < TICK_NSEC) > - goto out; > + return; > > tsk->acct_timexpd = time; > /* > @@ -147,8 +145,6 @@ static void __acct_update_integrals(struct task_struct *tsk, > */ > tsk->acct_rss_mem1 += delta * get_mm_rss(tsk->mm) >> 10; > tsk->acct_vm_mem1 += delta * tsk->mm->total_vm >> 10; > -out: > - local_irq_restore(flags); > } Like Frederic said on your last posting, at the very least do_exit()->acct_update_integrals() will not have IRQs disabled. Its just the acct_account_cputime() callers that I suspect will all have IRQs disabled, but it would still be goot to verify that with a WARN_ON(!irqs_disabled()) test in there for at least one test run, and then include that you did this in the Changelog.