--- zzzz-none-000/linux-2.6.32.61/kernel/workqueue.c 2013-06-10 09:43:48.000000000 +0000 +++ ar9-7330-650/linux-2.6.32.61/kernel/workqueue.c 2013-02-12 11:41:54.000000000 +0000 @@ -36,6 +36,9 @@ #define CREATE_TRACE_POINTS #include +#if defined(CONFIG_AVM_SIMPLE_PROFILING) +#include +#endif /*--- #if defined(CONFIG_AVM_SIMPLE_PROFILING) ---*/ /* * The per-CPU workqueue (if single thread, we always use the first * possible cpu). @@ -288,7 +291,13 @@ work_clear_pending(work); lock_map_acquire(&cwq->wq->lockdep_map); lock_map_acquire(&lockdep_map); +#if defined(CONFIG_AVM_SIMPLE_PROFILING) + avm_simple_profiling_log(avm_profile_data_type_workitem_begin, (unsigned int)f, (unsigned int)work); +#endif /*--- #if defined(CONFIG_AVM_SIMPLE_PROFILING) ---*/ f(work); +#if defined(CONFIG_AVM_SIMPLE_PROFILING) + avm_simple_profiling_log(avm_profile_data_type_workitem_end, (unsigned int)f, (unsigned int)work); +#endif /*--- #if defined(CONFIG_AVM_SIMPLE_PROFILING) ---*/ lock_map_release(&lockdep_map); lock_map_release(&cwq->wq->lockdep_map);