Re: [ANNOUNCE] 2.6.31.2-rt13

Remy Bohmer
2009-10-07T07:13:51Z

Hi Thomas,

> 2009/10/6 Thomas Gleixner <tglx@linutronix.de>:
> On Tue, 6 Oct 2009, Thomas Gleixner wrote:
>
>> On Tue, 6 Oct 2009, Remy Bohmer wrote:
>> > But I was wondering if you missed this one:
>> > http://patchwork.kernel.org/patch/50044/
>>
>> Yup, slipped through. Queued for the next release.
>
> Correction. I dropped the patch as it is just a sloppy work around.
> Why creating the thread in the first place ? Real fix below.

Yeah, I thought about that too.

>
> Thanks,
>
>        tglx
> ---
> diff --git a/kernel/softirq.c b/kernel/softirq.c
> index aae8d45..3526976 100644
> --- a/kernel/softirq.c
> +++ b/kernel/softirq.c
> @@ -1161,6 +1161,8 @@ static int __cpuinit cpu_callback(struct notifier_block *nfb,
>                        per_cpu(ksoftirqd, hotcpu)[i].tsk = NULL;
>                }
>                for (i = 0; i < NR_SOFTIRQS; i++) {
> +                       if (!softirq_names[i])
> +                               continue;

But I did not do this because I thought this was sloppy as well, I
guessed you would never accept a patch that only looks at defining the
name, how wrong could I be... ;-)
So, going for the cleaner solution, I was going for not defining the
HRTIMER_SOFTIRQ in the enum in include/linux/interrupt.h in the first
place, but that would touch even more code, and at least that makes
clear how much the code is strangled.

The loop 'for (i = 0; i < NR_SOFTIRQS; i++)' is used at many more
places, would this 'if (!softirq_names[i])' not be required at other
places as well?

Remy