Lines Matching full:softirq
213 struct osn_softirq softirq; member
385 osn_var->softirq.arrival_time = 0; in timerlat_softirq_exit()
386 osn_var->softirq.delta_start = 0; in timerlat_softirq_exit()
434 seq_puts(s, "# || / _----=> hardirq/softirq\n"); in print_osnoise_headers()
462 seq_puts(s, "# | / _---=> hardirq/softirq\n"); in print_osnoise_headers()
548 seq_puts(s, "# || / _----=> hardirq/softirq\n"); in print_timerlat_headers()
564 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.
1340 s->softirq_count = osn_var->softirq.count; in save_osn_sample_stats()
1356 s->softirq_count = osn_var->softirq.count - s->softirq_count; in diff_osn_sample_stats()
1758 * Enable the osnoise: events for thread an softirq. in timerlat_irq()
1766 * a thread, and potentially preempting a softirq. in timerlat_irq()
1769 * preempted thread (and maybe softirq), but how much time they will in timerlat_irq()
1772 * To get the correct (net) delay added by the softirq, its delta_start in timerlat_irq()
1777 * The thread follows the same principle. However, if a softirq is in timerlat_irq()
1778 * running, the thread needs to receive the softirq delta_start. The in timerlat_irq()
1779 * reason being is that the softirq will be the last to be unfolded, in timerlat_irq()
1785 if (!IS_ENABLED(CONFIG_PREEMPT_RT) && osn_var->softirq.delta_start) { in timerlat_irq()
1787 &osn_var->softirq.delta_start); in timerlat_irq()
1789 copy_int_safe_time(osn_var, &osn_var->softirq.delta_start, in timerlat_irq()