[PATCH] delaying interrupts in mips [ 2.6.32]

From: Sadasivan Shaiju
Date: Mon Aug 11 2014 - 18:13:30 EST


Hi ,

I work for Montavista (Cavium Inc) as a Technical Lead . I want to
push some of the kernel patches to rt community (2.6.32 kernel 2.6.33
rt patch) , so that It will go to the main line These patches are
reviewed and approved by our system Architect. I request you to
include in the main line . These issues were reported by our
customer CISCO .

Problem Description:
When CONFIG_DEBUG_PREEMPT is enabled the following stack trace occurs.

[ 170.814470] BUG: using smp_processor_id() in preemptible [00000000]
code: sirq-timer/4/62
[ 170.814482] caller is hrtimer_run_pending+0x10/0x20
[ 170.814488] Call Trace:
[ 170.814496] [<ffffffff8010d844>] dump_stack+0x8/0x34
[ 170.814507] [<ffffffff803c2598>] debug_smp_processor_id+0xe0/0xf0
[ 170.814517] [<ffffffff80254158>] hrtimer_run_pending+0x10/0x20
[ 170.814528] [<ffffffff80242400>] run_timer_softirq+0x60/0x348
[ 170.814539] [<ffffffff8023ae80>] run_ksoftirqd+0x1c8/0x348
[ 170.814550] [<ffffffff802503f8>] kthread+0x88/0x90
[ 170.814561] [<ffffffff80206c80>] kernel_thread_helper+0x10/0x18

Root Cause:
Interrupt was occurring before the processor was completely up, and the
softirq
threads were unable to schedule on the processor and then ran on the wrong
CPU.

How Solved:
Enabling of interrupt has been delayed till smp_finish so that
kthread_bind
can safely bind threads to any possible CPU.

I request you to merge the above patch to the main line . If any
questions please contact me at sshaiju@xxxxxxxxxx (shaiju_sada@xxxxxxxxx)

Regards,
Shaiju.

Attachment: 0001-Interrupt-delaying-enabling-of-interrupt.patch
Description: Binary data