Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1759091AbaDJTPz (ORCPT ); Thu, 10 Apr 2014 15:15:55 -0400 Received: from mx1.redhat.com ([209.132.183.28]:59685 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753794AbaDJTPn (ORCPT ); Thu, 10 Apr 2014 15:15:43 -0400 Date: Thu, 10 Apr 2014 21:15:25 +0200 From: Oleg Nesterov To: Peter Zijlstra Cc: Frederic Weisbecker , LKML , Andrew Morton , Ingo Molnar Subject: Re: [PATCH 1/5] sched: Convert thread_group_cputime() to use for_each_thread() Message-ID: <20140410191525.GB13925@redhat.com> References: <1397059882-23063-1-git-send-email-fweisbec@gmail.com> <1397059882-23063-2-git-send-email-fweisbec@gmail.com> <20140409171607.GA13498@dyad.arnhem.chello.nl> <20140409173233.GA28615@redhat.com> <20140409183017.GF10526@twins.programming.kicks-ass.net> <20140409194603.GB5854@redhat.com> <20140409194957.GD26782@laptop.programming.kicks-ass.net> <20140410161955.GG13658@twins.programming.kicks-ass.net> <20140410172938.GA32332@redhat.com> <20140410173610.GG26782@laptop.programming.kicks-ass.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140410173610.GG26782@laptop.programming.kicks-ass.net> User-Agent: Mutt/1.5.18 (2008-05-17) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 04/10, Peter Zijlstra wrote: > > On Thu, Apr 10, 2014 at 07:29:38PM +0200, Oleg Nesterov wrote: > > > > +static inline __deprecated > > > +struct task_struct *next_thread(const struct task_struct *p) > > > { > > > > Not sure... But probably fine too. > > > > I already killed some users of next_thread(). This reminds me about > > next_tid(), probably it should be converted too. > > > > As for, say, __exit_signal() it really needs next_thread(). We can fix > > it instead of deprecating, or we can add another one with another name. > > Well, your Changelog said that next_thread() was faulty too; If lockless. Sure. > if > __exit_signal() is the only site where it is correct we can open-code it > there. If there's more we should probably create a new function and > audit all current sites. So far I can see only 2 users, __exit_signal() and complete_signal(). May be next_tid(), but in fact it needs next_thread_or_zero(). And this connects to check_hung_task(). What they actually (OK, perhaps) need is for_each_thread_continue, like list_for_each_entry_continue_rcu. We will see. I didn't finish this all because I was distracted (and lazy of course ;). My plan (== TODO) was: - check all current users, carefully convert those who need a special attention (because the semantics differs a bit) - the same for thread_group_empty() - reimplement next_thread/while_each_thread via ->thread_head - kill task_struct->thread_group - all other users can be converted later Oleg. -- 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/