--- zzzz-none-000/linux-4.9.279/kernel/workqueue.c 2021-08-08 06:38:54.000000000 +0000 +++ puma7-atom-6591-750/linux-4.9.279/kernel/workqueue.c 2023-02-08 11:43:43.000000000 +0000 @@ -52,6 +52,9 @@ #include #include "workqueue_internal.h" +#if defined(CONFIG_AVM_SIMPLE_PROFILING) +#include +#endif /*--- #if defined(CONFIG_AVM_SIMPLE_PROFILING) ---*/ enum { /* @@ -2092,7 +2095,15 @@ lock_map_acquire_read(&pwq->wq->lockdep_map); lock_map_acquire(&lockdep_map); trace_workqueue_execute_start(work); +#if defined(CONFIG_AVM_SIMPLE_PROFILING) + avm_simple_profiling_log(avm_profile_data_type_workitem_begin, (unsigned int)worker->current_func, + (unsigned int)work); +#endif /*--- #if defined(CONFIG_AVM_SIMPLE_PROFILING) ---*/ worker->current_func(work); +#if defined(CONFIG_AVM_SIMPLE_PROFILING) + avm_simple_profiling_log(avm_profile_data_type_workitem_end, (unsigned int)worker->current_func, + (unsigned int)work); +#endif /*--- #if defined(CONFIG_AVM_SIMPLE_PROFILING) ---*/ /* * While we must be careful to not use "work" after this, the trace * point will only record its address.