All of lore.kernel.org
 help / color / mirror / Atom feed
From: Matthew Helsley <matthltc@us.ibm.com>
To: Jan Beulich <jbeulich@novell.com>
Cc: linux-kernel@vger.kernel.org, Paul Jackson <pj@sgi.com>
Subject: Re: [PATCH 1/4] add task handling notifier: base definitions
Date: Tue, 08 Jan 2008 20:28:09 -0800	[thread overview]
Message-ID: <1199852889.17010.243.camel@localhost.localdomain> (raw)
In-Reply-To: <476A7832.76E4.0078.0@novell.com>

On Thu, 2007-12-20 at 13:12 +0000, Jan Beulich wrote:
> This is the base patch, adding notification for task creation and
> deletion.
> 
> Signed-off-by: Jan Beulich <jbeulich@novell.com>
> ---
>  include/linux/sched.h |    8 +++++++-
>  kernel/fork.c         |   11 +++++++++++
>  2 files changed, 18 insertions(+), 1 deletion(-)
> 
> --- 2.6.24-rc5-notify-task.orig/include/linux/sched.h
> +++ 2.6.24-rc5-notify-task/include/linux/sched.h
> @@ -80,7 +80,7 @@ struct sched_param {
>  #include <linux/rcupdate.h>
>  #include <linux/futex.h>
>  #include <linux/rtmutex.h>
> -
> +#include <linux/notifier.h>
>  #include <linux/time.h>
>  #include <linux/param.h>
>  #include <linux/resource.h>
> @@ -1700,6 +1700,12 @@ extern int do_execve(char *, char __user
>  extern long do_fork(unsigned long, unsigned long, struct pt_regs *, unsigned long, int __user *, int __user *);
>  struct task_struct *fork_idle(int);
> 
> +#define TASK_NEW 1
> +#define TASK_DELETE 2
> +
> +extern struct blocking_notifier_head task_notifier_list;
> +extern struct atomic_notifier_head atomic_task_notifier_list;
> +
>  extern void set_task_comm(struct task_struct *tsk, char *from);
>  extern void get_task_comm(char *to, struct task_struct *tsk);
> 
> --- 2.6.24-rc5-notify-task.orig/kernel/fork.c
> +++ 2.6.24-rc5-notify-task/kernel/fork.c
> @@ -46,6 +46,7 @@
>  #include <linux/tsacct_kern.h>
>  #include <linux/cn_proc.h>
>  #include <linux/freezer.h>
> +#include <linux/notifier.h>
>  #include <linux/delayacct.h>
>  #include <linux/taskstats_kern.h>
>  #include <linux/random.h>
> @@ -71,6 +72,11 @@ DEFINE_PER_CPU(unsigned long, process_co
> 
>  __cacheline_aligned DEFINE_RWLOCK(tasklist_lock);  /* outer */
> 
> +BLOCKING_NOTIFIER_HEAD(task_notifier_list);
> +EXPORT_SYMBOL_GPL(task_notifier_list);
> +ATOMIC_NOTIFIER_HEAD(atomic_task_notifier_list);
> +EXPORT_SYMBOL_GPL(atomic_task_notifier_list);
> +

When these global notifier lists were proposed years ago folks at SGI
loudly objected with concerns over anticipated cache line bouncing on
512+ cpu machines. Is that no longer a concern?

>  int nr_processes(void)
>  {
>  	int cpu;
> @@ -121,6 +127,9 @@ void __put_task_struct(struct task_struc
>  	WARN_ON(atomic_read(&tsk->usage));
>  	WARN_ON(tsk == current);
> 
> +	atomic_notifier_call_chain(&atomic_task_notifier_list,
> +				   TASK_DELETE, tsk);
> +
>  	security_task_free(tsk);
>  	free_uid(tsk->user);
>  	put_group_info(tsk->group_info);

Would the atomic notifier call chain be necessary if you hooked into an
earlier section of do_exit() instead?

Cheers,
	-Matt Helsley


  parent reply	other threads:[~2008-01-09  4:28 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-12-20 13:12 [PATCH 1/4] add task handling notifier: base definitions Jan Beulich
2007-12-21 23:32 ` Andi Kleen
2008-01-09  4:28 ` Matthew Helsley [this message]
2008-01-09  9:46   ` Jan Beulich
2008-01-23 19:11     ` Matt Helsley

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=1199852889.17010.243.camel@localhost.localdomain \
    --to=matthltc@us.ibm.com \
    --cc=jbeulich@novell.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pj@sgi.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.