Lines Matching refs:pcpu_id
20 uint16_t pcpu_id = obj->pcpu_id; in is_idle_thread() local
21 return (obj == &per_cpu(idle, pcpu_id)); in is_idle_thread()
39 void obtain_schedule_lock(uint16_t pcpu_id, uint64_t *rflag) in obtain_schedule_lock() argument
41 struct sched_control *ctl = &per_cpu(sched_ctl, pcpu_id); in obtain_schedule_lock()
45 void release_schedule_lock(uint16_t pcpu_id, uint64_t rflag) in release_schedule_lock() argument
47 struct sched_control *ctl = &per_cpu(sched_ctl, pcpu_id); in release_schedule_lock()
51 static struct acrn_scheduler *get_scheduler(uint16_t pcpu_id) in get_scheduler() argument
53 struct sched_control *ctl = &per_cpu(sched_ctl, pcpu_id); in get_scheduler()
62 return obj->pcpu_id; in sched_get_pcpuid()
65 void init_sched(uint16_t pcpu_id) in init_sched() argument
67 struct sched_control *ctl = &per_cpu(sched_ctl, pcpu_id); in init_sched()
69 per_cpu(mode_to_idle, pcpu_id) = IDLE_MODE_HLT; in init_sched()
70 per_cpu(mode_to_kick_pcpu, pcpu_id) = DEL_MODE_IPI; in init_sched()
75 ctl->pcpu_id = pcpu_id; in init_sched()
93 void deinit_sched(uint16_t pcpu_id) in deinit_sched() argument
95 struct sched_control *ctl = &per_cpu(sched_ctl, pcpu_id); in deinit_sched()
122 struct acrn_scheduler *scheduler = get_scheduler(obj->pcpu_id); in init_thread_data()
125 obtain_schedule_lock(obj->pcpu_id, &rflag); in init_thread_data()
131 release_schedule_lock(obj->pcpu_id, rflag); in init_thread_data()
136 struct acrn_scheduler *scheduler = get_scheduler(obj->pcpu_id); in deinit_thread_data()
143 struct thread_object *sched_get_current(uint16_t pcpu_id) in sched_get_current() argument
145 struct sched_control *ctl = &per_cpu(sched_ctl, pcpu_id); in sched_get_current()
152 void make_reschedule_request(uint16_t pcpu_id) in make_reschedule_request() argument
154 struct sched_control *ctl = &per_cpu(sched_ctl, pcpu_id); in make_reschedule_request()
157 if (get_pcpu_id() != pcpu_id) { in make_reschedule_request()
158 kick_pcpu(pcpu_id); in make_reschedule_request()
162 bool need_reschedule(uint16_t pcpu_id) in need_reschedule() argument
164 struct sched_control *ctl = &per_cpu(sched_ctl, pcpu_id); in need_reschedule()
171 uint16_t pcpu_id = get_pcpu_id(); in schedule() local
172 struct sched_control *ctl = &per_cpu(sched_ctl, pcpu_id); in schedule()
173 struct thread_object *next = &per_cpu(idle, pcpu_id); in schedule()
178 obtain_schedule_lock(pcpu_id, &rflag); in schedule()
204 release_schedule_lock(pcpu_id, rflag); in schedule()
207 release_schedule_lock(pcpu_id, rflag); in schedule()
213 uint16_t pcpu_id = obj->pcpu_id; in sleep_thread() local
214 struct acrn_scheduler *scheduler = get_scheduler(pcpu_id); in sleep_thread()
217 obtain_schedule_lock(pcpu_id, &rflag); in sleep_thread()
222 make_reschedule_request(pcpu_id); in sleep_thread()
227 release_schedule_lock(pcpu_id, rflag); in sleep_thread()
240 uint16_t pcpu_id = obj->pcpu_id; in wake_thread() local
244 obtain_schedule_lock(pcpu_id, &rflag); in wake_thread()
246 scheduler = get_scheduler(pcpu_id); in wake_thread()
252 make_reschedule_request(pcpu_id); in wake_thread()
256 release_schedule_lock(pcpu_id, rflag); in wake_thread()
268 obtain_schedule_lock(obj->pcpu_id, &rflag); in run_thread()
271 release_schedule_lock(obj->pcpu_id, rflag); in run_thread()