lkml.org 
[lkml]   [2009]   [Oct]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: [ANNOUNCE] 2.6.31.2-rt13
    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.

    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;
    p = kthread_create(ksoftirqd,
    &per_cpu(ksoftirqd, hotcpu)[i],
    "sirq-%s/%d", softirq_names[i],
    @@ -1177,8 +1179,11 @@ static int __cpuinit cpu_callback(struct notifier_block *nfb,
    break;
    case CPU_ONLINE:
    case CPU_ONLINE_FROZEN:
    - for (i = 0; i < NR_SOFTIRQS; i++)
    - wake_up_process(per_cpu(ksoftirqd, hotcpu)[i].tsk);
    + for (i = 0; i < NR_SOFTIRQS; i++) {
    + p = per_cpu(ksoftirqd, hotcpu)[i].tsk;
    + if (p)
    + wake_up_process(p);
    + }
    break;
    #ifdef CONFIG_HOTPLUG_CPU
    case CPU_UP_CANCELED:
    @@ -1192,9 +1197,11 @@ static int __cpuinit cpu_callback(struct notifier_block *nfb,
    for (i = 0; i < NR_SOFTIRQS; i++) {
    param.sched_priority = MAX_RT_PRIO-1;
    p = per_cpu(ksoftirqd, hotcpu)[i].tsk;
    - sched_setscheduler(p, SCHED_FIFO, &param);
    - per_cpu(ksoftirqd, hotcpu)[i].tsk = NULL;
    - kthread_stop(p);
    + if (p) {
    + sched_setscheduler(p, SCHED_FIFO, &param);
    + per_cpu(ksoftirqd, hotcpu)[i].tsk = NULL;
    + kthread_stop(p);
    + }
    }
    takeover_tasklets(hotcpu);
    break;

    \
     
     \ /
      Last update: 2009-10-06 22:13    [W:0.025 / U:0.168 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site