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

Ingo Molnar
2006-09-27T09:23:06Z

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

> On Wed, Sep 27, 2006 at 10:57:12AM +0200, Ingo Molnar wrote:
> > * Bill Huey <billh@gnuppy.monkey.org> wrote:
> >
> > > Because the conversion of memory allocation routines like kmalloc and
> > > kfree aren't safely callable within a preempt_disable critical section
> > > since they were incompletely converted in the -rt. [...]
> >
> > they were not 'incompletely converted' - they are /intentionally/ fully
> > preemptible.
>
> What I meant by "incompletely converted" is that the allocators could
> be made more safe in non-preemptible scenarios under -rt. [...]

no, the -rt kernel intentionally does not do that and wont do that.
There's lots of complex stuff going on within allocators, even in the
GFP_ATOMIC path. We might be able to plug in more deterministic
allocators (like SLOB), but even they must be fully preemptible. In the
-rt kernel there's basically no compromise on the "do as little as
possible in non-preemptible regions" stance.

Ingo