--- zzzz-none-000/linux-4.19.183/kernel/workqueue.c 2021-03-24 10:07:39.000000000 +0000 +++ bcm63-7530ax-756/linux-4.19.183/kernel/workqueue.c 2023-06-28 08:54:21.000000000 +0000 @@ -49,6 +49,12 @@ #include #include #include +#if defined(CONFIG_BCM_KF_BUZZZ) && defined(CONFIG_BUZZZ_KEVT) +#include +#endif +#if defined(CONFIG_AVM_SIMPLE_PROFILING) +#include +#endif /*--- #if defined(CONFIG_AVM_SIMPLE_PROFILING) ---*/ #include "workqueue_internal.h" @@ -1485,6 +1491,9 @@ local_irq_save(flags); if (!test_and_set_bit(WORK_STRUCT_PENDING_BIT, work_data_bits(work))) { +#if defined(CONFIG_BCM_KF_BUZZZ) && defined(CONFIG_BUZZZ_KEVT) + BUZZZ_KNL3(WORKQ_SCHED, cpu, work->func); +#endif __queue_work(cpu, wq, work); ret = true; } @@ -2149,7 +2158,19 @@ */ lockdep_invariant_state(true); 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) ---*/ +#if defined(CONFIG_BCM_KF_BUZZZ) && defined(CONFIG_BUZZZ_KEVT) + BUZZZ_KNL3(WORKQ_ENT, 0, work->func); +#endif worker->current_func(work); +#if defined(CONFIG_BCM_KF_BUZZZ) && defined(CONFIG_BUZZZ_KEVT) + BUZZZ_KNL3(WORKQ_EXT, 0, work->func); +#endif +#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.