lkml.org 
[lkml]   [2008]   [Jan]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
SubjectRe: [PATCH 1/4] add task handling notifier: base definitions
From
Date

On Wed, 2008-01-09 at 09:46 +0000, Jan Beulich wrote:
> >> +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?
>
> I can't see an alternative, since the serialization is unavoidable.

There are definitely alternatives. Naturally they are all much more
complex than using a single notifier chain. You could do per-cpu chains
for example (ugly, I know..).

> >> @@ -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?
>
> I'm afraid it is, as I was told that sleeping in the do_exit() path is not
> generally possible.
>
> Jan

Odd. Last I checked I thought I saw a bunch of calls in do_exit() that
could sleep. Only in certain sections and at the end did it appear to
prevent sleeping.

Sorry for the late reply.

Cheers,
-Matt Helsley


\
 
 \ /
  Last update: 2008-01-23 20:13    [W:0.081 / U:0.120 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site