| /OK3568_Linux_fs/kernel/drivers/gpu/arm/bifrost/csf/ |
| H A D | mali_kbase_csf_scheduler.c | 40 /* 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 D | mali_kbase_csf_scheduler.h | 40 * 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 D | mali_kbase_csf_tiler_heap_reclaim.c | 59 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 D | rve_job.c | 15 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 D | rve_reg.c | 13 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 D | rve_drv.c | 46 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 D | ip_vs_sched.c | 29 * 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 D | sched_policy.c | 134 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 D | rga_job.c | 151 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 D | rga_drv.c | 330 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 D | rga_policy.c | 226 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 D | rga_iommu.c | 61 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 D | rga_mm.c | 312 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 D | rga2_reg_info.c | 1925 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 D | sched_main.c | 27 * 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 D | switching-sched.rst | 2 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 D | scheduler.cpp | 1 #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 D | mailbox.cpp | 3 #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 D | sched-design-CFS.rst | 2 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 D | sched-nice-design.rst | 2 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 D | qmapboxgl_map_renderer.cpp | 11 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 D | scheduler.hpp | 10 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 D | prph.h | 236 /* 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 D | gpu_scheduler.h | 57 * 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 D | rga_drv.h | 185 /* 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 …]
|