| /linux/drivers/md/dm-vdo/ |
| H A D | completion.c | 6 #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 D | completion.h | 15 * 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 D | vdo.c | 14 * A read_only_notifier has a single completion which is used to perform read-only notifications, 32 #include <linux/completion.h> 47 #include "completion.h" 67 struct completion completion; member 519 vdo_initialize_completion(&vdo->admin.completion, vdo, VDO_ADMIN_COMPLETION); in initialize_vdo() 802 * @completion: The super block vio. 806 static void finish_reading_super_block(struct vdo_completion *completion) in finish_reading_super_block() argument 809 container_of(as_vio(completion), struct vdo_super_block, vio); in finish_reading_super_block() 811 vdo_continue_completion(vdo_forget(completion->parent), in finish_reading_super_block() 817 * @completion: The super block vio. [all …]
|
| H A D | vio.h | 15 #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 D | completion.h | 8 * 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 D | completion.c | 4 * 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 D | completion.rs | 3 //! 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 67 pub struct Completion { global() struct 72 innerCompletion global() argument 73 unsafe impl Send for Completion {} global() implementation 76 unsafe impl Sync for Completion {} global() implementation 78 impl Completion { global() implementation 89 as_raw(&self) -> *mut bindings::completion as_raw() argument [all...] |
| /linux/Documentation/scheduler/ |
| H A D | completion.rst | 2 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 D | completion.rst | 3 :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 D | pipeline.json | 23 "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 D | URB.rst | 36 - 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/drivers/scsi/isci/ |
| H A D | scu_completion_codes.h | 60 * 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 D | gve_desc_dqo.h | 32 /* 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 D | debugfs.c | 160 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/drivers/net/wwan/iosm/ |
| H A D | iosm_ipc_task_queue.c | 27 /* 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()
|
| H A D | iosm_ipc_protocol_ops.h | 14 * 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 …]
|
| /linux/tools/perf/pmu-events/arch/x86/pantherlake/ |
| H A D | memory.json | 96 "BriefDescription": "Counts randomly selected loads when the latency from first dispatch to completion is greater than 1024 cycles.", 103 "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", 109 "BriefDescription": "Counts randomly selected loads when the latency from first dispatch to completion is greater than 128 cycles.", 116 "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", 122 "BriefDescription": "Counts randomly selected loads when the latency from first dispatch to completion is greater than 16 cycles.", 129 "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", 135 "BriefDescription": "Counts randomly selected loads when the latency from first dispatch to completion is greater than 2048 cycles.", 142 "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", 148 "BriefDescription": "Counts randomly selected loads when the latency from first dispatch to completion is greater than 256 cycles.", 155 "PublicDescription": "Counts randomly selected loads when the latency from first dispatch to completion i [all...] |
| /linux/tools/perf/pmu-events/arch/x86/tigerlake/ |
| H A D | memory.json | 21 "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 D | sysfs.h | 21 * @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 D | iwl-context-info-v2.h | 48 * @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/s390/char/ |
| H A D | sclp_cmd.c | 10 #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/Documentation/devicetree/bindings/scsi/ |
| H A D | hisilicon-sas.txt | 19 - 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/drivers/scsi/aic94xx/ |
| H A D | aic94xx_tmf.c | 67 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/tools/perf/pmu-events/arch/x86/meteorlake/ |
| H A D | memory.json | 203 "BriefDescription": "Counts randomly selected loads when the latency from first dispatch to completion is greater than 1024 cycles.", 210 "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", 216 "BriefDescription": "Counts randomly selected loads when the latency from first dispatch to completion is greater than 128 cycles.", 223 "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", 229 "BriefDescription": "Counts randomly selected loads when the latency from first dispatch to completion is greater than 16 cycles.", 236 "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", 242 "BriefDescription": "Counts randomly selected loads when the latency from first dispatch to completion is greater than 2048 cycles.", 249 "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", 255 "BriefDescription": "Counts randomly selected loads when the latency from first dispatch to completion is greater than 256 cycles.", 262 "PublicDescription": "Counts randomly selected loads when the latency from first dispatch to completion i [all...] |
| /linux/include/linux/sunrpc/ |
| H A D | rpc_rdma_cid.h | 10 * The rpc_rdma_cid struct records completion ID information. A 11 * completion ID matches an incoming Send or Receive completion 12 * to a Completion Queue and to a previous ib_post_*(). The ID
|