| /linux/tools/testing/selftests/net/ |
| H A D | nl_netdev.py | 40 Test that verifies various cases of napi threaded 54 # set napi threaded and verify 55 nf.napi_set({'id': napi0_id, 'threaded': "enabled"}) 57 ksft_eq(napi0['threaded'], "enabled") 62 ksft_eq(napi1['threaded'], "disabled") 68 # verify if napi threaded is still set 70 ksft_eq(napi0['threaded'], "enabled") 75 ksft_eq(napi1['threaded'], "disabled") 78 # unset napi threaded and verify 79 nf.napi_set({'id': napi0_id, 'threaded': "disabled"}) [all …]
|
| /linux/tools/testing/selftests/drivers/net/ |
| H A D | napi_threaded.py | 5 Test napi threaded states. 16 ksft_eq(napi['threaded'], 'enabled') 22 ksft_eq(napi['threaded'], 'disabled') 26 def _set_threaded_state(cfg, threaded) -> None: argument 27 with open(f"/sys/class/net/{cfg.ifname}/threaded", "wb") as fp: 28 fp.write(str(threaded).encode('utf-8')) 36 threaded = cmd(f"cat /sys/class/net/{cfg.ifname}/threaded").stdout 37 defer(_set_threaded_state, cfg, threaded) 44 Test that threaded state (in the persistent NAPI config) gets updated 57 ksft_eq(napi['threaded'], 'disabled') [all …]
|
| /linux/Documentation/core-api/real-time/ |
| H A D | theory.rst | 15 the use of threaded interrupts. As a result, the kernel becomes fully 83 Threaded interrupts 88 under scheduler control, PREEMPT_RT enforces threaded interrupt handlers. 92 Its sole responsibility is to wake the associated threaded handler. The second 93 stage, the threaded handler, is the function passed to request_irq() as the 96 From waking the interrupt thread until threaded handling is completed, the 101 By default, the threaded handler executes with the SCHED_FIFO scheduling policy 105 If the threaded interrupt handler raises any soft interrupts during its 106 execution, those soft interrupt routines are invoked after the threaded handler 113 By using sleeping locks and forced-threaded interrupts, PREEMPT_RT
|
| H A D | differences.rst | 12 With forced-threaded interrupts and sleeping spin locks, code paths that 29 However, on a PREEMPT_RT system, interrupts are forced-threaded and no longer 43 the use of threaded interrupts. Other parts of the kernel also shift their 44 execution into threaded context by different mechanisms. The goal is to keep 49 threaded, preemptible execution. 54 All interrupts are forced-threaded in a PREEMPT_RT system. The exceptions are 58 The IRQF_ONESHOT flag is used together with threaded interrupts, meaning those 59 registered using request_threaded_irq() and providing only a threaded handler. 60 Its purpose is to keep the interrupt line masked until the threaded handler has 64 handler does not acquire any sleeping locks, as it will not be threaded. The [all …]
|
| /linux/Documentation/networking/ |
| H A D | napi.rst | 19 but there is an option to use :ref:`separate kernel threads<threaded>` 148 IRQs are threaded (such as if ``PREEMPT_RT`` is enabled). 266 also exists. Threaded polling of NAPI also has a mode to busy poll for 267 packets (:ref:`threaded busy polling<threaded_busy_poll>`) using the NAPI 433 Threaded NAPI busy polling 436 Threaded NAPI busy polling extends threaded NAPI and adds support to do 440 Threaded NAPI busy polling can be enabled on per NIC queue basis using Netlink. 447 --json='{"id": 66, "threaded": "busy-poll"}' 455 Once threaded busy polling is enabled for a NAPI, PID of the kthread can be 475 'threaded': 'busy-poll'} [all …]
|
| /linux/tools/perf/bench/ |
| H A D | synthesize.c | 33 OPT_BOOLEAN('s', "st", &run_st, "Run single threaded benchmark"), 34 OPT_BOOLEAN('t', "mt", &run_mt, "Run multi-threaded benchmark"), 40 "Number of iterations used to compute single-threaded average"), 42 "Number of iterations used to compute multi-threaded average"), 138 "Computing performance of single threaded perf event synthesis by\n" in run_single_threaded() 228 "Computing performance of multi threaded perf event synthesis by\n" in run_multi_threaded() 261 * If neither single threaded or multi-threaded are specified, default in bench_synthesize() 262 * to running just single threaded. in bench_synthesize()
|
| H A D | sched-pipe.c | 48 static bool threaded; variable 90 OPT_BOOLEAN('T', "threaded", &threaded, "Specify threads/process based task setup"), 120 if (threaded) in enter_cgroup() 129 if (threaded) in enter_cgroup() 258 if (threaded) { in bench_sched_pipe() 299 loops, threaded ? "threads" : "processes"); in bench_sched_pipe()
|
| /linux/drivers/firmware/tegra/ |
| H A D | bpmp.c | 224 clear_bit(index, bpmp->threaded.allocated); in tegra_bpmp_channel_read() 228 up(&bpmp->threaded.lock); in tegra_bpmp_channel_read() 257 err = down_timeout(&bpmp->threaded.lock, usecs_to_jiffies(timeout)); in tegra_bpmp_write_threaded() 263 index = find_first_zero_bit(bpmp->threaded.allocated, count); in tegra_bpmp_write_threaded() 276 set_bit(index, bpmp->threaded.allocated); in tegra_bpmp_write_threaded() 283 set_bit(index, bpmp->threaded.busy); in tegra_bpmp_write_threaded() 289 clear_bit(index, bpmp->threaded.allocated); in tegra_bpmp_write_threaded() 292 up(&bpmp->threaded.lock); in tegra_bpmp_write_threaded() 678 busy = bpmp->threaded.busy; in tegra_bpmp_handle_rx() 719 bpmp->threaded.count = bpmp->soc->channels.thread.count; in tegra_bpmp_probe() [all …]
|
| /linux/kernel/irq/ |
| H A D | spurious.c | 174 pr_cont(" threaded [<%p>] %ps", action->thread_fn, action->thread_fn); in __report_bad_irq() 235 * We cannot call note_interrupt from the threaded handler in note_interrupt() 237 * (primary and threaded). Aside of that in the threaded in note_interrupt() 239 * hardware interrupt while we are dealing with a threaded in note_interrupt() 245 * The threaded handlers store whether they successfully in note_interrupt() 250 * mechanism, but for the non forced threaded case we'd just in note_interrupt() 276 * Check whether one of the threaded handlers in note_interrupt() 302 * None of the threaded handlers felt in note_interrupt() 316 * threaded handlers on the same line. Clear in note_interrupt()
|
| H A D | manage.c | 91 * associated threaded handlers into account. 94 * parts (hardirq and threaded handler) have completed. 96 * Returns: false if a threaded handler is active. 125 * threaded handlers are active. in __synchronize_irq() 742 * Returns: false if a threaded handler is active. 993 * Default primary interrupt handler for threaded interrupts. Is 1003 * Primary handler for nested threaded interrupts. Should never be 1082 * Oneshot interrupts keep the irq line masked until the threaded 1137 * Interrupts explicitly requested as threaded interrupts want to be 1153 * Interrupts which are not explicitly requested as threaded [all …]
|
| /linux/tools/memory-model/Documentation/ |
| H A D | simple.txt | 22 Single-threaded code 25 In single-threaded code, there is no reordering, at least assuming 28 threaded context as the kernel can enter the same code path on multiple 38 this lock at a given time, your code will be executed single-threaded. 61 Despite the scalability limitations of single-threaded code, RCU 64 single-threaded grace-period processing is use of batching, where all 75 being completely single-threaded, it is often possible to use library 89 With code locking, we use single-threaded code execution to guarantee 93 in the code execution that will execute as though it is single threaded. 114 a single-threaded approach while providing excellent performance and
|
| /linux/tools/testing/selftests/cgroup/ |
| H A D | test_core.c | 277 * A (domain threaded) - B (threaded) - C (domain) 280 * threaded cgroup. "cgroup.type" file will report "domain (invalid)" in 307 if (cg_write(parent, "cgroup.type", "threaded")) in test_cgcore_invalid_domain() 346 * Test that when a child becomes threaded 347 * the parent type becomes domain threaded. 368 if (cg_write(child, "cgroup.type", "threaded")) in test_cgcore_parent_becomes_threaded() 371 if (cg_read_strcmp(parent, "cgroup.type", "domain threaded\n")) in test_cgcore_parent_becomes_threaded() 388 * Test that there's no internal process constrain on threaded cgroups. 414 if (cg_write(parent, "cgroup.type", "threaded")) in test_cgcore_no_internal_process_constraint_on_threads() 417 if (cg_write(child, "cgroup.type", "threaded")) in test_cgcore_no_internal_process_constraint_on_threads() [all …]
|
| /linux/scripts/coccinelle/misc/ |
| H A D | irqf_oneshot.cocci | 2 /// Since commit 1c6c69525b40 ("genirq: Reject bogus threaded irq requests") 3 /// threaded IRQs without a primary handler need to be requested with 106 msg = "WARNING: Threaded IRQ with no primary handler requested without IRQF_ONESHOT (unless it is n… 112 msg = "WARNING: Threaded IRQ with no primary handler requested without IRQF_ONESHOT (unless it is n…
|
| /linux/Documentation/admin-guide/ |
| H A D | cgroup-v2.rst | 323 Controllers which support thread mode are called threaded controllers. 326 Marking a cgroup threaded makes it join the resource domain of its 327 parent as a threaded cgroup. The parent may be another threaded 329 of a threaded subtree, that is, the nearest ancestor which is not 330 threaded, is called threaded domain or thread root interchangeably and 333 Inside a threaded subtree, threads of a process can be put in 335 constraint - threaded controllers can be enabled on non-leaf cgroups 338 As the threaded domain cgroup hosts all the domain resource 341 can't have populated child cgroups which aren't threaded. Because the 343 serve both as a threaded domain and a parent to domain cgroups. [all …]
|
| /linux/Documentation/netlink/specs/ |
| H A D | netdev.yaml | 89 name: napi-threaded 267 threaded mode. If NAPI is not in threaded mode (i.e. uses normal 291 name: threaded 292 doc: Whether the NAPI is configured to operate in threaded polling 294 in threaded polling mode. If this is set to busy-poll, then the 295 threaded polling mode also busy polls. 297 enum: napi-threaded 711 - threaded 787 - threaded
|
| /linux/Documentation/PCI/ |
| H A D | boot-interrupts.rst | 56 irq_default_primary_handler threaded usb_hcd_irq 63 The use of threaded interrupts is the most likely condition to trigger 64 this problem today. Threaded interrupts may not be re-enabled after the IRQ 65 handler wakes. These "one shot" conditions mean that the threaded interrupt 66 needs to keep the interrupt line masked until the threaded handler has run.
|
| /linux/include/linux/ |
| H A D | cgroup-defs.h | 284 * For a domain cgroup, the following points to self. If threaded, 320 /* all threaded csets whose ->dom_cset points to this cset */ 519 int nr_threaded_children; /* # of live threaded child cgroups */ 570 * If !threaded, self. If threaded, it points to the nearest 571 * domain ancestor. Inside a threaded subtree, cgroups are exempt 577 struct cgroup *old_dom_cgrp; /* used while enabling threaded */ 813 * If %true, the controller, supports threaded mode on the default 814 * hierarchy. In a threaded subtree, both process granularity and 815 * no-internal-process constraint are ignored and a threaded 820 * threaded. implicit && !threaded is not supported. [all …]
|
| H A D | interrupt.h | 53 * Used by threaded interrupts which need to keep the 54 * irq line disabled until the threaded handler has been run. 59 * IRQF_NO_THREAD - Interrupt cannot be threaded 97 * IRQC_IS_NESTED - interrupt runs in a nested threaded context 116 * @thread_fn: interrupt handler function for threaded interrupts 117 * @thread: thread pointer for threaded interrupts 163 * Primary handler for threaded interrupts 545 frequency threaded job scheduling. For almost all the purposes 615 * With forced-threaded interrupts enabled a raised softirq is deferred to 616 * ksoftirqd unless it can be handled within the threaded interrup [all...] |
| /linux/rust/kernel/irq/ |
| H A D | request.rs | 37 /// interrupt context, should be deferred to a threaded handler. 56 /// - `self.irq` is the same as the one passed to `request_{threaded}_irq`. 57 /// - `cookie` was passed to `request_{threaded}_irq` as the cookie. It is guaranteed to be unique 289 /// Callbacks for a threaded IRQ handler. 295 /// executed from interrupt context, should be deferred to the threaded 304 /// The threaded IRQ handler. 331 /// A registration of a threaded IRQ handler for a given IRQ line. 376 /// // Registers a threaded IRQ handler for the given [`IrqRequest`].
|
| H A D | flags.rs | 65 /// threaded interrupts which need to keep the irq line disabled until the 66 /// threaded handler has been run. 76 /// Interrupt cannot be threaded.
|
| /linux/include/acpi/platform/ |
| H A D | acenv.h | 35 /* Common application configuration. All single threaded except for acpi_exec. */ 304 * Use single threaded if the entire subsystem is contained in an application 305 * Use multiple threaded when the subsystem is running in the kernel. 307 * By default the model is single threaded if ACPI_APPLICATION is set, 308 * multi-threaded if ACPI_APPLICATION is not set.
|
| /linux/drivers/pinctrl/qcom/ |
| H A D | tlmm-test.c | 63 * @thread_op: operations to be performed by the threaded IRQ handler 65 * be performed by the threaded IRQ handler 362 * 10 threaded interrupts 414 * Drive line high 10 times, threaded handler drives it low to "clear the 439 * Drive line low 10 times, threaded handler drives it high to "clear the 465 * threaded handler to simulate a new interrupt, repeated 10 times, assert we 490 * threaded handler to simulate a new interrupt, repeated 10 times, assert we
|
| /linux/Documentation/usb/ |
| H A D | dwc3.rst | 34 - threaded handler of the device 45 - threaded handler of the EP-interrupt
|
| /linux/Documentation/ABI/testing/ |
| H A D | sysfs-class-net | 341 What: /sys/class/net/<iface>/threaded 346 Boolean value to control the threaded mode per device. User could 347 set this value to enable/disable threaded mode for all napi 352 0 threaded mode disabled for this dev 353 1 threaded mode enabled for this dev
|
| /linux/drivers/pci/hotplug/ |
| H A D | TODO | 10 hardirq handler cpqhp_ctrl_intr(). Convert this to threaded IRQ handling. 51 simplified by converting it to threaded IRQ handling. Use pciehp as a
|