Re: [PATCH] move put_task_struct() reaping into a thread [Re: 2.6.18-rt1]

Ingo Molnar
2006-09-21T07:24:21Z

* Bill Huey <billh@gnuppy.monkey.org> wrote:

> > > This patch moves put_task_struct() reaping into a thread instead
> > > of an RCU callback function [...]
> >
> > had some time to think about it since yesterday: RCU reaping is done
> > in softirqs (check out the softirq-rcu threads on your -rt box),
> > that's why i removed the delayed-task-drop code to begin with. Now i
> > dont doubt
>
> It's correct from the standpoint of it being reaped in another thread,
> so it fixed those crashes. But I pushed it down into another thread at
> the request of Esben and his private discussion with Paul McKenney,
> since a summary from Esben felt that call_rcu() was somehow less than
> ideal to do that.

but it _is_ already being reaped in another thread: softirq-rcu.
Splitting that up any further will only fragment the context-switching
and increases cache footprint - it wont (or rather, shouldnt) have any
functional effect. (As a sidenote, i'm considering the unification of
all 'same default priority' softirq threads into a single thread per
CPU, to further reduce this cost of 'spreadout'.)

> > that you saw crashes under 2.6.17 - but did you manage to figure out
> > what the reason is for those crashes, and do those reasons really
> > necessiate the pushing of task-reapdown into yet another set of
> > kernel threads?
>
> Unfortunately no. I even used Robert's .config on my machine. I added
> a disk controller and networking device driver just to boot into his
> configuration and I still couldn't replicated any of his kjournald
> problems at all. If I had his hardware I'd have a better way of
> replicating those problems and pound it out.

ok, then i guess what we have left is to wait and see whether it still
triggers with the current 2.6.18-rt codebase - maybe it triggers for
someone in a scenario that is easier to debug.

Ingo