From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753916Ab2C0OKz (ORCPT ); Tue, 27 Mar 2012 10:10:55 -0400 Received: from mail-vx0-f174.google.com ([209.85.220.174]:53834 "EHLO mail-vx0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754577Ab2C0OKv convert rfc822-to-8bit (ORCPT ); Tue, 27 Mar 2012 10:10:51 -0400 MIME-Version: 1.0 X-Originating-IP: [212.179.42.66] In-Reply-To: <1332338318-5958-23-git-send-email-fweisbec@gmail.com> References: <1332338318-5958-1-git-send-email-fweisbec@gmail.com> <1332338318-5958-23-git-send-email-fweisbec@gmail.com> Date: Tue, 27 Mar 2012 16:10:49 +0200 Message-ID: Subject: Re: [PATCH 21/32] nohz/cpuset: Flush cputime on threads in nohz cpusets when waiting leader From: Gilad Ben-Yossef To: Frederic Weisbecker Cc: LKML , linaro-sched-sig@lists.linaro.org, Alessio Igor Bogani , Andrew Morton , Avi Kivity , Chris Metcalf , Christoph Lameter , Daniel Lezcano , Geoff Levand , Ingo Molnar , Max Krasnyansky , "Paul E. McKenney" , Peter Zijlstra , Stephen Hemminger , Steven Rostedt , Sven-Thorsten Dietrich , Thomas Gleixner , Zen Lin Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Mar 21, 2012 at 3:58 PM, Frederic Weisbecker wrote: > When we wait for a zombie task, flush the cputimes on nohz cpusets > in case we are waiting for a group leader that has threads running > in nohz CPUs. This way thread_group_times() doesn't report stale > values. > > > If I understood well the code, by the time we call that thread_group_times(), > we may have childs that are still running, so this is necessary. > But I need to check deeper. > > ... > > diff --git a/kernel/exit.c b/kernel/exit.c > index 4b4042f..c194662 100644 > --- a/kernel/exit.c > +++ b/kernel/exit.c > @@ -52,6 +52,7 @@ >  #include >  #include >  #include > +#include > >  #include >  #include > @@ -1712,6 +1713,13 @@ repeat: >           (!wo->wo_pid || hlist_empty(&wo->wo_pid->tasks[wo->wo_type]))) >                goto notask; > > +       /* > +        * For cputime in sub-threads before adding them. > +        * Must be called outside tasklist_lock lock because write lock > +        * can be acquired under irqs disabled. > +        */ > +       cpuset_nohz_flush_cputimes(); > + >        set_current_state(TASK_INTERRUPTIBLE); >        read_lock(&tasklist_lock); >        tsk = current; > -- > 1.7.5.4 > I believe this patch is not needed because after this point we call do_wait_thread /ptrace_do_wait, which both call wait_consider_task, which calls wait_task_stopped/zombie/continued, which all eventually calls getrusage, which calls k_getrusage where you added a call to cpuset_noz_flush_cputimes() in another patch :-) Gilad -- Gilad Ben-Yossef Chief Coffee Drinker gilad@benyossef.com Israel Cell: +972-52-8260388 US Cell: +1-973-8260388 http://benyossef.com "If you take a class in large-scale robotics, can you end up in a situation where the homework eats your dog?"  -- Jean-Baptiste Queru