/linux-6.14.4/include/trace/events/ |
D | irq.h | 103 DECLARE_EVENT_CLASS(softirq, 122 * softirq_entry - called immediately before the softirq handler 123 * @vec_nr: softirq vector number 126 * we can determine the softirq handler routine. 128 DEFINE_EVENT(softirq, softirq_entry, 136 * softirq_exit - called immediately after the softirq handler returns 137 * @vec_nr: softirq vector number 140 * we can determine the softirq handler routine. 142 DEFINE_EVENT(softirq, softirq_exit, 150 * softirq_raise - called immediately when a softirq is raised [all …]
|
/linux-6.14.4/kernel/ |
D | softirq.c | 3 * linux/kernel/softirq.c 39 - If a softirq needs serialization, let it serialize itself 41 - Even if softirq is serialized, only local cpu is marked for 47 - NET RX softirq. It is multithreaded and does not require 49 - NET TX softirq. It kicks software netdevice queues, hence 73 * the softirq load for us. 97 * - count is changed by SOFTIRQ_OFFSET on entering or leaving softirq 104 * softirq and whether we just have bh disabled. 111 * softirq disabled section to be preempted. 118 * the task which is in a softirq disabled section is preempted or blocks. [all …]
|
D | user.c | 102 * occasionally also taken from softirq/tasklet context, when 103 * task-structs get RCU-freed. Hence all locking must be softirq-safe. 106 * softirq callbacks, and they can unconditionally enable interrupts, and
|
/linux-6.14.4/fs/proc/ |
D | stat.c | 85 u64 user, nice, system, idle, iowait, irq, softirq, steal; in show_stat() local 93 irq = softirq = steal = 0; in show_stat() 111 softirq += cpustat[CPUTIME_SOFTIRQ]; in show_stat() 133 seq_put_decimal_ull(p, " ", nsec_to_clock_t(softirq)); in show_stat() 152 softirq = cpustat[CPUTIME_SOFTIRQ]; in show_stat() 163 seq_put_decimal_ull(p, " ", nsec_to_clock_t(softirq)); in show_stat() 185 seq_put_decimal_ull(p, "softirq ", (unsigned long long)sum_softirq); in show_stat()
|
/linux-6.14.4/Documentation/RCU/ |
D | UP.rst | 15 Example 1: softirq Suicide 20 this same list in softirq context. Suppose that the process-context scan 21 is referencing element B when it is interrupted by softirq processing, 26 from softirq, the list scan would find itself referencing a newly freed 134 then, since RCU callbacks can be invoked from softirq context, 135 the callback might be called from a softirq that interrupted
|
D | stallwarn.rst | 57 is running at a higher priority than the RCU softirq threads. 73 prevent RCU's kthreads and softirq handlers from running. 232 2-...: (3 GPs behind) idle=06c/0/0 softirq=1453/1455 fqs=0 233 16-...: (0 ticks this GP) idle=81c/0/0 softirq=764/764 fqs=0 260 The "softirq=" portion of the message tracks the number of RCU softirq 268 across repeated stall-warning messages, it is possible that RCU's softirq 271 kernels, if a high-priority process is starving RCU's softirq handler. 337 Possible timer handling issue on cpu=4 timer-softirq=11142 340 where it queued the fqs timer. The number following the "timer-softirq" 454 result in softirq execution are confined to other CPUs. In this case,
|
D | checklist.rst | 199 invoked from softirq context, and in any case with bottom halves 235 and re-enables softirq, for example, rcu_read_lock_bh() and 266 network-driver NAPI (softirq) context. BPF relies heavily on RCU 369 with softirq disabled, e.g., via spin_lock_bh(). Failing to 370 disable softirq on a given acquisition of that lock will result 371 in deadlock as soon as the RCU softirq handler happens to run 401 might be concurrently invoked by that CPU's softirq handler and
|
/linux-6.14.4/kernel/trace/ |
D | trace_osnoise.c | 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() [all …]
|
/linux-6.14.4/include/linux/ |
D | hrtimer_defs.h | 80 * @softirq_activated: displays, if the softirq is raised - update of softirq 86 * @softirq_expiry_lock: Lock which is taken while softirq based hrtimer are 96 * @softirq_next_timer: Pointer to the first expiring softirq based timer
|
D | kcov.h | 59 * The softirq flavor of kcov_remote_*() functions is introduced as a temporary 66 * 1. Only collects coverage when called in the softirq context. This allows 75 * softirq context (a softirq might occur during the execution of a work in
|
D | interrupt.h | 566 RCU_SOFTIRQ, /* Preferable RCU should always be the last softirq */ 586 /* map softirq index to softirq name. update 'softirq_to_name' in 587 * kernel/softirq.c when adding a new softirq. 591 /* softirq mask and active fields moved to irq_cpustat_t in 620 * With forced-threaded interrupts enabled a raised softirq is deferred to 624 * With PREEMPT_RT enabled more hrtimers are moved to softirq for processing 630 * other wake ups are delayed to softirq and so to ksoftirqd. 633 * handles the softirq in an overloaded situation (not handled everything 884 * We want to know which function is an entrypoint of a hardirq or a softirq.
|
D | preempt.h | 15 * We put the hardirq and softirq counter into the preemption 19 * - bits 8-15 are the softirq count (max # of softirqs: 256) 86 * 1 - softirq context 123 * in_serving_softirq() - We're in softirq context 139 * in_interrupt() - We're in NMI,IRQ,SoftIRQ context or have BH disabled
|
/linux-6.14.4/Documentation/locking/ |
D | lockdep-design.rst | 55 - softirq 88 ||| \-> softirq disabled and not in softirq context 89 || \--> acquired in softirq context 120 A softirq-unsafe lock-class is automatically hardirq-unsafe as well. The 125 <softirq-safe> or <softirq-unsafe> 160 <softirq-safe> -> <softirq-unsafe> 164 thus could result in a lock inversion deadlock. Likewise, a softirq-safe 165 lock could be taken by an softirq context, interrupting a softirq-unsafe 178 - if a new softirq-safe lock is discovered, we check whether it took 179 any softirq-unsafe lock in the past. [all …]
|
/linux-6.14.4/Documentation/translations/it_IT/kernel-hacking/ |
D | locking.rst | 173 Sincronizzazione fra il contesto utente e i softirq 176 Se un softirq condivide dati col contesto utente, avete due problemi. 177 Primo, il contesto utente corrente potrebbe essere interroto da un softirq, 180 (``include/linux/spinlock.h``) viene utilizzato. Questo disabilita i softirq 192 (``include/linux/interrupt.h``), la quale impedisce ai softirq d'essere 198 Questo caso è uguale al precedente, un tasklet viene eseguito da un softirq. 204 softirq. 229 Sincronizzazione fra softirq 232 Spesso un softirq potrebbe condividere dati con se stesso o un tasklet/timer. 234 Lo stesso softirq argument [all …]
|
D | hacking.rst | 40 - non associata ad alcun processo, servendo un softirq o tasklet; 50 softirq è in esecuzione su d'una CPU, nessun altro softirq può avvicendarsi 77 Attenzione che se avete la prelazione o i softirq disabilitati (vedere 101 Contesto d'interruzione software: softirq e tasklet 107 eseguita (``kernel/softirq.c``). 116 Il file ``include/linux/interrupt.h`` elenca i differenti tipi di 'softirq'. 117 Un tipo di softirq molto importante è il timer (``include/linux/timer.h``): 121 Dato che i softirq possono essere eseguiti simultaneamente su più di un 134 Potete determinate se siete in un softirq (o tasklet) utilizzando la 432 Lo scopo è di prevenire l'esecuzione di softirq e tasklet sul processore
|
/linux-6.14.4/Documentation/kernel-hacking/ |
D | locking.rst | 164 If a softirq shares data with user context, you have two problems. 165 Firstly, the current user context can be interrupted by a softirq, and 180 (``include/linux/interrupt.h``), which protects you from the softirq 187 from a softirq. 193 from a softirq. From a locking point of view, tasklets and timers are 221 Often a softirq might want to share data with itself or a tasklet/timer. 223 The Same Softirq 226 The same softirq can run on the other CPUs: you can use a per-CPU array 228 going so far as to use a softirq, you probably care about scalable 239 tasklet, different softirq or the same or another softirq: any of them [all …]
|
/linux-6.14.4/kernel/locking/ |
D | lockdep_proc.c | 157 [LOCK_CHAIN_SOFTIRQ_CONTEXT] = "softirq", in lc_show() 159 LOCK_CHAIN_HARDIRQ_CONTEXT] = "hardirq|softirq", in lc_show() 224 seq_printf(m, " softirq on events: %11llu\n", si1); in lockdep_stats_debug_show() 225 seq_printf(m, " softirq off events: %11llu\n", si2); in lockdep_stats_debug_show() 226 seq_printf(m, " redundant softirq ons: %11llu\n", sr1); in lockdep_stats_debug_show() 227 seq_printf(m, " redundant softirq offs: %11llu\n", sr2); in lockdep_stats_debug_show() 319 seq_printf(m, " in-softirq chains: %11u\n", in lockdep_stats_show() 341 seq_printf(m, " softirq-safe locks: %11lu\n", in lockdep_stats_show() 343 seq_printf(m, " softirq-unsafe locks: %11lu\n", in lockdep_stats_show() 354 seq_printf(m, " softirq-read-safe locks: %11lu\n", in lockdep_stats_show() [all …]
|
/linux-6.14.4/arch/sh/kernel/ |
D | irq.c | 93 * Copy the softirq bits in preempt_count so that the in handle_one_irq() 94 * softirq checks work in the hardirq context. in handle_one_irq() 118 * allocate per-cpu stacks for hardirq and for softirq processing 164 /* build the stack frame on the softirq stack */ in do_softirq_own_stack() 170 /* switch to the softirq stack */ in do_softirq_own_stack()
|
/linux-6.14.4/lib/ |
D | locking-selftest.c | 193 * For spinlocks and rwlocks we also do hardirq-safe / softirq-safe tests. 194 * The following functions use a lock from a simulated hardirq/softirq 195 * context, causing the locks to be marked as hardirq-safe/softirq-safe: 818 #include "locking-selftest-spin-softirq.h" in GENERATE_PERMUTATIONS_2_EVENTS() 821 #include "locking-selftest-rlock-softirq.h" in GENERATE_PERMUTATIONS_2_EVENTS() 824 #include "locking-selftest-wlock-softirq.h" in GENERATE_PERMUTATIONS_2_EVENTS() 833 * Enabling hardirqs with a softirq-safe lock held: in GENERATE_PERMUTATIONS_2_EVENTS() 896 #include "locking-selftest-spin-softirq.h" 899 #include "locking-selftest-rlock-softirq.h" 902 #include "locking-selftest-wlock-softirq.h" [all …]
|
D | irq_poll.c | 25 * raise of the blk iopoll softirq. 91 * If softirq window is exhausted then punt. in irq_poll_softirq() 192 * set the POLL softirq bit. The local_bh_disable()/enable() pair in irq_poll_cpu_dead() 194 * reach idle with the POLL softirq pending. in irq_poll_cpu_dead()
|
/linux-6.14.4/arch/s390/kernel/ |
D | vtime.c | 120 u64 timer, clock, user, guest, system, hardirq, softirq; in do_account_vtime() local 153 softirq = update_tsk_timer(&tsk->thread.softirq_timer, in do_account_vtime() 156 clock - user - guest - system - hardirq - softirq; in do_account_vtime() 173 if (softirq) in do_account_vtime() 174 account_system_index_scaled(tsk, softirq, CPUTIME_SOFTIRQ); in do_account_vtime() 176 return virt_timer_forward(user + guest + system + hardirq + softirq); in do_account_vtime()
|
/linux-6.14.4/Documentation/timers/ |
D | highres.rst | 176 red-black tree to a separate double linked list and invokes the softirq 183 context to the softirq and to the task which is woken up by the expired 199 The softirq for running the hrtimer queues and executing the callbacks has been 200 separated from the tick bound timer softirq to allow accurate delivery of high 202 timers. The execution of this softirq can still be delayed by other softirqs,
|
/linux-6.14.4/include/net/ |
D | cls_cgroup.h | 58 * packets originating from softirq context as accessing `current' in task_get_classid() 62 * disable bh. Knowing this, it is possible to detect softirq based in task_get_classid()
|
/linux-6.14.4/drivers/gpu/drm/i915/ |
D | i915_scheduler.h | 84 local_bh_disable(); /* prevent local softirq and lock recursion */ in i915_sched_engine_active_lock_bh() 92 local_bh_enable(); /* restore softirq, and kick ksoftirqd! */ in i915_sched_engine_active_unlock_bh()
|
/linux-6.14.4/Documentation/translations/it_IT/locking/ |
D | lockdep-design.rst | 53 - softirq 84 ||| \-> softirq disabilitati e fuori da un contesto di softirq 85 || \--> acquisito in un contesto di softirq 117 Una classe softirq insicura è automaticamente insicura anche per hardirq. I 122 <softirq-safe> o <softirq-unsafe> 157 <softirq-safe> -> <softirq-unsafe> 306 e differenti scenari con hardirq e softirq e annidamenti vari (nella pratica,
|