Home
last modified time | relevance | path

Searched full:scheduler (Results 1 – 25 of 1211) sorted by relevance

12345678910>>...49

/OK3568_Linux_fs/kernel/drivers/gpu/arm/bifrost/csf/
H A Dmali_kbase_csf_scheduler.c40 /* This decides the upper limit on the waiting time for the Scheduler
52 /* CSF scheduler time slice value */
67 void insert_group_to_runnable(struct kbase_csf_scheduler *const scheduler,
74 struct kbase_csf_scheduler *const scheduler);
95 * being dumped. Moreover the scheduler lock would be held, so the access to debugfs
97 * Scheduler lock and 'kctx->csf.lock' are released before this function starts
98 * to wait. When a request sent by the Scheduler to the FW times out, Scheduler
99 * would also wait for the dumping to complete and release the Scheduler lock
101 * would ensure that the group doesn't exit the Scheduler until scheduling
115 struct kbase_csf_scheduler *scheduler = &kbdev->csf.scheduler; in wait_for_dump_complete_on_group_deschedule() local
[all …]
H A Dmali_kbase_csf_scheduler.h40 * indicate to the caller that queue could not be enabled due to Scheduler
156 * for CSF scheduler.
167 * kbase_csf_scheduler_init - Initialize the CSF scheduler
171 * The scheduler does the arbitration for the CSG slots
181 * kbase_csf_scheduler_early_init - Early initialization for the CSF scheduler
185 * Initialize necessary resources such as locks, workqueue for CSF scheduler.
194 * for CSF scheduler.
203 * kbase_csf_scheduler_term - Terminate the CSF scheduler.
213 * kbase_csf_scheduler_early_term - Early termination of the CSF scheduler.
243 * kbase_csf_scheduler_enable_tick_timer - Enable the scheduler tick timer.
[all …]
H A Dmali_kbase_csf_tiler_heap_reclaim.c59 struct kbase_csf_scheduler *const scheduler = &kctx->kbdev->csf.scheduler; in detach_ctx_from_heap_reclaim_mgr() local
62 lockdep_assert_held(&scheduler->lock); in detach_ctx_from_heap_reclaim_mgr()
71 WARN_ON(atomic_sub_return(remaining, &scheduler->reclaim_mgr.unused_pages) < in detach_ctx_from_heap_reclaim_mgr()
83 struct kbase_csf_scheduler *const scheduler = &kctx->kbdev->csf.scheduler; in attach_ctx_to_heap_reclaim_mgr() local
86 lockdep_assert_held(&scheduler->lock); in attach_ctx_to_heap_reclaim_mgr()
96 list_add_tail(&info->mgr_link, &scheduler->reclaim_mgr.ctx_lists[prio]); in attach_ctx_to_heap_reclaim_mgr()
98 atomic_add(info->nr_est_unused_pages, &scheduler->reclaim_mgr.unused_pages); in attach_ctx_to_heap_reclaim_mgr()
109 lockdep_assert_held(&kctx->kbdev->csf.scheduler.lock); in kbase_csf_tiler_heap_reclaim_sched_notify_grp_active()
125 struct kbase_csf_scheduler *const scheduler = &kctx->kbdev->csf.scheduler; in kbase_csf_tiler_heap_reclaim_sched_notify_grp_evict() local
130 lockdep_assert_held(&scheduler->lock); in kbase_csf_tiler_heap_reclaim_sched_notify_grp_evict()
[all …]
/OK3568_Linux_fs/kernel/drivers/video/rockchip/rve/
H A Drve_job.c15 rve_scheduler_get_pending_job_list(struct rve_scheduler_t *scheduler) in rve_scheduler_get_pending_job_list() argument
20 spin_lock_irqsave(&scheduler->irq_lock, flags); in rve_scheduler_get_pending_job_list()
22 job = list_first_entry_or_null(&scheduler->todo_list, in rve_scheduler_get_pending_job_list()
25 spin_unlock_irqrestore(&scheduler->irq_lock, flags); in rve_scheduler_get_pending_job_list()
31 rve_scheduler_get_running_job(struct rve_scheduler_t *scheduler) in rve_scheduler_get_running_job() argument
36 spin_lock_irqsave(&scheduler->irq_lock, flags); in rve_scheduler_get_running_job()
38 job = scheduler->running_job; in rve_scheduler_get_running_job()
40 spin_unlock_irqrestore(&scheduler->irq_lock, flags); in rve_scheduler_get_running_job()
47 struct rve_scheduler_t *scheduler; in rve_scheduler_set_pid_info() local
52 scheduler = rve_job_get_scheduler(job); in rve_scheduler_set_pid_info()
[all …]
H A Drve_reg.c13 void rve_soft_reset(struct rve_scheduler_t *scheduler) in rve_soft_reset() argument
18 rve_write(1, RVE_SWREG5_IVE_IDLE_CTRL, scheduler); in rve_soft_reset()
22 rve_dump_read_back_reg(scheduler); in rve_soft_reset()
27 rve_read(RVE_SWREG5_IVE_IDLE_CTRL, scheduler), in rve_soft_reset()
28 rve_read(RVE_SWREG3_IVE_IDLE_PRC_STA, scheduler)); in rve_soft_reset()
30 pr_err("work status = %.8x", rve_read(RVE_SWREG6_IVE_WORK_STA, scheduler)); in rve_soft_reset()
36 reg = rve_read(RVE_SWREG3_IVE_IDLE_PRC_STA, scheduler); in rve_soft_reset()
41 rve_write(0x30000, RVE_SWREG3_IVE_IDLE_PRC_STA, scheduler); in rve_soft_reset()
44 rve_write(0xff0000, RVE_SWREG6_IVE_WORK_STA, scheduler); in rve_soft_reset()
47 rve_write(0x30000, RVE_SWREG1_IVE_IRQ, scheduler); in rve_soft_reset()
[all …]
H A Drve_drv.c46 struct rve_scheduler_t *scheduler = NULL; in hrtimer_handler() local
55 scheduler = rve->scheduler[i]; in hrtimer_handler()
57 spin_lock_irqsave(&scheduler->irq_lock, flags); in hrtimer_handler()
60 job = scheduler->running_job; in hrtimer_handler()
62 scheduler->timer.busy_time += ktime_us_delta(now, job->hw_recoder_time); in hrtimer_handler()
66 scheduler->timer.busy_time_record = scheduler->timer.busy_time; in hrtimer_handler()
67 scheduler->timer.busy_time = 0; in hrtimer_handler()
70 scheduler->session.rd_bandwidth = 0; in hrtimer_handler()
71 scheduler->session.wr_bandwidth = 0; in hrtimer_handler()
72 scheduler->session.cycle_cnt = 0; in hrtimer_handler()
[all …]
/OK3568_Linux_fs/kernel/net/netfilter/ipvs/
H A Dip_vs_sched.c29 * IPVS scheduler list
38 * Bind a service with a scheduler
41 struct ip_vs_scheduler *scheduler) in ip_vs_bind_scheduler() argument
45 if (scheduler->init_service) { in ip_vs_bind_scheduler()
46 ret = scheduler->init_service(svc); in ip_vs_bind_scheduler()
52 rcu_assign_pointer(svc->scheduler, scheduler); in ip_vs_bind_scheduler()
58 * Unbind a service with its scheduler
65 cur_sched = rcu_dereference_protected(svc->scheduler, 1); in ip_vs_unbind_scheduler()
72 /* svc->scheduler can be set to NULL only by caller */ in ip_vs_unbind_scheduler()
77 * Get scheduler in the scheduler list by name
[all …]
/OK3568_Linux_fs/kernel/drivers/gpu/drm/i915/gvt/
H A Dsched_policy.c134 struct intel_gvt_workload_scheduler *scheduler = &gvt->scheduler; in try_to_schedule_next_vgpu() local
141 * let scheduler chose next_vgpu again by setting it to NULL. in try_to_schedule_next_vgpu()
143 if (scheduler->next_vgpu == scheduler->current_vgpu) { in try_to_schedule_next_vgpu()
144 scheduler->next_vgpu = NULL; in try_to_schedule_next_vgpu()
152 scheduler->need_reschedule = true; in try_to_schedule_next_vgpu()
156 if (scheduler->current_workload[engine->id]) in try_to_schedule_next_vgpu()
161 vgpu_update_timeslice(scheduler->current_vgpu, cur_time); in try_to_schedule_next_vgpu()
162 vgpu_data = scheduler->next_vgpu->sched_data; in try_to_schedule_next_vgpu()
166 scheduler->current_vgpu = scheduler->next_vgpu; in try_to_schedule_next_vgpu()
167 scheduler->next_vgpu = NULL; in try_to_schedule_next_vgpu()
[all …]
/OK3568_Linux_fs/kernel/drivers/video/rockchip/rga3/
H A Drga_job.c151 void rga_job_scheduler_dump_info(struct rga_scheduler_t *scheduler) in rga_job_scheduler_dump_info() argument
155 lockdep_assert_held(&scheduler->irq_lock); in rga_job_scheduler_dump_info()
159 dev_driver_string(scheduler->dev), in rga_job_scheduler_dump_info()
160 scheduler->core, scheduler->job_count, scheduler->status); in rga_job_scheduler_dump_info()
162 if (scheduler->running_job) in rga_job_scheduler_dump_info()
163 rga_job_dump_info(scheduler->running_job); in rga_job_scheduler_dump_info()
165 list_for_each_entry(job_pos, &scheduler->todo_list, head) { in rga_job_scheduler_dump_info()
172 static int rga_job_run(struct rga_job *job, struct rga_scheduler_t *scheduler) in rga_job_run() argument
177 ret = rga_power_enable(scheduler); in rga_job_run()
183 ret = scheduler->ops->set_reg(job, scheduler); in rga_job_run()
[all …]
H A Drga_drv.c330 struct rga_scheduler_t *scheduler = NULL; in hrtimer_handler() local
338 scheduler = rga->scheduler[i]; in hrtimer_handler()
340 spin_lock_irqsave(&scheduler->irq_lock, flags); in hrtimer_handler()
343 job = scheduler->running_job; in hrtimer_handler()
345 scheduler->timer.busy_time += ktime_us_delta(now, job->hw_recoder_time); in hrtimer_handler()
349 scheduler->timer.busy_time_record = scheduler->timer.busy_time; in hrtimer_handler()
350 scheduler->timer.busy_time = 0; in hrtimer_handler()
352 spin_unlock_irqrestore(&scheduler->irq_lock, flags); in hrtimer_handler()
375 int rga_power_enable(struct rga_scheduler_t *scheduler) in rga_power_enable() argument
381 pm_runtime_get_sync(scheduler->dev); in rga_power_enable()
[all …]
H A Drga_policy.c226 struct rga_scheduler_t *scheduler = NULL; in rga_job_assign() local
249 data = rga_drvdata->scheduler[i]->data; in rga_job_assign()
250 scheduler = rga_drvdata->scheduler[i]; in rga_job_assign()
253 (!(scheduler->core & specified_cores))) in rga_job_assign()
257 pr_info("start policy on core = %d", scheduler->core); in rga_job_assign()
259 if (scheduler->data->mmu == RGA_MMU && in rga_job_assign()
270 scheduler->core); in rga_job_assign()
283 scheduler->core); in rga_job_assign()
291 scheduler->core); in rga_job_assign()
299 scheduler->core); in rga_job_assign()
[all …]
H A Drga_iommu.c61 job->scheduler); in rga_set_mmu_base()
69 job->scheduler); in rga_set_mmu_base()
77 job->scheduler); in rga_set_mmu_base()
90 job->scheduler); in rga_set_mmu_base()
239 struct rga_scheduler_t *scheduler = (struct rga_scheduler_t *)arg; in rga_iommu_intr_fault_handler() local
240 struct rga_job *job = scheduler->running_job; in rga_iommu_intr_fault_handler()
246 if (scheduler->ops->irq) in rga_iommu_intr_fault_handler()
247 scheduler->ops->irq(scheduler); in rga_iommu_intr_fault_handler()
252 scheduler->ops->soft_reset(scheduler); in rga_iommu_intr_fault_handler()
336 struct rga_scheduler_t *scheduler = NULL; in rga_iommu_bind() local
[all …]
H A Drga_mm.c312 static inline bool rga_mm_check_memory_limit(struct rga_scheduler_t *scheduler, int mm_flag) in rga_mm_check_memory_limit() argument
314 if (!scheduler) in rga_mm_check_memory_limit()
317 if (scheduler->data->mmu == RGA_MMU && in rga_mm_check_memory_limit()
320 rga_get_mmu_type_str(scheduler->data->mmu)); in rga_mm_check_memory_limit()
381 struct rga_scheduler_t *scheduler; in rga_mm_map_dma_buffer() local
383 scheduler = job ? job->scheduler : in rga_mm_map_dma_buffer()
384 rga_drvdata->scheduler[rga_drvdata->map_scheduler_index]; in rga_mm_map_dma_buffer()
385 if (scheduler == NULL) { in rga_mm_map_dma_buffer()
386 pr_err("Invalid scheduler device!\n"); in rga_mm_map_dma_buffer()
407 map_dev = scheduler->iommu_info ? scheduler->iommu_info->default_dev : scheduler->dev; in rga_mm_map_dma_buffer()
[all …]
H A Drga2_reg_info.c1925 static void rga_cmd_to_rga2_cmd(struct rga_scheduler_t *scheduler, in rga_cmd_to_rga2_cmd() argument
2056 if ((scheduler->data->feature & RGA_YIN_YOUT) && in rga_cmd_to_rga2_cmd()
2196 static void rga2_soft_reset(struct rga_scheduler_t *scheduler) in rga2_soft_reset() argument
2202 if (scheduler->data->mmu == RGA_IOMMU) in rga2_soft_reset()
2203 iommu_dte_addr = rga_read(RGA_IOMMU_DTE_ADDR, scheduler); in rga2_soft_reset()
2207 RGA2_SYS_CTRL, scheduler); in rga2_soft_reset()
2211 reg = rga_read(RGA2_SYS_CTRL, scheduler) & 1; in rga2_soft_reset()
2219 if (scheduler->data->mmu == RGA_IOMMU) { in rga2_soft_reset()
2220 rga_write(iommu_dte_addr, RGA_IOMMU_DTE_ADDR, scheduler); in rga2_soft_reset()
2222 rga_write(RGA_IOMMU_CMD_ENABLE_PAGING, RGA_IOMMU_COMMAND, scheduler); in rga2_soft_reset()
[all …]
/OK3568_Linux_fs/kernel/drivers/gpu/drm/scheduler/
H A Dsched_main.c27 * The GPU scheduler provides entities which allow userspace to push jobs
29 * The software queues have a priority among them. The scheduler selects the entities
30 * from the run queue using a FIFO. The scheduler provides dependency handling
32 * backend operations to the scheduler like submitting a job to hardware run queue,
35 * The organisation of the scheduler is the following:
37 * 1. Each hw run queue has one scheduler
38 * 2. Each scheduler has multiple run queues with different priorities
40 * 3. Each scheduler run queue has a queue of entities to schedule
68 * @rq: scheduler run queue
70 * Initializes a scheduler runqueue.
[all …]
/OK3568_Linux_fs/kernel/Documentation/block/
H A Dswitching-sched.rst2 Switching Scheduler
5 Each io queue has a set of io scheduler tunables associated with it. These
6 tunables control how the io scheduler works. You can find these entries
16 It is possible to change the IO scheduler for a given block device on
20 To set a specific scheduler, simply do this::
22 echo SCHEDNAME > /sys/block/DEV/queue/scheduler
24 where SCHEDNAME is the name of a defined IO scheduler, and DEV is the
28 a "cat /sys/block/DEV/queue/scheduler" - the list of valid names
29 will be displayed, with the currently selected scheduler in brackets::
31 # cat /sys/block/sda/queue/scheduler
[all …]
/OK3568_Linux_fs/buildroot/dl/qt5location/git/src/3rdparty/mapbox-gl-native/src/mbgl/actor/
H A Dscheduler.cpp1 #include <mbgl/actor/scheduler.hpp>
7 static util::ThreadLocal<Scheduler> scheduler; in current() local
8 return scheduler; in current()
11 void Scheduler::SetCurrent(Scheduler* scheduler) { in SetCurrent() argument
12 current().set(scheduler); in SetCurrent()
15 Scheduler* Scheduler::GetCurrent() { in GetCurrent()
H A Dmailbox.cpp3 #include <mbgl/actor/scheduler.hpp>
12 Mailbox::Mailbox(Scheduler& scheduler_) in Mailbox()
13 : scheduler(&scheduler_) { in Mailbox()
16 void Mailbox::open(Scheduler& scheduler_) { in open()
17 assert(!scheduler); in open()
24 scheduler = &scheduler_; in open()
31 (*scheduler)->schedule(shared_from_this()); in open()
47 bool Mailbox::isOpen() const { return bool(scheduler); } in isOpen()
60 if (wasEmpty && scheduler) { in push()
61 (*scheduler)->schedule(shared_from_this()); in push()
[all …]
/OK3568_Linux_fs/kernel/Documentation/scheduler/
H A Dsched-design-CFS.rst2 CFS Scheduler
9 CFS stands for "Completely Fair Scheduler," and is the new "desktop" process
10 scheduler implemented by Ingo Molnar and merged in Linux 2.6.23. It is the
11 replacement for the previous vanilla scheduler's SCHED_OTHER interactivity
59 previous vanilla scheduler and RSDL/SD are affected).
79 schedules (or a scheduler tick happens) the task's CPU usage is "accounted
93 other HZ detail. Thus the CFS scheduler has no notion of "timeslices" in the
94 way the previous scheduler had, and has no heuristics whatsoever. There is
99 which can be used to tune the scheduler from "desktop" (i.e., low latencies) to
101 for desktop workloads. SCHED_BATCH is handled by the CFS scheduler module too.
[all …]
H A Dsched-nice-design.rst2 Scheduler Nice Design
6 nice-levels implementation in the new Linux scheduler.
12 scheduler, (otherwise we'd have done it long ago) because nice level
16 In the O(1) scheduler (in 2003) we changed negative nice levels to be
77 With the old scheduler, if you for example started a niced task with +1
88 The new scheduler in v2.6.23 addresses all three types of complaints:
91 enough), the scheduler was decoupled from 'time slice' and HZ concepts
94 support: with the new scheduler nice +19 tasks get a HZ-independent
96 scheduler.
99 the new scheduler makes nice(1) have the same CPU utilization effect on
[all …]
/OK3568_Linux_fs/buildroot/dl/qt5location/git/src/3rdparty/mapbox-gl-native/platform/qt/src/
H A Dqmapboxgl_map_renderer.cpp11 force.setLocalData(mbgl::Scheduler::GetCurrent() == nullptr); in needsToForceScheduler()
18 static QThreadStorage<std::shared_ptr<QMapboxGLScheduler>> scheduler; in getScheduler() local
20 if (!scheduler.hasLocalData()) { in getScheduler()
21 scheduler.setLocalData(std::make_shared<QMapboxGLScheduler>()); in getScheduler()
24 return scheduler.localData().get(); in getScheduler()
32 // If we don't have a Scheduler on this thread, which in QMapboxGLMapRenderer()
34 // dummy scheduler that needs to be explicitly forced to in QMapboxGLMapRenderer()
37 auto scheduler = getScheduler(); in QMapboxGLMapRenderer() local
39 if (mbgl::Scheduler::GetCurrent() == nullptr) { in QMapboxGLMapRenderer()
40 mbgl::Scheduler::SetCurrent(scheduler); in QMapboxGLMapRenderer()
[all …]
/OK3568_Linux_fs/buildroot/dl/qt5location/git/src/3rdparty/mapbox-gl-native/include/mbgl/actor/
H A Dscheduler.hpp10 A `Scheduler` is responsible for coordinating the processing of messages by
24 * `Scheduler::GetCurrent()` is typically used to create a mailbox and `ActorRef`
26 `Actor`. The underlying implementation of this Scheduler should usually be
28 auto mailbox = std::make_shared<Mailbox>(*Scheduler::Get());
31 class Scheduler { class
33 virtual ~Scheduler() = default;
36 // be scheduled. Specifically, the scheduler is expected to asynchronously
41 // Set/Get the current Scheduler for this thread
42 static Scheduler* GetCurrent();
43 static void SetCurrent(Scheduler*);
/OK3568_Linux_fs/kernel/drivers/net/wireless/intel/iwlegacy/
H A Dprph.h236 /* 3945 Tx scheduler registers */
247 * Tx Scheduler
249 * The Tx Scheduler selects the next frame to be transmitted, choosing TFDs
275 * 1) Scheduler-Ack, in which the scheduler automatically supports a
281 * In scheduler-ack mode, the scheduler keeps track of the Tx status of
292 * 2) FIFO (a.k.a. non-Scheduler-ACK), in which each TFD is processed in order.
300 * Driver controls scheduler operation via 3 means:
301 * 1) Scheduler registers
302 * 2) Shared scheduler data base in internal 4956 SRAM
313 * the scheduler (especially for queue #4/#9, the command queue, otherwise
[all …]
/OK3568_Linux_fs/kernel/include/drm/
H A Dgpu_scheduler.h57 * Jobs from this entity can be scheduled on any scheduler
81 * ring, and the scheduler will alternate between entities based on
110 * @sched: the scheduler to which this rq belongs to.
130 * @scheduled: this fence is what will be signaled by the scheduler
136 * @finished: this fence is what will be signaled by the scheduler
154 * @sched: the scheduler instance to which the job having this struct
174 * @sched: the scheduler instance on which this job is scheduled.
178 * @id: a unique id assigned to each job scheduled on the scheduler.
180 * limit of the scheduler then the job is marked guilty and will not
187 * should call drm_sched_entity_push_job() once it wants the scheduler
[all …]
/OK3568_Linux_fs/kernel/drivers/video/rockchip/rga3/include/
H A Drga_drv.h185 /* The scheduler of the mapping */
186 struct rga_scheduler_t *scheduler; member
269 struct rga_scheduler_t *scheduler; member
308 int (*get_version)(struct rga_scheduler_t *scheduler);
309 int (*set_reg)(struct rga_job *job, struct rga_scheduler_t *scheduler);
311 void (*soft_reset)(struct rga_scheduler_t *scheduler);
312 int (*read_back_reg)(struct rga_job *job, struct rga_scheduler_t *scheduler);
313 int (*irq)(struct rga_scheduler_t *scheduler);
314 int (*isr_thread)(struct rga_job *job, struct rga_scheduler_t *scheduler);
411 struct rga_scheduler_t *scheduler[RGA_MAX_SCHEDULER]; member
[all …]

12345678910>>...49