Home
last modified time | relevance | path

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

12345678910>>...95

/linux/drivers/md/dm-vdo/
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 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 Drepair.c16 #include "completion.h"
57 /* The completion header */
58 struct vdo_completion completion; member
191 * as_repair_completion() - Convert a generic completion to a repair_completion.
192 * @completion: The completion to convert.
197 as_repair_completion(struct vdo_completion *completion) in as_repair_completion() argument
199 vdo_assert_completion_type(completion, VDO_REPAIR_COMPLETION); in as_repair_completion()
200 return container_of(completion, struct repair_completion, completion); in as_repair_completion()
206 struct vdo_completion *completion = &repair->completion; in prepare_repair_completion() local
207 const struct thread_config *thread_config = &completion->vdo->thread_config; in prepare_repair_completion()
[all …]
H A Dflush.c16 #include "completion.h"
24 struct vdo_completion completion; member
68 * @completion: The completion to convert.
70 * Return: The completion as a flusher.
72 static struct flusher *as_flusher(struct vdo_completion *completion) in as_flusher() argument
74 vdo_assert_completion_type(completion, VDO_FLUSH_NOTIFICATION_COMPLETION); in as_flusher()
75 return container_of(completion, struct flusher, completion); in as_flusher()
80 * @completion: The completion to convert.
82 * Return: The completion as a vdo_flush.
84 static inline struct vdo_flush *completion_as_vdo_flush(struct vdo_completion *completion) in completion_as_vdo_flush() argument
[all …]
H A Dfunnel-workqueue.c10 #include <linux/completion.h>
22 #include "completion.h"
64 struct completion *started;
89 * Dequeue and return the next waiting completion, if any.
92 * condition where a high-priority completion can be enqueued followed by a lower-priority one, and
111 struct vdo_completion *completion) in enqueue_work_queue_completion() argument
113 VDO_ASSERT_LOG_ONLY(completion->my_queue == NULL, in enqueue_work_queue_completion()
114 "completion %px (fn %px) to enqueue (%px) is not already queued (%px)", in enqueue_work_queue_completion()
115 completion, completion->callback, queue, completion->my_queue); in enqueue_work_queue_completion()
116 if (completion->priority == VDO_WORK_Q_DEFAULT_PRIORITY) in enqueue_work_queue_completion()
[all …]
H A Daction-manager.c12 #include "completion.h"
41 * @completion: The completion for performing actions.
54 struct vdo_completion completion; member
66 static inline struct action_manager *as_action_manager(struct vdo_completion *completion) in as_action_manager() argument
68 vdo_assert_completion_type(completion, VDO_ACTION_COMPLETION); in as_action_manager()
69 return container_of(completion, struct action_manager, completion); in as_action_manager()
79 static void no_preamble(void *context __always_unused, struct vdo_completion *completion) in no_preamble() argument
81 vdo_finish_completion(completion); in no_preamble()
128 vdo_initialize_completion(&manager->completion, vdo, VDO_ACTION_COMPLETION); in vdo_make_action_manager()
143 static void finish_action_callback(struct vdo_completion *completion);
[all …]
H A Ddm-vdo-target.c8 #include <linux/completion.h>
18 #include "completion.h"
1175 struct vdo_completion *completion = &vdo->admin.completion; in prepare_admin_completion() local
1179 * any error in the completion. in prepare_admin_completion()
1181 completion->callback = callback; in prepare_admin_completion()
1182 completion->error_handler = error_handler; in prepare_admin_completion()
1183 completion->callback_thread_id = get_thread_id_for_phase(vdo); in prepare_admin_completion()
1184 completion->requeue = true; in prepare_admin_completion()
1185 return completion; in prepare_admin_completion()
1190 * completion to run on the thread for the next phase.
[all …]
H A Dlogical-zone.c16 #include "completion.h"
28 * @completion: The completion to convert.
30 * Return: The completion as a logical_zone.
32 static struct logical_zone *as_logical_zone(struct vdo_completion *completion) in as_logical_zone() argument
34 vdo_assert_completion_type(completion, VDO_GENERATION_FLUSHED_COMPLETION); in as_logical_zone()
35 return container_of(completion, struct logical_zone, completion); in as_logical_zone()
65 vdo_initialize_completion(&zone->completion, vdo, in initialize_zone()
277 static void attempt_generation_complete_notification(struct vdo_completion *completion);
281 * @completion: The zone completion.
285 static void notify_flusher(struct vdo_completion *completion) in notify_flusher() argument
[all …]
H A Dvio.h15 #include "completion.h"
37 * @completion: The completion to convert.
39 * Return: The completion as a vio.
41 static inline struct vio *as_vio(struct vdo_completion *completion) in as_vio() argument
43 vdo_assert_completion_type(completion, VIO_COMPLETION); in as_vio()
44 return container_of(completion, struct vio, completion); in as_vio()
56 return vio->completion.vdo->thread_config.bio_threads[vio->bio_zone]; in get_vio_bio_zone_thread_id()
118 vdo_initialize_completion(&vio->completion, vdo, VIO_COMPLETION); in initialize_vio()
161 vdo_set_completion_result(&vio->completion, result); in continue_vio()
163 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.
16 static void complete_with_flags(struct completion *x, int wake_flags) in complete_with_flags()
28 void complete_on_current_cpu(struct completion *x) in complete_on_current_cpu()
34 * complete: - signals a single thread waiting on this completion
35 * @x: holds the state of this particular completion
37 * This will wake up a single thread waiting on this completion. Threads will be
45 void complete(struct completion *x) in complete()
52 * complete_all: - signals all threads waiting on this completion
53 * @x: holds the state of this particular completion
[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/tools/perf/pmu-events/arch/x86/lunarlake/
H A Dmemory.json3 …Counts randomly selected loads when the latency from first dispatch to completion is greater than …
11 …Counts randomly selected loads when the latency from first dispatch to completion is greater than …
17 …Counts randomly selected loads when the latency from first dispatch to completion is greater than …
25 …Counts randomly selected loads when the latency from first dispatch to completion is greater than …
31 …Counts randomly selected loads when the latency from first dispatch to completion is greater than …
39 …Counts randomly selected loads when the latency from first dispatch to completion is greater than …
45 …Counts randomly selected loads when the latency from first dispatch to completion is greater than …
53 …Counts randomly selected loads when the latency from first dispatch to completion is greater than …
59 …Counts randomly selected loads when the latency from first dispatch to completion is greater than …
67 …Counts randomly selected loads when the latency from first dispatch to completion is greater than …
[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/tools/perf/pmu-events/arch/x86/graniterapids/
H A Dmemory.json68 …Counts randomly selected loads when the latency from first dispatch to completion is greater than …
76 …Counts randomly selected loads when the latency from first dispatch to completion is greater than …
81 …Counts randomly selected loads when the latency from first dispatch to completion is greater than …
89 …Counts randomly selected loads when the latency from first dispatch to completion is greater than …
94 …Counts randomly selected loads when the latency from first dispatch to completion is greater than …
102 …Counts randomly selected loads when the latency from first dispatch to completion is greater than …
107 …Counts randomly selected loads when the latency from first dispatch to completion is greater than …
115 …Counts randomly selected loads when the latency from first dispatch to completion is greater than …
120 …Counts randomly selected loads when the latency from first dispatch to completion is greater than …
128 …Counts randomly selected loads when the latency from first dispatch to completion is greater than …
[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.c127 struct completion completion; member
136 complete(&w->completion); in wiphy_locked_debugfs_read_work()
145 complete(&w->completion); in wiphy_locked_debugfs_read_cancel()
167 .completion = COMPLETION_INITIALIZER_ONSTACK(work.completion), in wiphy_locked_debugfs_read()
181 wait_for_completion(&work.completion); in wiphy_locked_debugfs_read()
207 struct completion completion; member
216 complete(&w->completion); in wiphy_locked_debugfs_write_work()
225 complete(&w->completion); in wiphy_locked_debugfs_write_cancel()
246 .completion = COMPLETION_INITIALIZER_ONSTACK(work.completion), in wiphy_locked_debugfs_write()
266 wait_for_completion(&work.completion); in wiphy_locked_debugfs_write()
/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 …Counts randomly selected loads when the latency from first dispatch to completion is greater than …
29 …Counts randomly selected loads when the latency from first dispatch to completion is greater than …
34 …Counts randomly selected loads when the latency from first dispatch to completion is greater than …
42 …Counts randomly selected loads when the latency from first dispatch to completion is greater than …
47 …Counts randomly selected loads when the latency from first dispatch to completion is greater than …
55 …Counts randomly selected loads when the latency from first dispatch to completion is greater than …
60 …Counts randomly selected loads when the latency from first dispatch to completion is greater than …
68 …Counts randomly selected loads when the latency from first dispatch to completion is greater than …
73 …Counts randomly selected loads when the latency from first dispatch to completion is greater than …
81 …Counts randomly selected loads when the latency from first dispatch to completion is greater than …
[all …]
/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 …
147 …Counts randomly selected loads when the latency from first dispatch to completion is greater than …
153 …Counts randomly selected loads when the latency from first dispatch to completion is greater than …
161 …Counts randomly selected loads when the latency from first dispatch to completion is greater than …
167 …Counts randomly selected loads when the latency from first dispatch to completion is greater than …
175 …Counts randomly selected loads when the latency from first dispatch to completion is greater than …
181 …Counts randomly selected loads when the latency from first dispatch to completion is greater than …
189 …Counts randomly selected loads when the latency from first dispatch to completion is greater than …
195 …Counts randomly selected loads when the latency from first dispatch to completion is greater than …
203 …Counts randomly selected loads when the latency from first dispatch to completion is greater than …
[all …]

12345678910>>...95