| /linux/drivers/gpu/drm/scheduler/ |
| H A D | sched_main.c | 96 static u32 drm_sched_available_credits(struct drm_gpu_scheduler *sched) in drm_sched_available_credits() argument 100 WARN_ON(check_sub_overflow(sched->credit_limit, in drm_sched_available_credits() 101 atomic_read(&sched->credit_count), in drm_sched_available_credits() 115 static bool drm_sched_can_queue(struct drm_gpu_scheduler *sched, in drm_sched_can_queue() argument 127 if (s_job->credits > sched->credit_limit) { in drm_sched_can_queue() 128 dev_WARN(sched->dev, in drm_sched_can_queue() 130 s_job->credits = sched->credit_limit; in drm_sched_can_queue() 133 return drm_sched_available_credits(sched) >= s_job->credits; in drm_sched_can_queue() 182 static void drm_sched_rq_init(struct drm_gpu_scheduler *sched, in drm_sched_rq_init() argument 189 rq->sched = sched; in drm_sched_rq_init() [all …]
|
| H A D | sched_entity.c | 215 job->sched->ops->free_job(job); in drm_sched_entity_kill_jobs_work() 285 struct drm_gpu_scheduler *sched; in drm_sched_entity_flush() local 292 sched = entity->rq->sched; in drm_sched_entity_flush() 300 sched->job_scheduled, in drm_sched_entity_flush() 304 wait_event_killable(sched->job_scheduled, in drm_sched_entity_flush() 375 drm_sched_wakeup(entity->rq->sched); in drm_sched_entity_wakeup() 402 struct drm_gpu_scheduler *sched = entity->rq->sched; in drm_sched_entity_add_dependency_cb() local 418 if (!fence->error && s_fence && s_fence->sched == sched && in drm_sched_entity_add_dependency_cb() 458 if (job->sched->ops->prepare_job) in drm_sched_job_dependency() 459 return job->sched->ops->prepare_job(job, entity); in drm_sched_job_dependency() [all …]
|
| /linux/drivers/gpu/drm/xe/ |
| H A D | xe_gpu_scheduler.c | 8 static void xe_sched_process_msg_queue(struct xe_gpu_scheduler *sched) in xe_sched_process_msg_queue() argument 10 if (!READ_ONCE(sched->base.pause_submit)) in xe_sched_process_msg_queue() 11 queue_work(sched->base.submit_wq, &sched->work_process_msg); in xe_sched_process_msg_queue() 14 static void xe_sched_process_msg_queue_if_ready(struct xe_gpu_scheduler *sched) in xe_sched_process_msg_queue_if_ready() argument 18 xe_sched_msg_lock(sched); in xe_sched_process_msg_queue_if_ready() 19 msg = list_first_entry_or_null(&sched->msgs, struct xe_sched_msg, link); in xe_sched_process_msg_queue_if_ready() 21 xe_sched_process_msg_queue(sched); in xe_sched_process_msg_queue_if_ready() 22 xe_sched_msg_unlock(sched); in xe_sched_process_msg_queue_if_ready() 26 xe_sched_get_msg(struct xe_gpu_scheduler *sched) in xe_sched_get_msg() argument 30 xe_sched_msg_lock(sched); in xe_sched_get_msg() [all …]
|
| H A D | xe_gpu_scheduler.h | 12 int xe_sched_init(struct xe_gpu_scheduler *sched, 20 void xe_sched_fini(struct xe_gpu_scheduler *sched); 22 void xe_sched_submission_start(struct xe_gpu_scheduler *sched); 23 void xe_sched_submission_stop(struct xe_gpu_scheduler *sched); 24 void xe_sched_submission_stop_async(struct xe_gpu_scheduler *sched); 26 void xe_sched_submission_resume_tdr(struct xe_gpu_scheduler *sched); 28 void xe_sched_add_msg(struct xe_gpu_scheduler *sched, 30 void xe_sched_add_msg_locked(struct xe_gpu_scheduler *sched, 33 static inline void xe_sched_msg_lock(struct xe_gpu_scheduler *sched) in xe_sched_msg_lock() argument 35 spin_lock(&sched->base.job_list_lock); in xe_sched_msg_lock() [all …]
|
| H A D | xe_dep_scheduler.c | 31 struct drm_gpu_scheduler sched; member 77 struct drm_gpu_scheduler *sched; in xe_dep_scheduler_create() local 93 err = drm_sched_init(&dep_scheduler->sched, &args); in xe_dep_scheduler_create() 97 sched = &dep_scheduler->sched; in xe_dep_scheduler_create() 98 err = drm_sched_entity_init(&dep_scheduler->entity, 0, &sched, 1, NULL); in xe_dep_scheduler_create() 107 drm_sched_fini(&dep_scheduler->sched); in xe_dep_scheduler_create() 124 drm_sched_fini(&dep_scheduler->sched); in xe_dep_scheduler_fini()
|
| /linux/tools/perf/ |
| H A D | builtin-sched.c | 128 int (*switch_event)(struct perf_sched *sched, struct evsel *evsel, 131 int (*runtime_event)(struct perf_sched *sched, struct evsel *evsel, 134 int (*wakeup_event)(struct perf_sched *sched, struct evsel *evsel, 138 int (*fork_event)(struct perf_sched *sched, union perf_event *event, 141 int (*migrate_task_event)(struct perf_sched *sched, 300 static void burn_nsecs(struct perf_sched *sched, u64 nsecs) in burn_nsecs() argument 306 } while (T1 + sched->run_measurement_overhead < T0 + nsecs); in burn_nsecs() 319 static void calibrate_run_measurement_overhead(struct perf_sched *sched) in calibrate_run_measurement_overhead() argument 326 burn_nsecs(sched, 0); in calibrate_run_measurement_overhead() 331 sched->run_measurement_overhead = min_delta; in calibrate_run_measurement_overhead() [all …]
|
| /linux/net/mptcp/ |
| H A D | sched.c | 53 struct mptcp_sched_ops *sched, *ret = NULL; in mptcp_sched_find() local 55 list_for_each_entry_rcu(sched, &mptcp_sched_list, list) { in mptcp_sched_find() 56 if (!strcmp(sched->name, name)) { in mptcp_sched_find() 57 ret = sched; in mptcp_sched_find() 70 struct mptcp_sched_ops *sched; in mptcp_get_available_schedulers() local 74 list_for_each_entry_rcu(sched, &mptcp_sched_list, list) { in mptcp_get_available_schedulers() 77 offs == 0 ? "" : " ", sched->name); in mptcp_get_available_schedulers() 85 int mptcp_validate_scheduler(struct mptcp_sched_ops *sched) in mptcp_validate_scheduler() argument 87 if (!sched->get_send) { in mptcp_validate_scheduler() 88 pr_err("%s does not implement required ops\n", sched->name); in mptcp_validate_scheduler() [all …]
|
| /linux/drivers/gpu/drm/scheduler/tests/ |
| H A D | mock_scheduler.c | 25 struct drm_mock_scheduler *sched) in drm_mock_sched_entity_new() argument 34 drm_sched = &sched->base; in drm_mock_sched_entity_new() 60 struct drm_mock_scheduler *sched = in drm_mock_sched_job_complete() local 61 drm_sched_to_mock_sched(job->base.sched); in drm_mock_sched_job_complete() 63 lockdep_assert_held(&sched->lock); in drm_mock_sched_job_complete() 76 struct drm_mock_scheduler *sched = in drm_mock_sched_job_signal_timer() local 77 drm_sched_to_mock_sched(job->base.sched); in drm_mock_sched_job_signal_timer() 83 spin_lock_irqsave(&sched->lock, flags); in drm_mock_sched_job_signal_timer() 84 list_for_each_entry_safe(job, next, &sched->job_list, link) { in drm_mock_sched_job_signal_timer() 91 sched->hw_timeline.cur_seqno = job->hw_fence.seqno; in drm_mock_sched_job_signal_timer() [all …]
|
| H A D | tests_basic.c | 26 struct drm_mock_scheduler *sched = test->priv; in drm_sched_basic_exit() local 28 drm_mock_sched_fini(sched); in drm_sched_basic_exit() 40 struct drm_mock_scheduler *sched = test->priv; in drm_sched_basic_submit() local 53 sched); in drm_sched_basic_submit() 64 i = drm_mock_sched_advance(sched, 1); in drm_sched_basic_submit() 121 struct drm_mock_scheduler *sched = test->priv; in drm_sched_basic_test() local 134 sched); in drm_sched_basic_test() 157 struct drm_mock_scheduler *sched = test->priv; in drm_sched_basic_entity_cleanup() local 172 sched); in drm_sched_basic_entity_cleanup() 212 struct drm_mock_scheduler *sched; in drm_sched_basic_cancel() local [all …]
|
| /linux/drivers/gpu/drm/nouveau/ |
| H A D | nouveau_sched.c | 29 struct nouveau_sched *sched = args->sched; in nouveau_job_init() local 36 job->sched = sched; in nouveau_job_init() 89 ret = drm_sched_job_init(&job->base, &sched->entity, in nouveau_job_init() 122 struct nouveau_sched *sched = job->sched; in nouveau_job_done() local 124 spin_lock(&sched->job.list.lock); in nouveau_job_done() 126 spin_unlock(&sched->job.list.lock); in nouveau_job_done() 128 wake_up(&sched->job.wq); in nouveau_job_done() 277 struct nouveau_sched *sched = job->sched; in nouveau_job_submit() local 297 mutex_lock(&sched->mutex); in nouveau_job_submit() 309 spin_lock(&sched->job.list.lock); in nouveau_job_submit() [all …]
|
| /linux/tools/testing/selftests/ftrace/test.d/trigger/ |
| H A D | trigger-filter.tc | 14 echo 'traceoff if child_pid == 0' > events/sched/sched_process_fork/trigger 23 ! echo 'traceoff if a' > events/sched/sched_process_fork/trigger 24 ! echo 'traceoff if common_pid=0' > events/sched/sched_process_fork/trigger 25 ! echo 'traceoff if common_pid==b' > events/sched/sched_process_fork/trigger 26 echo 'traceoff if common_pid == 0' > events/sched/sched_process_fork/trigger 27 echo '!traceoff' > events/sched/sched_process_fork/trigger 28 ! echo 'traceoff if common_pid == child_pid' > events/sched/sched_process_fork/trigger 29 echo 'traceoff if common_pid <= 0' > events/sched/sched_process_fork/trigger 30 echo '!traceoff' > events/sched/sched_process_fork/trigger 31 echo 'traceoff if common_pid >= 0' > events/sched/sched_process_fork/trigger [all …]
|
| H A D | trigger-eventonoff.tc | 12 FEATURE=`grep enable_event events/sched/sched_process_fork/trigger` 19 echo 0 > events/sched/sched_switch/enable 20 echo 'enable_event:sched:sched_switch' > events/sched/sched_process_fork/trigger 22 if [ `cat events/sched/sched_switch/enable` != '1*' ]; then 29 echo 1 > events/sched/sched_switch/enable 30 echo 'disable_event:sched:sched_switch' > events/sched/sched_process_fork/trigger 32 if [ `cat events/sched/sched_switch/enable` != '0*' ]; then 39 ! echo 'enable_event:nogroup:noevent' > events/sched/sched_process_fork/trigger 40 ! echo 'disable_event+1' > events/sched/sched_process_fork/trigger 41 echo 'enable_event:sched:sched_switch' > events/sched/sched_process_fork/trigger [all …]
|
| H A D | trigger-multihist.tc | 14 echo 'hist:keys=parent_pid:vals=child_pid' > events/sched/sched_process_fork/trigger 15 echo 'hist:keys=parent_comm:vals=child_pid' >> events/sched/sched_process_fork/trigger 17 grep parent_pid events/sched/sched_process_fork/hist > /dev/null || \ 19 grep child events/sched/sched_process_fork/hist > /dev/null || \ 22 grep "parent_comm: $COMM" events/sched/sched_process_fork/hist > /dev/null || \ 29 echo 'hist:name=test_hist:keys=common_pid' > events/sched/sched_process_fork/trigger 31 grep test_hist events/sched/sched_process_fork/hist > /dev/null || \ 36 echo 'hist:name=test_hist:keys=common_pid' > events/sched/sched_process_exit/trigger 38 grep test_hist events/sched/sched_process_exit/hist > /dev/null || \ 41 diffs=`diff events/sched/sched_process_exit/hist events/sched/sched_process_fork/hist | wc -l`
|
| H A D | trigger-hist.tc | 14 echo 'hist:keys=parent_pid:vals=child_pid' > events/sched/sched_process_fork/trigger 16 grep parent_pid events/sched/sched_process_fork/hist > /dev/null || \ 18 grep child events/sched/sched_process_fork/hist > /dev/null || \ 25 echo 'hist:keys=parent_pid,child_pid' > events/sched/sched_process_fork/trigger 27 grep '^{ parent_pid:.*, child_pid:.*}' events/sched/sched_process_fork/hist > /dev/null || \ 34 echo 'hist:keys=parent_comm' > events/sched/sched_process_fork/trigger 37 grep "parent_comm: $COMM" events/sched/sched_process_fork/hist > /dev/null || \ 62 echo 'hist:keys=parent_pid,child_pid:sort=child_pid.ascending' > events/sched/sched_process_fork/tr… 73 events/sched/sched_process_fork/hist | cut -d: -f2 ` ||
|
| H A D | trigger-traceonoff.tc | 13 echo 'traceoff' > events/sched/sched_process_fork/trigger 23 echo 'traceon' > events/sched/sched_process_fork/trigger 32 ! echo 'traceoff:badparam' > events/sched/sched_process_fork/trigger 33 ! echo 'traceoff+0' > events/sched/sched_process_fork/trigger 34 echo 'traceon' > events/sched/sched_process_fork/trigger 35 ! echo 'traceon' > events/sched/sched_process_fork/trigger 36 ! echo 'traceoff' > events/sched/sched_process_fork/trigger
|
| H A D | trigger-snapshot.tc | 11 FEATURE=`grep snapshot events/sched/sched_process_fork/trigger` 19 echo 1 > events/sched/sched_process_fork/enable 21 echo 'snapshot:1' > events/sched/sched_process_fork/trigger 28 echo 0 > events/sched/sched_process_fork/enable 32 ! echo "snapshot+1" > events/sched/sched_process_fork/trigger 33 echo "snapshot" > events/sched/sched_process_fork/trigger 34 ! echo "snapshot" > events/sched/sched_process_fork/trigger
|
| /linux/Documentation/scheduler/ |
| H A D | index.rst | 11 sched-arch 12 sched-bwc 13 sched-deadline 14 sched-design-CFS 15 sched-eevdf 16 sched-domains 17 sched-capacity 18 sched-energy 20 sched-util-clamp 21 sched-nice-design [all …]
|
| /linux/drivers/slimbus/ |
| H A D | sched.c | 29 struct slim_sched *sched = &ctrl->sched; in slim_ctrl_clk_pause() local 38 mutex_lock(&sched->m_reconf); in slim_ctrl_clk_pause() 40 if (sched->clk_state == SLIM_CLK_ACTIVE) { in slim_ctrl_clk_pause() 41 mutex_unlock(&sched->m_reconf); in slim_ctrl_clk_pause() 49 ret = wait_for_completion_timeout(&sched->pause_comp, in slim_ctrl_clk_pause() 52 mutex_unlock(&sched->m_reconf); in slim_ctrl_clk_pause() 63 if (sched->clk_state == SLIM_CLK_PAUSED && ctrl->wakeup) in slim_ctrl_clk_pause() 66 sched->clk_state = SLIM_CLK_ACTIVE; in slim_ctrl_clk_pause() 67 mutex_unlock(&sched->m_reconf); in slim_ctrl_clk_pause() 73 if (ctrl->sched.clk_state == SLIM_CLK_PAUSED) { in slim_ctrl_clk_pause() [all …]
|
| /linux/net/netfilter/ipvs/ |
| H A D | ip_vs_sched.c | 61 struct ip_vs_scheduler *sched) in ip_vs_unbind_scheduler() argument 70 if (sched->done_service) in ip_vs_unbind_scheduler() 71 sched->done_service(svc); in ip_vs_unbind_scheduler() 81 struct ip_vs_scheduler *sched; in ip_vs_sched_getbyname() local 87 list_for_each_entry(sched, &ip_vs_schedulers, n_list) { in ip_vs_sched_getbyname() 91 if (sched->module && !try_module_get(sched->module)) { in ip_vs_sched_getbyname() 97 if (strcmp(sched_name, sched->name)==0) { in ip_vs_sched_getbyname() 100 return sched; in ip_vs_sched_getbyname() 102 module_put(sched->module); in ip_vs_sched_getbyname() 115 struct ip_vs_scheduler *sched; in ip_vs_scheduler_get() local [all …]
|
| /linux/drivers/gpu/drm/panthor/ |
| H A D | panthor_sched.c | 746 #define sched_queue_work(sched, wname) \ argument 748 if (!atomic_read(&(sched)->reset.in_progress) && \ 749 !panthor_device_reset_is_pending((sched)->ptdev)) \ 750 queue_work((sched)->wq, &(sched)->wname ## _work); \ 762 #define sched_queue_delayed_work(sched, wname, delay) \ argument 764 if (!atomic_read(&sched->reset.in_progress) && \ 765 !panthor_device_reset_is_pending((sched)->ptdev)) \ 766 mod_delayed_work((sched)->wq, &(sched)->wname ## _work, delay); \ 1353 struct panthor_scheduler *sched = ptdev->scheduler; in cs_slot_process_fatal_event_locked() local 1354 struct panthor_csg_slot *csg_slot = &sched->csg_slots[csg_id]; in cs_slot_process_fatal_event_locked() [all …]
|
| /linux/Documentation/translations/zh_CN/scheduler/ |
| H A D | index.rst | 22 sched-arch 23 sched-bwc 24 sched-design-CFS 25 sched-domains 26 sched-capacity 27 sched-energy 29 sched-nice-design 30 sched-stats 31 sched-debug 35 sched-deadline [all …]
|
| /linux/crypto/ |
| H A D | fcrypt.c | 54 __be32 sched[ROUNDS]; member 223 #define F_ENCRYPT(R, L, sched) \ argument 226 u.l = sched ^ R; \ 242 F_ENCRYPT(X.r, X.l, ctx->sched[0x0]); in fcrypt_encrypt() 243 F_ENCRYPT(X.l, X.r, ctx->sched[0x1]); in fcrypt_encrypt() 244 F_ENCRYPT(X.r, X.l, ctx->sched[0x2]); in fcrypt_encrypt() 245 F_ENCRYPT(X.l, X.r, ctx->sched[0x3]); in fcrypt_encrypt() 246 F_ENCRYPT(X.r, X.l, ctx->sched[0x4]); in fcrypt_encrypt() 247 F_ENCRYPT(X.l, X.r, ctx->sched[0x5]); in fcrypt_encrypt() 248 F_ENCRYPT(X.r, X.l, ctx->sched[0x6]); in fcrypt_encrypt() [all …]
|
| /linux/drivers/net/wireless/ath/ath9k/ |
| H A D | channel.c | 256 if (likely(sc->sched.channel_switch_time)) in ath_chanctx_check_active() 258 usecs_to_jiffies(sc->sched.channel_switch_time); in ath_chanctx_check_active() 306 ictx->flush_timeout = usecs_to_jiffies(sc->sched.channel_switch_time); in ath_chanctx_check_active() 377 mod_timer(&sc->sched.timer, jiffies + timeout); in ath_chanctx_setup_timer() 394 if (ctx->active && sc->sched.extend_absence) { in ath_chanctx_handle_bmiss() 396 sc->sched.extend_absence = false; in ath_chanctx_handle_bmiss() 403 if (ctx->active && sc->sched.beacon_miss >= 2) { in ath_chanctx_handle_bmiss() 405 sc->sched.extend_absence = true; in ath_chanctx_handle_bmiss() 418 avp->offchannel_duration = sc->sched.offchannel_duration; in ath_chanctx_offchannel_noa() 446 if (sc->sched.extend_absence) in ath_chanctx_set_periodic_noa() [all …]
|
| /linux/net/sctp/ |
| H A D | stream_sched.c | 116 void sctp_sched_ops_register(enum sctp_sched_type sched, in sctp_sched_ops_register() argument 119 sctp_sched_ops[sched] = sched_ops; in sctp_sched_ops_register() 133 struct sctp_sched_ops *sched = sctp_sched_ops_from_stream(stream); in sctp_sched_free_sched() local 137 sched->unsched_all(stream); in sctp_sched_free_sched() 142 sched->free_sid(stream, i); in sctp_sched_free_sched() 149 enum sctp_sched_type sched) in sctp_sched_set_sched() argument 151 struct sctp_sched_ops *old = asoc->outqueue.sched; in sctp_sched_set_sched() 157 if (sched > SCTP_SS_MAX) in sctp_sched_set_sched() 160 n = sctp_sched_ops[sched]; in sctp_sched_set_sched() 167 asoc->outqueue.sched = n; in sctp_sched_set_sched() [all …]
|
| /linux/include/drm/ |
| H A D | gpu_scheduler.h | 252 struct drm_gpu_scheduler *sched; member 299 struct drm_gpu_scheduler *sched; member 355 struct drm_gpu_scheduler *sched; member 632 int drm_sched_init(struct drm_gpu_scheduler *sched, 635 void drm_sched_fini(struct drm_gpu_scheduler *sched); 637 unsigned long drm_sched_suspend_timeout(struct drm_gpu_scheduler *sched); 638 void drm_sched_resume_timeout(struct drm_gpu_scheduler *sched, 640 void drm_sched_tdr_queue_imm(struct drm_gpu_scheduler *sched); 641 bool drm_sched_wqueue_ready(struct drm_gpu_scheduler *sched); 642 void drm_sched_wqueue_stop(struct drm_gpu_scheduler *sched); [all …]
|