Home
last modified time | relevance | path

Searched +full:wait +full:- +full:queue (Results 1 – 25 of 1070) sorted by relevance

12345678910>>...43

/linux-6.14.4/drivers/md/dm-vdo/indexer/
Dfunnel-requestqueue.c1 // SPDX-License-Identifier: GPL-2.0-only
6 #include "funnel-requestqueue.h"
10 #include <linux/wait.h>
12 #include "funnel-queue.h"
14 #include "memory-alloc.h"
15 #include "thread-utils.h"
18 * This queue will attempt to handle requests in reasonably sized batches instead of reacting
19 * immediately to each new request. The wait time between batches is dynamically adjusted up or
22 * If the wait time becomes long enough, the queue will become dormant and must be explicitly
24 * queue via xchg (which is a memory barrier), and later checks "dormant" to decide whether to do a
[all …]
/linux-6.14.4/drivers/infiniband/hw/hfi1/
Diowait.h1 /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
3 * Copyright(c) 2015 - 2018 Intel Corporation.
11 #include <linux/wait.h>
17 * typedef (*restart_t)() - restart callback
57 * @list: used to add/insert into QP/PQ wait lists
63 * @lock: lock protected head of wait queue
65 * @wait_dma: wait for sdma_busy == 0
66 * @wait_pio: wait for pio_busy == 0
71 * @flags: wait flags (one per QP)
72 * @wait: SE array for multiple legs
[all …]
/linux-6.14.4/drivers/net/wwan/iosm/
Diosm_ipc_task_queue.h1 /* SPDX-License-Identifier: GPL-2.0-only
3 * Copyright (C) 2020-21 Intel Corporation.
9 /* Number of available element for the input message queue of the IPC
15 * struct ipc_task_queue_args - Struct for Task queue elements
18 * @completion: OS object used to wait for the tasklet function to finish for
40 * struct ipc_task_queue - Struct for Task queue
41 * @q_lock: Protect the message queue of the ipc ipc_task
42 * @args: Message queue of the IPC ipc_task
43 * @q_rpos: First queue element to process.
44 * @q_wpos: First free element of the input queue.
[all …]
Diosm_ipc_task_queue.c1 // SPDX-License-Identifier: GPL-2.0-only
3 * Copyright (C) 2020-21 Intel Corporation.
10 * Calls event handler involves callback for each element in the message queue
15 unsigned int q_rpos = ipc_task->q_rpos; in ipc_task_queue_handler()
17 /* Loop over the input queue contents. */ in ipc_task_queue_handler()
18 while (q_rpos != ipc_task->q_wpos) { in ipc_task_queue_handler()
19 /* Get the current first queue element. */ in ipc_task_queue_handler()
20 struct ipc_task_queue_args *args = &ipc_task->args[q_rpos]; in ipc_task_queue_handler()
23 if (args->func) in ipc_task_queue_handler()
24 args->response = args->func(args->ipc_imem, args->arg, in ipc_task_queue_handler()
[all …]
/linux-6.14.4/include/linux/
Dsbitmap.h1 /* SPDX-License-Identifier: GPL-2.0-only */
6 * Copyright (C) 2013-2014 Jens Axboe
22 #include <linux/wait.h>
27 * struct sbitmap_word - Word in a &struct sbitmap.
41 * @swap_lock: serializes simultaneous updates of ->word and ->cleared
47 * struct sbitmap - Scalable bitmap.
49 * A &struct sbitmap is spread over multiple cachelines to avoid ping-pong. This
69 * @round_robin: Allocate bits in strict round-robin order.
81 * This is per-cpu, which allows multiple users to stick to different
91 * struct sbq_wait_state - Wait queue in a &struct sbitmap_queue.
[all …]
Duacce.h1 /* SPDX-License-Identifier: GPL-2.0-or-later */
17 * struct uacce_qfile_region - structure of queue file region
25 * struct uacce_ops - uacce device operations
27 * @get_queue: get a queue from the device
28 * @put_queue: free a queue to the device
29 * @start_queue: make the queue start work after get_queue
30 * @stop_queue: make the queue stop work before put_queue
32 * @mmap: mmap addresses of queue to user space
33 * @ioctl: ioctl for user space users of the queue
56 * struct uacce_interface - interface required for uacce_register()
[all …]
Dwait.h1 /* SPDX-License-Identifier: GPL-2.0 */
5 * Linux wait queue related types and methods
26 * A single wait-queue entry structure:
82 wq_entry->flags = 0; in init_waitqueue_entry()
83 wq_entry->private = p; in init_waitqueue_entry()
84 wq_entry->func = default_wake_function; in init_waitqueue_entry()
90 wq_entry->flags = 0; in init_waitqueue_func_entry()
91 wq_entry->private = NULL; in init_waitqueue_func_entry()
92 wq_entry->func = func; in init_waitqueue_func_entry()
96 * waitqueue_active -- locklessly test for waiters on the queue
[all …]
/linux-6.14.4/drivers/usb/gadget/function/
Duvc_queue.c1 // SPDX-License-Identifier: GPL-2.0+
3 * uvc_queue.c -- USB Video Class driver - Buffers management
5 * Copyright (C) 2005-2010
17 #include <linux/wait.h>
19 #include <media/v4l2-common.h>
20 #include <media/videobuf2-dma-sg.h>
21 #include <media/videobuf2-vmalloc.h>
26 /* ------------------------------------------------------------------------
27 * Video buffers queue management.
33 * the videobuf2 queue operations by serializing calls to videobuf2 and a
[all …]
/linux-6.14.4/net/sunrpc/
Dsched.c1 // SPDX-License-Identifier: GPL-2.0-only
54 * rpciod-related stuff
62 if (current->flags & PF_WQ_WORKER) in rpc_task_gfp_mask()
70 if (cmpxchg(&task->tk_rpc_status, 0, rpc_status) == 0) in rpc_task_set_rpc_status()
78 unsigned long timeout = READ_ONCE(task->tk_timeout); in rpc_task_timeout()
83 return timeout - now; in rpc_task_timeout()
91 * queue->lock and bh_disabled in order to avoid races within
95 __rpc_disable_timer(struct rpc_wait_queue *queue, struct rpc_task *task) in __rpc_disable_timer() argument
97 if (list_empty(&task->u.tk_wait.timer_list)) in __rpc_disable_timer()
99 task->tk_timeout = 0; in __rpc_disable_timer()
[all …]
/linux-6.14.4/tools/testing/selftests/net/netfilter/
Dnft_queue.sh21 rm -f "$TMPINPUT"
22 rm -f "$TMPFILE0"
23 rm -f "$TMPFILE1"
24 rm -f "$TMPFILE2" "$TMPFILE3"
27 checktool "nft --version" "test without nft tool"
28 checktool "socat -h" "run test without socat"
30 modprobe -q sctp
53 ip -net "$nsrouter" link set veth0 up
54 ip -net "$nsrouter" addr add 10.0.1.1/24 dev veth0
55 ip -net "$nsrouter" addr add dead:1::1/64 dev veth0 nodad
[all …]
/linux-6.14.4/net/core/
Dstream.c1 // SPDX-License-Identifier: GPL-2.0
6 * protocols. Even IP. Tonight 8-).
13 * Alan Cox <[email protected]> (Borrowed comments 8-))
21 #include <linux/wait.h>
25 * sk_stream_write_space - stream socket write_space callback.
32 struct socket *sock = sk->sk_socket; in sk_stream_write_space()
36 clear_bit(SOCK_NOSPACE, &sock->flags); in sk_stream_write_space()
39 wq = rcu_dereference(sk->sk_wq); in sk_stream_write_space()
41 wake_up_interruptible_poll(&wq->wait, EPOLLOUT | in sk_stream_write_space()
43 if (wq && wq->fasync_list && !(sk->sk_shutdown & SEND_SHUTDOWN)) in sk_stream_write_space()
[all …]
/linux-6.14.4/drivers/gpu/drm/nouveau/nvkm/engine/gr/fuc/
Dcom.fuc27 // queue_put - add request to queue
29 // In : $r13 queue pointer
44 // store cmd/data on queue
59 // queue_get - fetch request from queue
61 // In : $r13 queue pointer
89 // nv_rd32 - read 32-bit value from nv register
107 // nv_wr32 - write 32-bit value to nv register
124 // wait_donez - wait on FUC_DONE bit to become clear
126 // In : $r10 bit to wait on
138 // wait_doneo - wait on FUC_DONE bit to become set
[all …]
/linux-6.14.4/fs/autofs/
Dwaitq.c1 // SPDX-License-Identifier: GPL-2.0-or-later
3 * Copyright 1997-1998 Transmeta Corporation -- All Rights Reserved
4 * Copyright 2001-2006 Ian Kent <[email protected]>
19 mutex_lock(&sbi->wq_mutex); in autofs_catatonic_mode()
20 if (sbi->flags & AUTOFS_SBI_CATATONIC) { in autofs_catatonic_mode()
21 mutex_unlock(&sbi->wq_mutex); in autofs_catatonic_mode()
27 sbi->flags |= AUTOFS_SBI_CATATONIC; in autofs_catatonic_mode()
28 wq = sbi->queues; in autofs_catatonic_mode()
29 sbi->queues = NULL; /* Erase all wait queues */ in autofs_catatonic_mode()
31 nwq = wq->next; in autofs_catatonic_mode()
[all …]
/linux-6.14.4/drivers/md/dm-vdo/
Dfunnel-workqueue.c1 // SPDX-License-Identifier: GPL-2.0-only
6 #include "funnel-workqueue.h"
15 #include "funnel-queue.h"
17 #include "memory-alloc.h"
20 #include "string-utils.h"
23 #include "status-codes.h"
28 * DOC: Work queue definition.
30 * There are two types of work queues: simple, with one worker thread, and round-robin, which uses
31 * a group of the former to do the work, and assigns work to them in round-robin fashion (roughly).
32 * Externally, both are represented via the same common sub-structure, though there's actually not
[all …]
/linux-6.14.4/kernel/sched/
Dwait.c1 // SPDX-License-Identifier: GPL-2.0-only
10 spin_lock_init(&wq_head->lock); in __init_waitqueue_head()
11 lockdep_set_class_and_name(&wq_head->lock, key, name); in __init_waitqueue_head()
12 INIT_LIST_HEAD(&wq_head->head); in __init_waitqueue_head()
21 wq_entry->flags &= ~WQ_FLAG_EXCLUSIVE; in add_wait_queue()
22 spin_lock_irqsave(&wq_head->lock, flags); in add_wait_queue()
24 spin_unlock_irqrestore(&wq_head->lock, flags); in add_wait_queue()
32 wq_entry->flags |= WQ_FLAG_EXCLUSIVE; in add_wait_queue_exclusive()
33 spin_lock_irqsave(&wq_head->lock, flags); in add_wait_queue_exclusive()
35 spin_unlock_irqrestore(&wq_head->lock, flags); in add_wait_queue_exclusive()
[all …]
/linux-6.14.4/drivers/scsi/aacraid/
Dcommsup.c1 // SPDX-License-Identifier: GPL-2.0-or-later
9 * Copyright (c) 2000-2010 Adaptec, Inc.
10 * 2010-2015 PMC-Sierra, Inc. (aacraid@pmc-sierra.com)
11 * 2016-2017 Microsemi Corp. ([email protected])
42 * fib_map_alloc - allocate the fib objects
51 if (dev->max_fib_size > AAC_MAX_NATIVE_SIZE) in fib_map_alloc()
52 dev->max_cmd_size = AAC_MAX_NATIVE_SIZE; in fib_map_alloc()
54 dev->max_cmd_size = dev->max_fib_size; in fib_map_alloc()
55 if (dev->max_fib_size < AAC_MAX_NATIVE_SIZE) { in fib_map_alloc()
56 dev->max_cmd_size = AAC_MAX_NATIVE_SIZE; in fib_map_alloc()
[all …]
/linux-6.14.4/drivers/accel/habanalabs/common/
Dhw_queue.c1 // SPDX-License-Identifier: GPL-2.0
4 * Copyright 2016-2019 HabanaLabs, Ltd.
13 * hl_queue_add_ptr - add to pi or ci and checks if it wraps around
18 * Add val to ptr. It can go until twice the queue length.
23 ptr &= ((HL_QUEUE_LENGTH << 1) - 1); in hl_hw_queue_add_ptr()
28 return atomic_read(ci) & ((queue_len << 1) - 1); in queue_ci_get()
33 int delta = (q->pi - queue_ci_get(&q->ci, queue_len)); in queue_free_slots()
36 return (queue_len - delta); in queue_free_slots()
38 return (abs(delta) - queue_len); in queue_free_slots()
43 struct hl_device *hdev = cs->ctx->hdev; in hl_hw_queue_update_ci()
[all …]
/linux-6.14.4/arch/mips/include/asm/octeon/
Dcvmx-pow.h7 * Copyright (c) 2003-2008 Cavium Networks
14 * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty
21 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
31 * New, starting with SDK 1.7.0, cvmx-pow supports a number of
36 * enabled. For example, cvmx-pow will check for the following
38 * - Requesting a POW operation with an active tag switch in
40 * - Waiting for a tag switch to complete for an excessively
43 * - Illegal tag switches from NULL_NULL.
44 * - Illegal tag switches from NULL.
45 * - Illegal deschedule request.
[all …]
/linux-6.14.4/kernel/locking/
Dqspinlock_paravirt.h1 /* SPDX-License-Identifier: GPL-2.0 */
16 * pv_wait(u8 *ptr, u8 val) -- suspends the vcpu if *ptr == val
17 * pv_kick(cpu) -- wakes a suspended vcpu
27 * Queue Node Adaptive Spinning
29 * A queue node vCPU will stop spinning if the vCPU in the previous node is
31 * mitigates the slight slowdown for non-overcommitted guest with this
32 * aggressive wait-early mechanism.
41 * Queue node uses: VCPU_RUNNING & VCPU_HALTED.
42 * Queue head uses: VCPU_RUNNING & VCPU_HASHED.
63 * The pending bit is set by the queue head vCPU of the MCS wait queue in
[all …]
Dqspinlock.c1 // SPDX-License-Identifier: GPL-2.0-or-later
5 * (C) Copyright 2013-2015 Hewlett-Packard Development Company, L.P.
6 * (C) Copyright 2013-2014,2018 Red Hat, Inc.
8 * (C) Copyright 2015 Hewlett-Packard Enterprise Development LP
33 * The basic principle of a queue-based spinlock can best be understood
34 * by studying a classic queue-based spinlock implementation called the
36 * Synchronization on Shared-Memory Multiprocessors by Mellor-Crummey and
47 * unlock the next pending (next->locked), we compress both these: {tail,
48 * next->locked} into a single u32 value.
52 * are at most 4 nesting levels, it can be encoded by a 2-bit number. Now
[all …]
Dlock_events_list.h1 /* SPDX-License-Identifier: GPL-2.0 */
29 LOCK_EVENT(pv_latency_wake) /* Average latency (ns) of kick-to-wakeup */
31 LOCK_EVENT(pv_spurious_wakeup) /* # of spurious wakeups in non-head vCPUs */
32 LOCK_EVENT(pv_wait_again) /* # of wait's after queue head vCPU kick */
33 LOCK_EVENT(pv_wait_early) /* # of early vCPU wait's */
34 LOCK_EVENT(pv_wait_head) /* # of vCPU wait's at the queue head */
35 LOCK_EVENT(pv_wait_node) /* # of vCPU wait's at non-head queue node */
45 LOCK_EVENT(lock_slowpath) /* # of locking ops via MCS lock queue */
59 LOCK_EVENT(rwsem_opt_lock) /* # of opt-acquired write locks */
/linux-6.14.4/drivers/net/ethernet/sfc/falcon/
Dselftest.c1 // SPDX-License-Identifier: GPL-2.0-only
4 * Copyright 2005-2006 Fen Systems Ltd.
5 * Copyright 2006-2012 Solarflare Communications Inc.
26 * - All IRQs may be disabled on a CPU for a *long* time by e.g. a
28 * - The PREEMPT_RT patches mostly deal with this, but also allow a
38 * The self-test should stress every RSS vector, and unfortunately
42 char pad[2]; /* Ensures ip is 4-byte aligned */
65 [EF4_INT_MODE_MSIX] = "MSI-X",
70 STRING_TABLE_LOOKUP(efx->interrupt_mode, ef4_interrupt_mode)
73 * struct ef4_loopback_state - persistent state during a loopback selftest
[all …]
/linux-6.14.4/drivers/net/ethernet/intel/ice/
Dice_base.c1 // SPDX-License-Identifier: GPL-2.0
11 * __ice_vsi_get_qs_contig - Assign a contiguous chunk of queues to VSI
12 * @qs_cfg: gathered variables needed for PF->VSI queues assignment
14 * Return 0 on success and -ENOMEM in case of no left space in PF queue bitmap
20 mutex_lock(qs_cfg->qs_mutex); in __ice_vsi_get_qs_contig()
21 offset = bitmap_find_next_zero_area(qs_cfg->pf_map, qs_cfg->pf_map_size, in __ice_vsi_get_qs_contig()
22 0, qs_cfg->q_count, 0); in __ice_vsi_get_qs_contig()
23 if (offset >= qs_cfg->pf_map_size) { in __ice_vsi_get_qs_contig()
24 mutex_unlock(qs_cfg->qs_mutex); in __ice_vsi_get_qs_contig()
25 return -ENOMEM; in __ice_vsi_get_qs_contig()
[all …]
/linux-6.14.4/net/qrtr/
Dtun.c1 // SPDX-License-Identifier: GPL-2.0
15 struct sk_buff_head queue; member
23 skb_queue_tail(&tun->queue, skb); in qrtr_tun_send()
26 wake_up_interruptible(&tun->readq); in qrtr_tun_send()
38 return -ENOMEM; in qrtr_tun_open()
40 skb_queue_head_init(&tun->queue); in qrtr_tun_open()
41 init_waitqueue_head(&tun->readq); in qrtr_tun_open()
43 tun->ep.xmit = qrtr_tun_send; in qrtr_tun_open()
45 filp->private_data = tun; in qrtr_tun_open()
47 ret = qrtr_endpoint_register(&tun->ep, QRTR_EP_NID_AUTO); in qrtr_tun_open()
[all …]
/linux-6.14.4/drivers/media/usb/uvc/
Duvc_queue.c1 // SPDX-License-Identifier: GPL-2.0-or-later
3 * uvc_queue.c -- USB Video Class driver - Buffers management
5 * Copyright (C) 2005-2010
17 #include <linux/wait.h>
18 #include <media/videobuf2-v4l2.h>
19 #include <media/videobuf2-vmalloc.h>
23 /* ------------------------------------------------------------------------
24 * Video buffers queue management.
30 * the videobuf2 queue operations by serializing calls to videobuf2 and a
31 * spinlock to protect the IRQ queue that holds the buffers to be processed by
[all …]

12345678910>>...43