summaryrefslogtreecommitdiff
path: root/kernel/softirq.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/softirq.c')
-rw-r--r--kernel/softirq.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/kernel/softirq.c b/kernel/softirq.c
index 5918d227730f..65a6d6ff15dc 100644
--- a/kernel/softirq.c
+++ b/kernel/softirq.c
@@ -222,7 +222,7 @@ static inline void lockdep_softirq_end(bool in_hardirq)
static inline bool lockdep_softirq_start(void) { return false; }
static inline void lockdep_softirq_end(bool in_hardirq) { }
#endif
-
+int __trace2;
asmlinkage __visible void __do_softirq(void)
{
unsigned long end = jiffies + MAX_SOFTIRQ_TIME;
@@ -259,7 +259,7 @@ restart:
int prev_count;
h += softirq_bit - 1;
-
+if (__trace2) printk("%s: running %pf\n", __func__, h->action);
vec_nr = h - softirq_vec;
prev_count = preempt_count();
@@ -282,6 +282,8 @@ restart:
local_irq_disable();
pending = local_softirq_pending();
+if (__trace2)
+ printk("%s: pending=0x%08x\n", __func__, pending);
if (pending) {
if (time_before(jiffies, end) && !need_resched() &&
--max_restart)
@@ -289,7 +291,10 @@ restart:
wakeup_softirqd();
}
-
+if (__trace2)
+ printk("%s: pending=0x%08x jiffies=%lu end=%lu nrs=%u restart=%d\n",
+ __func__, pending, jiffies, end, need_resched(), max_restart);
+__trace2 = 0;
lockdep_softirq_end(in_hardirq);
account_irq_exit_time(current);
__local_bh_enable(SOFTIRQ_OFFSET);