Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756111AbbDOHfo (ORCPT ); Wed, 15 Apr 2015 03:35:44 -0400 Received: from mail-wi0-f178.google.com ([209.85.212.178]:36527 "EHLO mail-wi0-f178.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756094AbbDOHfh (ORCPT ); Wed, 15 Apr 2015 03:35:37 -0400 Date: Wed, 15 Apr 2015 09:35:32 +0200 From: Ingo Molnar To: Jason Low Cc: Linus Torvalds , Peter Zijlstra , Thomas Gleixner , linux-kernel@vger.kernel.org, "Paul E. McKenney" , Andrew Morton , Oleg Nesterov , Mike Galbraith , Frederic Weisbecker , Mel Gorman , Steven Rostedt , Preeti U Murthy , hideaki.kimura@hp.com, Aswin Chandramouleeswaran , Scott J Norton Subject: Re: [PATCH 2/3] sched, timer: Use atomics for thread_group_cputimer to improve scalability Message-ID: <20150415073532.GA14091@gmail.com> References: <1429052986-9420-1-git-send-email-jason.low2@hp.com> <1429052986-9420-3-git-send-email-jason.low2@hp.com> <20150415073340.GB13449@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20150415073340.GB13449@gmail.com> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1462 Lines: 53 * Ingo Molnar wrote: > So after your changes we still have a separate: > > struct task_cputime { > cputime_t utime; > cputime_t stime; > unsigned long long sum_exec_runtime; > }; > > Which then weirdly overlaps with a different structure on a different > abstraction level: > > struct thread_group_cputimer { > atomic64_t utime; > atomic64_t stime; > atomic64_t sum_exec_runtime; > int running; > }; > > So I think it would be more obvious what's going on if we introduced > an atomic task_cputime structure: > > struct task_cputime_atomic { > atomic64_t utime; > atomic64_t stime; > atomic64_t sum_exec_runtime; > }; > > and put that into 'struct thread_group_cputimer': > > struct thread_group_cputimer { > struct task_cputime_atomic cputime_atomic; > int running; > }; > > Maybe even factor out the main update and reading methods into > expressively named helper inlines? Btw., feel free to preserve your original series and turn this factoring out into 1-2 extra patches on top of it: so that we preserve your testing on the original series, and see the structure (and cost) of the factoring out of the new data type. Thanks, Ingo -- 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/