--- zzzz-none-000/linux-2.6.19.2/kernel/softirq.c 2007-01-10 19:10:37.000000000 +0000 +++ davinci-8020-5505/linux-2.6.19.2/kernel/softirq.c 2007-09-21 14:51:53.000000000 +0000 @@ -19,6 +19,9 @@ #include #include +#if defined(CONFIG_AVM_SIMPLE_PROFILING) +#include +#endif /*--- #if defined(CONFIG_AVM_SIMPLE_PROFILING) ---*/ /* - No shared variables, all the data are CPU local. - If a softirq needs serialization, let it serialize itself @@ -227,7 +230,13 @@ do { if (pending & 1) { +#if defined(CONFIG_AVM_SIMPLE_PROFILING) + avm_simple_profiling_log(avm_profile_data_type_sw_irq_begin, (unsigned int)(h->action), (unsigned int)h); +#endif /*--- #if defined(CONFIG_AVM_SIMPLE_PROFILING) ---*/ h->action(h); +#if defined(CONFIG_AVM_SIMPLE_PROFILING) + avm_simple_profiling_log(avm_profile_data_type_sw_irq_end, (unsigned int)(h->action), (unsigned int)h); +#endif /*--- #if defined(CONFIG_AVM_SIMPLE_PROFILING) ---*/ rcu_bh_qsctr_inc(cpu); } h++; @@ -384,7 +393,13 @@ if (!atomic_read(&t->count)) { if (!test_and_clear_bit(TASKLET_STATE_SCHED, &t->state)) BUG(); +#if defined(CONFIG_AVM_SIMPLE_PROFILING) + avm_simple_profiling_log(avm_profile_data_type_tasklet_begin, (unsigned int)t->func, t->data); +#endif /*--- #if defined(CONFIG_AVM_SIMPLE_PROFILING) ---*/ t->func(t->data); +#if defined(CONFIG_AVM_SIMPLE_PROFILING) + avm_simple_profiling_log(avm_profile_data_type_tasklet_end, (unsigned int)t->func, t->data); +#endif /*--- #if defined(CONFIG_AVM_SIMPLE_PROFILING) ---*/ tasklet_unlock(t); continue; } @@ -417,7 +432,13 @@ if (!atomic_read(&t->count)) { if (!test_and_clear_bit(TASKLET_STATE_SCHED, &t->state)) BUG(); +#if defined(CONFIG_AVM_SIMPLE_PROFILING) + avm_simple_profiling_log(avm_profile_data_type_hi_tasklet_begin, (unsigned int)t->func, t->data); +#endif /*--- #if defined(CONFIG_AVM_SIMPLE_PROFILING) ---*/ t->func(t->data); +#if defined(CONFIG_AVM_SIMPLE_PROFILING) + avm_simple_profiling_log(avm_profile_data_type_hi_tasklet_end, (unsigned int)t->func, t->data); +#endif /*--- #if defined(CONFIG_AVM_SIMPLE_PROFILING) ---*/ tasklet_unlock(t); continue; }