From: Peter Zijlstra <peterz@infradead.org>
To: Oleg Nesterov <oleg@redhat.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>,
LKML <linux-kernel@vger.kernel.org>,
Andrew Morton <akpm@linux-foundation.org>,
Ingo Molnar <mingo@kernel.org>
Subject: Re: [PATCH 1/5] sched: Convert thread_group_cputime() to use for_each_thread()
Date: Thu, 10 Apr 2014 19:36:10 +0200 [thread overview]
Message-ID: <20140410173610.GG26782@laptop.programming.kicks-ass.net> (raw)
In-Reply-To: <20140410172938.GA32332@redhat.com>
On Thu, Apr 10, 2014 at 07:29:38PM +0200, Oleg Nesterov wrote:
> > #define do_each_thread(g, t) \
> > for (g = t = &init_task ; (g = t = next_task(g)) != &init_task ; ) do
> > @@ -2384,11 +2387,8 @@ extern bool current_is_single_threaded(void);
> > #define while_each_thread(g, t) \
> > while ((t = next_thread(t)) != g)
> >
> > -#define __for_each_thread(signal, t) \
> > - list_for_each_entry_rcu(t, &(signal)->thread_head, thread_node)
> > -
> > #define for_each_thread(p, t) \
> > - __for_each_thread((p)->signal, t)
> > + list_for_each_entry_rcu(t, &(p)->signal->thread_head, thread_node)
>
> Why? __for_each_thread(signal) can generate a better code, if we do care.
Well, there were no users and it wasn't mentioned anywhere.
> In fact, ignoring the bad "signal" name, __for_each_thread(signal, t)
> even looks better. "signal" represents the whole thread group.
>
> But I won't argue. Besides, this reminds me about CONST_CAST() and making
> task_struct->signal "const". This can improve the code generation too.
Yeah, I always disliked how we mixed up the signal handling and the
thread group stuff. We should probably rename the lot.
> > +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
__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.
next prev parent reply other threads:[~2014-04-10 18:47 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-04-09 16:11 [PATCH 0/5] core: Convert thread iteration to use for_each[_process]_thread APIs, 1st pile Frederic Weisbecker
2014-04-09 16:11 ` [PATCH 1/5] sched: Convert thread_group_cputime() to use for_each_thread() Frederic Weisbecker
2014-04-09 17:12 ` Oleg Nesterov
2014-04-09 17:16 ` Peter Zijlstra
2014-04-09 17:32 ` Oleg Nesterov
2014-04-09 18:30 ` Peter Zijlstra
2014-04-09 19:46 ` Oleg Nesterov
2014-04-09 19:49 ` Peter Zijlstra
2014-04-10 16:19 ` Peter Zijlstra
2014-04-10 16:32 ` Peter Zijlstra
2014-04-10 17:29 ` Oleg Nesterov
2014-04-10 17:36 ` Peter Zijlstra [this message]
2014-04-10 17:42 ` Peter Zijlstra
2014-04-10 19:15 ` Oleg Nesterov
2014-04-10 20:55 ` Peter Zijlstra
2014-04-10 7:56 ` Ingo Molnar
2014-04-09 16:11 ` [PATCH 2/5] tracepoint: Convert process iteration to use for_each_process_thread() Frederic Weisbecker
2014-04-09 16:28 ` Mathieu Desnoyers
2014-04-09 16:40 ` Frederic Weisbecker
2014-04-09 16:42 ` Steven Rostedt
2014-04-09 17:05 ` [PATCH 0/2] Was: " Oleg Nesterov
2014-04-09 17:05 ` [PATCH RESEND 1/2] tracing: syscall_*regfunc() can race with copy_process() Oleg Nesterov
2014-04-10 13:04 ` Steven Rostedt
2014-04-10 13:33 ` Oleg Nesterov
2014-04-10 13:06 ` Steven Rostedt
2014-04-10 13:34 ` Oleg Nesterov
2014-04-11 15:22 ` Steven Rostedt
2014-04-11 15:58 ` Oleg Nesterov
2014-04-13 18:58 ` [PATCH v2 0/3] tracing: syscall_*regfunc() fixes Oleg Nesterov
2014-04-13 18:58 ` [PATCH v2 1/3] tracing: fix syscall_*regfunc() vs copy_process() race Oleg Nesterov
2014-04-14 23:57 ` Frederic Weisbecker
2014-04-13 18:59 ` [PATCH v2 2/3] tracing: change syscall_*regfunc() to check PF_KTHREAD and use for_each_process_thread() Oleg Nesterov
2014-04-13 18:59 ` [PATCH v2 3/3] tracing: syscall_regfunc() should not skip kernel threads Oleg Nesterov
2014-04-14 23:46 ` [PATCH v2 0/3] tracing: syscall_*regfunc() fixes Frederic Weisbecker
2014-06-18 14:23 ` Steven Rostedt
2014-06-18 15:36 ` Oleg Nesterov
2014-04-09 17:06 ` [PATCH RESEND 2/2] tracing: syscall_regfunc() should not skip kernel threads Oleg Nesterov
2014-04-10 13:28 ` Steven Rostedt
2014-04-10 13:38 ` Oleg Nesterov
2014-04-10 14:28 ` Steven Rostedt
2014-04-10 14:46 ` Oleg Nesterov
2014-04-10 15:08 ` Steven Rostedt
2014-04-10 17:57 ` Oleg Nesterov
2014-04-10 18:14 ` Oleg Nesterov
2014-04-10 19:00 ` Oleg Nesterov
2014-04-10 19:13 ` Steven Rostedt
2014-04-10 19:38 ` Oleg Nesterov
2014-04-10 19:55 ` Steven Rostedt
2014-04-11 12:03 ` Oleg Nesterov
2014-04-11 12:37 ` Steven Rostedt
2014-04-10 13:03 ` [PATCH 0/2] Was: Convert process iteration to use for_each_process_thread() Steven Rostedt
2014-04-09 16:11 ` [PATCH 3/5] hung_task: " Frederic Weisbecker
2014-04-09 17:23 ` Oleg Nesterov
2014-04-09 16:11 ` [PATCH 4/5] procfs: Convert process iteration to use for_each_thread() Frederic Weisbecker
2014-04-09 16:11 ` [PATCH 5/5] sched: Convert tasks iteration to use for_each_process_thread() Frederic Weisbecker
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140410173610.GG26782@laptop.programming.kicks-ass.net \
--to=peterz@infradead.org \
--cc=akpm@linux-foundation.org \
--cc=fweisbec@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=oleg@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.