Home
last modified time | relevance | path

Searched full:completion (Results 1 – 25 of 1949) sorted by relevance

12345678910>>...78

/linux/drivers/md/dm-vdo/
H A Dcompletion.c6 #include "completion.h"
24 * vdo_work_queue which holds vdo_completions that are to be run in that zone. A completion may
27 * At each step of a multi-threaded operation, the completion performing the operation is given a
28 * callback, error handler, and thread id for the next step. A completion is "run" when it is
32 * will be invoked. Generally, a completion will not be run directly, but rather will be
35 * completion's "callback_thread_id". When it is dequeued, it will be on the correct thread, and
36 * will get run. In some cases, the completion should get queued instead of running immediately,
39 * the completion's "requeue" field should be set to true. Doing so will skip the current thread
40 * check and simply enqueue the completion.
42 * A completion may be "finished," in which case its "complete" field will be set to true before it
[all …]
H A Dcompletion.h15 * vdo_run_completion() - Run a completion's callback or error handler on the current thread.
19 static inline void vdo_run_completion(struct vdo_completion *completion) in vdo_run_completion() argument
21 if ((completion->result != VDO_SUCCESS) && (completion->error_handler != NULL)) { in vdo_run_completion()
22 completion->error_handler(completion); in vdo_run_completion()
26 completion->callback(completion); in vdo_run_completion()
29 void vdo_set_completion_result(struct vdo_completion *completion, int result);
31 void vdo_initialize_completion(struct vdo_completion *completion, struct vdo *vdo,
35 * vdo_reset_completion() - Reset a completion to a clean state, while keeping the type, vdo and
38 static inline void vdo_reset_completion(struct vdo_completion *completion) in vdo_reset_completion() argument
40 completion->result = VDO_SUCCESS; in vdo_reset_completion()
[all …]
H A Dvio.h15 #include "completion.h"
39 * @completion: The completion to convert.
41 * Return: The completion as a vio.
43 static inline struct vio *as_vio(struct vdo_completion *completion) in as_vio() argument
45 vdo_assert_completion_type(completion, VIO_COMPLETION); in as_vio()
46 return container_of(completion, struct vio, completion); in as_vio()
58 return vio->completion.vdo->thread_config.bio_threads[vio->bio_zone]; in get_vio_bio_zone_thread_id()
120 vdo_initialize_completion(&vio->completion, vdo, VIO_COMPLETION); in initialize_vio()
164 vdo_set_completion_result(&vio->completion, result); in continue_vio()
166 vdo_enqueue_completion(&vio->completion, VDO_WORK_Q_DEFAULT_PRIORITY); in continue_vio()
[all …]
/linux/include/linux/
H A Dcompletion.h8 * Atomic wait-for-completion handler data structures.
9 * See kernel/sched/completion.c for details.
15 * struct completion - structure used to maintain state for a "completion"
17 * This is the opaque structure used to maintain the state for a "completion".
19 * the "completion" event.
26 struct completion { struct
32 static inline void complete_acquire(struct completion *x) {} in complete_acquire() argument
33 static inline void complete_release(struct completion *x) {} in complete_release()
45 * DECLARE_COMPLETION - declare and initialize a completion structure
46 * @work: identifier for the completion structure
[all …]
/linux/kernel/sched/
H A Dcompletion.c4 * Generic wait-for-completion handler;
13 * Waiting for completion is a typically sync point, but not an exclusion point.
18 #include <linux/completion.h>
21 static void complete_with_flags(struct completion *x, int wake_flags) in complete_with_flags()
33 void complete_on_current_cpu(struct completion *x) in complete_on_current_cpu()
39 * complete: - signals a single thread waiting on this completion
40 * @x: holds the state of this particular completion
42 * This will wake up a single thread waiting on this completion. Threads will be
50 void complete(struct completion *x) in complete()
57 * complete_all: - signals all threads waiting on this completion
[all …]
/linux/rust/kernel/sync/
H A Dcompletion.rs3 //! Completion support.
5 //! Reference: <https://docs.kernel.org/scheduler/completion.html>
7 //! C header: [`include/linux/completion.h`](srctree/include/linux/completion.h)
13 /// The [`Completion`] synchronization primitive signals when a certain task has been completed by
14 /// waking up other tasks that have been queued up to wait for the [`Completion`] to be completed.
19 /// use kernel::sync::{Arc, Completion};
27 /// done: Completion,
38 /// done <- Completion::new(),
49 /// pr_info!("Completion: task complete\n");
67 pub struct Completion { struct
[all …]
/linux/Documentation/scheduler/
H A Dcompletion.rst2 Completions - "wait for completion" barrier APIs
27 is reduced to a simple flag in 'struct completion', appropriately called "done".
30 kernel/sched/completion.c.
38 - the initialization of the 'struct completion' synchronization object
45 to have marked a completion as 'done' before another thread checks whether
48 To use completions you need to #include <linux/completion.h> and
49 create a static or dynamic variable of type 'struct completion',
52 struct completion {
58 the ->done completion flag for indicating whether it's completed or not.
67 Good, intuitive naming (as always) helps code readability. Naming a completion
[all …]
/linux/Documentation/translations/zh_CN/scheduler/
H A Dcompletion.rst3 :Original: Documentation/scheduler/completion.rst
33 事件被简化为 ``struct completion`` 中的一个简单标志,被恰如其名地称为‘done’。
35 由于完成与调度有关,代码可以在kernel/sched/completion.c中找到。
43 - 'struct completion' 同步对象的初始化
51 要使用完成API,你需要#include <linux/completion.h>并创建一个静态或动态的
52 ``struct completion`` 类型的变量,它只有两个字段::
54 struct completion {
134 void wait_for_completion(struct completion *done)
140 struct completion setup_done;
180 int wait_for_completion_interruptible(struct completion *done)
[all …]
/linux/tools/perf/pmu-events/arch/powerpc/power8/
H A Dpipeline.json23 "BriefDescription": "Completion stall",
29 "BriefDescription": "Completion stall due to a Branch Unit",
35 "BriefDescription": "Completion stall by Dcache miss",
41 …"BriefDescription": "Completion stall by Dcache miss which resolved on chip ( excluding local L2/L…
47 "BriefDescription": "Completion stall by Dcache miss which resolved in L2/L3",
53 …"BriefDescription": "Completion stall due to cache miss that resolves in the L2 or L3 with a confl…
54 …"PublicDescription": "Completion stall due to cache miss resolving in core's L2/L3 with a conflict"
59 "BriefDescription": "Completion stall due to cache miss resolving missed the L3",
65 "BriefDescription": "Completion stall due to cache miss that resolves in local memory",
66 "PublicDescription": "Completion stall due to cache miss resolving in core's Local Memory"
[all …]
/linux/Documentation/driver-api/usb/
H A DURB.rst36 - Each URB has a completion handler, which is called after the action
38 context-pointer for passing information to the completion handler.
42 data to an endpoint while your driver handles completion of another.
60 // (IN) all urbs need completion routines
61 void *context; // context for completion routine
62 usb_complete_t complete; // pointer to completion routine
64 // (OUT) status after each completion
110 returned to you in a completion callback. It will automatically be
122 length, the completion handler, and its context. Take a look at the some
156 never look at that value except in your completion callback.
[all …]
/linux/Documentation/arch/sparc/oradax/
H A Doracle-dax.rst41 pointer to a "completion area", which is a 128 byte memory block that
43 interrupt is generated upon completion; the completion area must be
46 processor until the completion status has been updated by the
52 completion of a request and resumption of execution of the requesting
85 call, and gets results (if any) via read(). The completion areas are
96 requests. The completion area buffer is also allocated, and this is
97 large enough to contain the completion areas for many concurrent
116 requests. Since no interrupt is generated upon the completion of a
142 completion area to use, and may be set via lseek() or using the
157 The mmap() function provides access to the completion area allocated
[all …]
/linux/drivers/scsi/isci/
H A Dscu_completion_codes.h60 * This file contains the constants and macros for the SCU hardware completion
72 * This macro constructs an SCU completion type
80 * These macros contain the SCU completion types SCU_COMPLETION_TYPE
92 * an SCU completion code.
107 * This macro returns the SCU completion type.
115 * This macro returns the SCU completion status.
123 * This macro returns the transport layer completion status.
131 * This macro takes a completion code and performs the shift and mask
132 * operations to turn it into a completion code that can be compared to a
153 * This macro returns the SDMA completion status.
[all …]
/linux/drivers/net/ethernet/google/gve/
H A Dgve_desc_dqo.h32 /* If set, will generate a descriptor completion for this descriptor. */
37 /* The TX completion associated with this packet will contain this tag.
146 /* TX completion descriptor */
149 * completion.
165 /* For packet completions, this is the completion tag set on the
174 #define GVE_COMPL_TYPE_DQO_PKT 0x2 /* Packet completion */
175 #define GVE_COMPL_TYPE_DQO_DESC 0x4 /* Descriptor completion */
176 #define GVE_COMPL_TYPE_DQO_MISS 0x1 /* Miss path completion */
177 #define GVE_COMPL_TYPE_DQO_REINJECTION 0x3 /* Re-injection completion */
179 /* The most significant bit in the completion tag can change the completion
[all …]
/linux/net/wireless/
H A Ddebugfs.c160 struct completion completion; in wiphy_locked_debugfs_read()
169 complete(&w->completion); in wiphy_locked_debugfs_read()
178 complete(&w->completion); in wiphy_locked_debugfs_read()
200 .completion = COMPLETION_INITIALIZER_ONSTACK(work.completion),
214 wait_for_completion(&work.completion); in wiphy_locked_debugfs_write_work()
240 struct completion completion; in wiphy_locked_debugfs_write()
249 complete(&w->completion); in wiphy_locked_debugfs_write()
127 struct completion completion; global() member
207 struct completion completion; global() member
[all...]
/linux/tools/perf/pmu-events/arch/x86/pantherlake/
H A Dmemory.json67 "BriefDescription": "Counts randomly selected loads when the latency from first dispatch to completion is greater than 1024 cycles.",
74 "PublicDescription": "Counts randomly selected loads when the latency from first dispatch to completion is greater than 1024 cycles. Reported latency may be longer than just the memory latency. Available PDIST counters: 0,1",
80 "BriefDescription": "Counts randomly selected loads when the latency from first dispatch to completion is greater than 128 cycles.",
87 "PublicDescription": "Counts randomly selected loads when the latency from first dispatch to completion is greater than 128 cycles. Reported latency may be longer than just the memory latency. Available PDIST counters: 0,1",
93 "BriefDescription": "Counts randomly selected loads when the latency from first dispatch to completion is greater than 16 cycles.",
100 "PublicDescription": "Counts randomly selected loads when the latency from first dispatch to completion is greater than 16 cycles. Reported latency may be longer than just the memory latency. Available PDIST counters: 0,1",
106 "BriefDescription": "Counts randomly selected loads when the latency from first dispatch to completion is greater than 2048 cycles.",
113 "PublicDescription": "Counts randomly selected loads when the latency from first dispatch to completion is greater than 2048 cycles. Reported latency may be longer than just the memory latency. Available PDIST counters: 0,1",
119 "BriefDescription": "Counts randomly selected loads when the latency from first dispatch to completion is greater than 256 cycles.",
126 "PublicDescription": "Counts randomly selected loads when the latency from first dispatch to completion i
[all...]
/linux/drivers/net/wwan/iosm/
H A Diosm_ipc_protocol_ops.h14 * enum ipc_mem_td_cs - Completion status of a TD
33 * enum ipc_mem_msg_cs - Completion status of IPC Message
35 * @IPC_MEM_MSG_CS_SUCCESS: IPC Message completion success.
130 * @completion: For waking up requestor
131 * @status: Completion status
134 struct completion completion; member
142 * @IPC_MEM_MSG_ABORT_PIPE: AP ->CP: wait for completion of the
164 * @completion_status: Message Completion Status
184 * @completion_status: Message Completion Status
204 * @completion_status: Message Completion Status
[all …]
H A Diosm_ipc_task_queue.c27 /* Signal completion for synchronous calls */ in ipc_task_queue_handler()
28 if (args->completion) in ipc_task_queue_handler()
29 complete(args->completion); in ipc_task_queue_handler()
42 args->completion = NULL; in ipc_task_queue_handler()
64 if (args->completion) in ipc_task_queue_cleanup()
65 complete(args->completion); in ipc_task_queue_cleanup()
85 struct completion completion; in ipc_task_queue_add_task() local
90 init_completion(&completion); in ipc_task_queue_add_task()
111 ipc_task->args[pos].completion = wait ? &completion : NULL; in ipc_task_queue_add_task()
130 wait_for_completion(&completion); in ipc_task_queue_add_task()
/linux/tools/perf/pmu-events/arch/x86/tigerlake/
H A Dmemory.json21 "BriefDescription": "Counts randomly selected loads when the latency from first dispatch to completion is greater than 128 cycles.",
28 "PublicDescription": "Counts randomly selected loads when the latency from first dispatch to completion is greater than 128 cycles. Reported latency may be longer than just the memory latency.",
33 "BriefDescription": "Counts randomly selected loads when the latency from first dispatch to completion is greater than 16 cycles.",
40 "PublicDescription": "Counts randomly selected loads when the latency from first dispatch to completion is greater than 16 cycles. Reported latency may be longer than just the memory latency.",
45 "BriefDescription": "Counts randomly selected loads when the latency from first dispatch to completion is greater than 256 cycles.",
52 "PublicDescription": "Counts randomly selected loads when the latency from first dispatch to completion is greater than 256 cycles. Reported latency may be longer than just the memory latency.",
57 "BriefDescription": "Counts randomly selected loads when the latency from first dispatch to completion is greater than 32 cycles.",
64 "PublicDescription": "Counts randomly selected loads when the latency from first dispatch to completion is greater than 32 cycles. Reported latency may be longer than just the memory latency.",
69 "BriefDescription": "Counts randomly selected loads when the latency from first dispatch to completion is greater than 4 cycles.",
76 "PublicDescription": "Counts randomly selected loads when the latency from first dispatch to completion i
[all...]
/linux/fs/nilfs2/
H A Dsysfs.h21 * @sg_superblock_kobj_unregister: completion state
23 * @sg_segctor_kobj_unregister: completion state
25 * @sg_mounted_snapshots_kobj_unregister: completion state
27 * @sg_checkpoints_kobj_unregister: completion state
29 * @sg_segments_kobj_unregister: completion state
34 struct completion sg_superblock_kobj_unregister;
38 struct completion sg_segctor_kobj_unregister;
42 struct completion sg_mounted_snapshots_kobj_unregister;
46 struct completion sg_checkpoints_kobj_unregister;
50 struct completion sg_segments_kobj_unregister;
/linux/drivers/net/wireless/intel/iwlwifi/pcie/
H A Diwl-context-info-v2.h48 * @IWL_PRPH_SCRATCH_MTR_MODE: format used for completion - 0: for
49 * completion descriptor, 1 for responses (legacy)
259 * @cr_head_idx_arr_base_addr: the completion ring head index array
263 * @cr_tail_idx_arr_base_addr: the completion ring tail index array
267 * @cr_idx_arr_size: number of entries in the completion ring index array
270 * @mcr_base_addr: the message completion ring start address
272 * @mcr_size: number of entries which the message completion ring can hold
276 * completion ring
280 * completing a completion descriptor in the message completion ring
285 * @mcr_opt_header_size: the size of the optional header in the completion
[all …]
/linux/drivers/scsi/aic94xx/
H A Daic94xx_tmf.c67 complete(ascb->completion); in asd_clear_nexus_tasklet_complete()
78 complete(ascb->completion); in asd_clear_nexus_timedout()
85 DECLARE_COMPLETION_ONSTACK(completion); \
94 ascb->completion = &completion; \
106 wait_for_completion(&completion); \
252 complete(ascb->completion); in asd_tmf_timedout()
320 complete(ascb->completion); in asd_tmf_tasklet_complete()
329 DECLARE_COMPLETION_ONSTACK(completion); in asd_clear_nexus()
332 tascb->completion = &completion; in asd_clear_nexus()
339 leftover = wait_for_completion_timeout(&completion, in asd_clear_nexus()
[all …]
/linux/drivers/s390/char/
H A Dsclp_cmd.c10 #include <linux/completion.h>
53 struct completion *completion = data; in sclp_sync_callback() local
55 complete(completion); in sclp_sync_callback()
65 struct completion completion; in sclp_sync_request_timeout() local
78 request->callback_data = &completion; in sclp_sync_request_timeout()
79 init_completion(&completion); in sclp_sync_request_timeout()
84 wait_for_completion(&completion); in sclp_sync_request_timeout()
217 * and wait for completion. On success return 0. Return non-zero otherwise.
228 * Perform read channel-path information sclp command and wait for completion.
/linux/tools/perf/pmu-events/arch/x86/meteorlake/
H A Dmemory.json139 …Counts randomly selected loads when the latency from first dispatch to completion is greater than …
146 …Counts randomly selected loads when the latency from first dispatch to completion is greater than …
152 …Counts randomly selected loads when the latency from first dispatch to completion is greater than …
159 …Counts randomly selected loads when the latency from first dispatch to completion is greater than …
165 …Counts randomly selected loads when the latency from first dispatch to completion is greater than …
172 …Counts randomly selected loads when the latency from first dispatch to completion is greater than …
178 …Counts randomly selected loads when the latency from first dispatch to completion is greater than …
185 …Counts randomly selected loads when the latency from first dispatch to completion is greater than …
191 …Counts randomly selected loads when the latency from first dispatch to completion is greater than …
198 …Counts randomly selected loads when the latency from first dispatch to completion is greater than …
[all …]
/linux/Documentation/devicetree/bindings/scsi/
H A Dhisilicon-sas.txt19 - queue-count : number of delivery and completion queues in the controller
21 - interrupts : For v1 hw: Interrupts for phys, completion queues, and fatal
24 - Completion queue interrupts
32 Completion queue interrupts : each completion queue has 1
38 For v2 hw: Interrupts for phys, Sata, and completion queues;
42 - Completion queue interrupts
49 Completion queue interrupts : each completion queue has 1
/linux/tools/perf/pmu-events/arch/x86/lunarlake/
H A Dmemory.json159 …Counts randomly selected loads when the latency from first dispatch to completion is greater than …
166 …Counts randomly selected loads when the latency from first dispatch to completion is greater than …
172 …Counts randomly selected loads when the latency from first dispatch to completion is greater than …
179 …Counts randomly selected loads when the latency from first dispatch to completion is greater than …
185 …Counts randomly selected loads when the latency from first dispatch to completion is greater than …
192 …Counts randomly selected loads when the latency from first dispatch to completion is greater than …
198 …Counts randomly selected loads when the latency from first dispatch to completion is greater than …
205 …Counts randomly selected loads when the latency from first dispatch to completion is greater than …
211 …Counts randomly selected loads when the latency from first dispatch to completion is greater than …
218 …Counts randomly selected loads when the latency from first dispatch to completion is greater than …
[all …]

12345678910>>...78