/linux/Documentation/scheduler/ |
H A D | sched-deadline.rst | 2 Deadline Task Scheduling 41 basically an implementation of the Earliest Deadline First (EDF) scheduling 53 "deadline", to schedule tasks. A SCHED_DEADLINE task should receive 55 these "runtime" microseconds are available within "deadline" microseconds 57 every time the task wakes up, the scheduler computes a "scheduling deadline" 60 earliest scheduling deadline is selected for execution). Notice that the 61 task actually receives "runtime" time units within "deadline" if a proper 68 algorithm selects the task with the earliest scheduling deadline as the one 77 "deadline", and "period" parameters; 79 - The state of the task is described by a "scheduling deadline", and [all …]
|
H A D | sched-rt-group.rst | 158 as its prone to starvation without deadline scheduling. 175 The next project will be SCHED_EDF (Earliest Deadline First scheduling) to bring 176 full deadline scheduling to the linux kernel. Deadline scheduling the above 177 groups and treating end of the period as a deadline will ensure that they both 182 the limited static priority levels 0-99. With deadline scheduling you need to 183 do deadline inheritance (since priority is inversely proportional to the 184 deadline delta (deadline - now)).
|
H A D | sched-bwc.rst | 34 This guaranteeds both that every deadline is met and that the system is 37 our deadline, but the next deadline will be further out still, there is 53 both tasks will exceed their quota at the same time (guaranteed deadline 58 At the same time, we can say that the worst case deadline miss, will be 63 missing the deadline and the average WCET. Test results showed that when
|
/linux/kernel/sched/ |
H A D | deadline.c | 3 * Deadline Scheduling Class (SCHED_DEADLINE) 5 * Earliest Deadline First (EDF) + Constant Bandwidth Server (CBS). 370 * A flag in the deadline scheduling entity (dl_non_contending) 419 * If this is a non-deadline task that has been boosted, in task_non_contending() 430 zerolag_time = dl_se->deadline - in task_non_contending() 480 * If this is a non-deadline task that has been boosted, in task_contending() 536 /* zero means no -deadline tasks */ in init_dl_rq() 596 * The list of pushable -deadline task is not a plist, like in 597 * sched_rt.c, it is an rb-tree with tasks ordered by deadline. 609 rq->dl.earliest_dl.next = p->dl.deadline; in enqueue_pushable_dl_task() [all …]
|
/linux/drivers/gpu/drm/msm/ |
H A D | msm_fence.c | 34 /* If deadline fence has already passed, nothing to do: */ in deadline_work() 133 static void msm_fence_set_deadline(struct dma_fence *fence, ktime_t deadline) in msm_fence_set_deadline() argument 144 ktime_before(deadline, fctx->next_deadline)) { in msm_fence_set_deadline() 145 fctx->next_deadline = deadline; in msm_fence_set_deadline() 150 * Set timer to trigger boost 3ms before deadline, or in msm_fence_set_deadline() 151 * if we are already less than 3ms before the deadline in msm_fence_set_deadline() 154 deadline = ktime_sub(deadline, ms_to_ktime(3)); in msm_fence_set_deadline() 156 if (ktime_after(now, deadline)) { in msm_fence_set_deadline() 160 hrtimer_start(&fctx->deadline_timer, deadline, in msm_fence_set_deadline()
|
H A D | msm_fence.h | 62 /** next_deadline: Time of next deadline */ 68 * Fence value for next pending deadline. The deadline timer is
|
/linux/drivers/dma-buf/ |
H A D | sw_sync.c | 56 * struct sw_sync_get_deadline - get the deadline hint of a sw_sync fence 57 * @deadline_ns: absolute time of the deadline 61 * Return the earliest deadline set on the fence. The timebase for the 62 * deadline is CLOCK_MONOTONIC (same as vblank). If there is no deadline 195 static void timeline_fence_set_deadline(struct dma_fence *fence, ktime_t deadline) in timeline_fence_set_deadline() argument 202 if (ktime_before(deadline, pt->deadline)) in timeline_fence_set_deadline() 203 pt->deadline = deadline; in timeline_fence_set_deadline() 205 pt->deadline = deadline; in timeline_fence_set_deadline() 452 data.deadline_ns = ktime_to_ns(pt->deadline); in sw_sync_ioctl_get_deadline()
|
H A D | sync_debug.h | 58 * @deadline: the earliest fence deadline hint 64 ktime_t deadline; member
|
H A D | dma-fence.c | 917 * DOC: deadline hints 930 * * Workloads that interact with a periodic time based deadline, such as double 932 * missing a vblank deadline results in an *increase* in idle time on the GPU 937 * To this end, deadline hint(s) can be set on a &dma_fence via &dma_fence_set_deadline 939 * The deadline hint provides a way for the waiting driver, or userspace, to 942 * A deadline hint is given in absolute ktime (CLOCK_MONOTONIC for userspace 944 * the vblank based deadline for page-flipping, or the start of a compositor's 945 * composition cycle), or the current time to indicate an immediate deadline 951 * The deadline hint is just that, a hint. The driver that created the fence 957 * dma_fence_set_deadline - set desired fence-wait deadline hint [all …]
|
/linux/drivers/gpu/drm/scheduler/ |
H A D | sched_fence.c | 60 dma_fence_set_deadline(fence, s_fence->deadline); in drm_sched_fence_set_parent() 151 ktime_t deadline) in drm_sched_fence_set_deadline_finished() argument 159 /* If we already have an earlier deadline, keep it: */ in drm_sched_fence_set_deadline_finished() 161 ktime_before(fence->deadline, deadline)) { in drm_sched_fence_set_deadline_finished() 166 fence->deadline = deadline; in drm_sched_fence_set_deadline_finished() 178 dma_fence_set_deadline(parent, deadline); in drm_sched_fence_set_deadline_finished()
|
/linux/Documentation/block/ |
H A D | deadline-iosched.rst | 2 Deadline IO scheduler tunables 5 This little file attempts to document how the deadline io scheduler works. 19 The goal of the deadline io scheduler is to attempt to guarantee a start 22 a deadline that is the current time + the read_expire value in units of 37 deadline expiries are only checked between batches. fifo_batch controls the
|
H A D | switching-sched.rst | 17 the fly to select one of mq-deadline, none, bfq, or kyber schedulers - 32 [mq-deadline] kyber bfq none 35 [none] mq-deadline kyber bfq
|
/linux/drivers/ata/ |
H A D | ahci_xgene.c | 114 unsigned long deadline; in xgene_ahci_poll_reg_val() local 118 deadline = ata_deadline(jiffies, timeout); in xgene_ahci_poll_reg_val() 120 while (tmp != val && time_before(jiffies, deadline)) { in xgene_ahci_poll_reg_val() 303 * @deadline: deadline jiffies for the operation 348 unsigned long deadline, bool *online) in xgene_ahci_do_hardreset() argument 367 rc = sata_link_hardreset(link, timing, deadline, online, in xgene_ahci_do_hardreset() 388 unsigned long deadline) in xgene_ahci_hardreset() argument 410 rc = xgene_ahci_do_hardreset(link, deadline, &online); in xgene_ahci_hardreset() 439 * @deadline: deadline jiffies for the operation 449 unsigned long deadline) in xgene_ahci_pmp_softreset() argument [all …]
|
H A D | libata-sata.c | 217 * @deadline: deadline jiffies for the operation 226 * @timeout is further limited by @deadline. The sooner of the 236 unsigned long deadline) in sata_link_debounce() argument 245 if (time_before(t, deadline)) in sata_link_debounce() 246 deadline = t; in sata_link_debounce() 263 if (cur == 1 && time_before(jiffies, deadline)) in sata_link_debounce() 275 /* Check deadline. If debouncing failed, return in sata_link_debounce() 278 if (time_after(jiffies, deadline)) in sata_link_debounce() 288 * @deadline: deadline jiffies for the operation 299 unsigned long deadline) in sata_link_resume() argument [all …]
|
H A D | ahci_da850.c | 94 unsigned int *class, unsigned long deadline) in ahci_da850_softreset() argument 107 ret = ahci_do_softreset(link, class, pmp, deadline, ahci_check_ready); in ahci_da850_softreset() 110 deadline, ahci_check_ready); in ahci_da850_softreset() 116 unsigned int *class, unsigned long deadline) in ahci_da850_hardreset() argument 130 ret = ahci_do_hardreset(link, class, deadline, &online); in ahci_da850_hardreset()
|
H A D | pata_marvell.c | 57 * @deadline: deadline jiffies for the operation 62 static int marvell_pre_reset(struct ata_link *link, unsigned long deadline) in marvell_pre_reset() argument 71 return ata_sff_prereset(link, deadline); in marvell_pre_reset()
|
H A D | pata_ns87410.c | 21 * @deadline: deadline jiffies for the operation 26 static int ns87410_pre_reset(struct ata_link *link, unsigned long deadline) in ns87410_pre_reset() argument 38 return ata_sff_prereset(link, deadline); in ns87410_pre_reset()
|
H A D | pata_jmicron.c | 33 * @deadline: deadline jiffies for the operation 42 static int jmicron_pre_reset(struct ata_link *link, unsigned long deadline) in jmicron_pre_reset() argument 105 return ata_sff_prereset(link, deadline); in jmicron_pre_reset()
|
H A D | pata_opti.c | 49 * @deadline: deadline jiffies for the operation 54 static int opti_pre_reset(struct ata_link *link, unsigned long deadline) in opti_pre_reset() argument 66 return ata_sff_prereset(link, deadline); in opti_pre_reset()
|
H A D | pata_triflex.c | 38 * @deadline: deadline jiffies for the operation 43 static int triflex_prereset(struct ata_link *link, unsigned long deadline) in triflex_prereset() argument 56 return ata_sff_prereset(link, deadline); in triflex_prereset()
|
H A D | pata_amd.c | 126 * @deadline: deadline jiffies for the operation 132 static int amd_pre_reset(struct ata_link *link, unsigned long deadline) in amd_pre_reset() argument 145 return ata_sff_prereset(link, deadline); in amd_pre_reset() 324 * @deadline: deadline jiffies for the operation 330 static int nv_pre_reset(struct ata_link *link, unsigned long deadline) in nv_pre_reset() argument 343 return ata_sff_prereset(link, deadline); in nv_pre_reset()
|
/linux/include/trace/events/ |
H A D | libata.h | 527 TP_PROTO(struct ata_link *link, unsigned int *class, unsigned long deadline), 529 TP_ARGS(link, class, deadline), 534 __field( unsigned long, deadline ) 540 __entry->deadline = deadline; 543 TP_printk("ata_port=%u deadline=%lu classes=[%s,%s]", 544 __entry->ata_port, __entry->deadline, 550 TP_PROTO(struct ata_link *link, unsigned int *class, unsigned long deadline), 551 TP_ARGS(link, class, deadline)); 554 TP_PROTO(struct ata_link *link, unsigned int *class, unsigned long deadline), 555 TP_ARGS(link, class, deadline)); [all …]
|
/linux/include/uapi/linux/ |
H A D | sync_file.h | 80 * struct sync_set_deadline - SYNC_IOC_SET_DEADLINE - set a deadline hint on a fence 81 * @deadline_ns: absolute time of the deadline 84 * Allows userspace to set a deadline on a fence, see &dma_fence_set_deadline 86 * The timebase for the deadline is CLOCK_MONOTONIC (same as vblank). For
|
/linux/tools/testing/selftests/kvm/x86_64/ |
H A D | vmx_preemption_timer_test.c | 210 pr_info("Stage %d: L1 PT expiry TSC (%lu) , L1 TSC deadline (%lu)\n", in main() 213 pr_info("Stage %d: L2 PT expiry TSC (%lu) , L2 TSC deadline (%lu)\n", in main() 217 "Stage %d: L1 PT expiry TSC (%lu) < L1 TSC deadline (%lu)", in main() 221 "Stage %d: L2 PT expiry TSC (%lu) > L2 TSC deadline (%lu)", in main()
|
/linux/fs/afs/ |
H A D | validation.c | 123 time64_t deadline = ktime_get_real_seconds() + 10; in afs_check_validity() local 129 atomic64_read(&vnode->cb_expires_at) <= deadline || in afs_check_validity() 130 volume->cb_expires_at <= deadline || in afs_check_validity() 386 time64_t deadline = ktime_get_real_seconds() + 10; in afs_validate() local 411 if (volume->cb_expires_at <= deadline || in afs_validate() 427 volume->cb_expires_at <= deadline || in afs_validate() 429 atomic64_read(&vnode->cb_expires_at) <= deadline in afs_validate()
|