Lines Matching full:softirq
213 struct osn_softirq softirq; member
379 osn_var->softirq.arrival_time = 0; in timerlat_softirq_exit()
380 osn_var->softirq.delta_start = 0; in timerlat_softirq_exit()
428 seq_puts(s, "# || / _----=> hardirq/softirq\n"); in print_osnoise_headers()
456 seq_puts(s, "# | / _---=> hardirq/softirq\n"); in print_osnoise_headers()
544 seq_puts(s, "# || / _----=> hardirq/softirq\n"); in print_timerlat_headers()
560 seq_puts(s, "# | / _---=> hardirq/softirq\n"); in print_timerlat_headers()
728 * cond_move_softirq_delta_start - Forward the delta_start of a running softirq.
730 * If a softirq is preempted by an IRQ or NMI, its delta_start is pushed
738 if (osn_var->softirq.delta_start) in cond_move_softirq_delta_start()
739 osn_var->softirq.delta_start += duration; in cond_move_softirq_delta_start()
748 * If a noisy thread is preempted by an softirq, IRQ or NMI, its delta_start
763 * The irq, softirq and thread varaibles need to have its duration without
1040 * trace_softirq_entry_callback - Note the starting of a softirq
1042 * Save the starting time of a softirq. As softirqs are non-preemptive to
1043 * other softirqs, it is safe to use a single variable (ons_var->softirq)
1046 * softirq exit handler. See cond_move_softirq_delta_start().
1058 osn_var->softirq.arrival_time = time_get(); in trace_softirq_entry_callback()
1059 set_int_safe_time(osn_var, &osn_var->softirq.delta_start); in trace_softirq_entry_callback()
1060 osn_var->softirq.count++; in trace_softirq_entry_callback()
1066 * trace_softirq_exit_callback - Note the end of an softirq
1068 * Computes the duration of the softirq noise, and trace it. Also discounts the
1083 duration = get_int_safe_duration(osn_var, &osn_var->softirq.delta_start); in trace_softirq_exit_callback()
1084 trace_softirq_noise(vec_nr, osn_var->softirq.arrival_time, duration); in trace_softirq_exit_callback()
1086 osn_var->softirq.arrival_time = 0; in trace_softirq_exit_callback()
1090 * hook_softirq_events - Hook softirq handling events
1092 * This function hooks the softirq related callbacks to the respective trace
1116 * unhook_softirq_events - Unhook softirq handling events
1118 * This function hooks the softirq related callbacks to the respective trace
1128 * softirq are threads on the PREEMPT_RT mode.
1329 s->softirq_count = osn_var->softirq.count; in save_osn_sample_stats()
1345 s->softirq_count = osn_var->softirq.count - s->softirq_count; in diff_osn_sample_stats()
1745 * Enable the osnoise: events for thread an softirq. in timerlat_irq()
1753 * a thread, and potentially preempting a softirq. in timerlat_irq()
1756 * preempted thread (and maybe softirq), but how much time they will in timerlat_irq()
1759 * To get the correct (net) delay added by the softirq, its delta_start in timerlat_irq()
1764 * The thread follows the same principle. However, if a softirq is in timerlat_irq()
1765 * running, the thread needs to receive the softirq delta_start. The in timerlat_irq()
1766 * reason being is that the softirq will be the last to be unfolded, in timerlat_irq()
1772 if (!IS_ENABLED(CONFIG_PREEMPT_RT) && osn_var->softirq.delta_start) { in timerlat_irq()
1774 &osn_var->softirq.delta_start); in timerlat_irq()
1776 copy_int_safe_time(osn_var, &osn_var->softirq.delta_start, in timerlat_irq()