mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-06-02 20:35:32 +00:00
scheduler: refine make_reschedule_request
just use pcpu_id for make_reschedule_request is enough Tracked-On: #1842 Signed-off-by: Jason Chen CJ <jason.cj.chen@intel.com> Acked-by: Anthony Xu <anthony.xu@intel.com> Acked-by: Eddie Dong <edide.dong@intel.com>
This commit is contained in:
parent
6d67364881
commit
8aae0dff87
@ -573,7 +573,7 @@ void pause_vcpu(struct acrn_vcpu *vcpu, enum vcpu_state new_state)
|
||||
|
||||
if (atomic_load32(&vcpu->running) == 1U) {
|
||||
remove_from_cpu_runqueue(&vcpu->sched_obj, vcpu->pcpu_id);
|
||||
make_reschedule_request(vcpu);
|
||||
make_reschedule_request(vcpu->pcpu_id);
|
||||
release_schedule_lock(vcpu->pcpu_id);
|
||||
|
||||
if (vcpu->pcpu_id != pcpu_id) {
|
||||
@ -595,7 +595,7 @@ void resume_vcpu(struct acrn_vcpu *vcpu)
|
||||
|
||||
if (vcpu->state == VCPU_RUNNING) {
|
||||
add_to_cpu_runqueue(&vcpu->sched_obj, vcpu->pcpu_id);
|
||||
make_reschedule_request(vcpu);
|
||||
make_reschedule_request(vcpu->pcpu_id);
|
||||
}
|
||||
release_schedule_lock(vcpu->pcpu_id);
|
||||
}
|
||||
@ -607,7 +607,7 @@ void schedule_vcpu(struct acrn_vcpu *vcpu)
|
||||
|
||||
get_schedule_lock(vcpu->pcpu_id);
|
||||
add_to_cpu_runqueue(&vcpu->sched_obj, vcpu->pcpu_id);
|
||||
make_reschedule_request(vcpu);
|
||||
make_reschedule_request(vcpu->pcpu_id);
|
||||
release_schedule_lock(vcpu->pcpu_id);
|
||||
}
|
||||
|
||||
|
@ -106,13 +106,13 @@ static struct acrn_vcpu *select_next_vcpu(uint16_t pcpu_id)
|
||||
return vcpu;
|
||||
}
|
||||
|
||||
void make_reschedule_request(const struct acrn_vcpu *vcpu)
|
||||
void make_reschedule_request(uint16_t pcpu_id)
|
||||
{
|
||||
struct sched_context *ctx = &per_cpu(sched_ctx, vcpu->pcpu_id);
|
||||
struct sched_context *ctx = &per_cpu(sched_ctx, pcpu_id);
|
||||
|
||||
bitmap_set_lock(NEED_RESCHEDULE, &ctx->flags);
|
||||
if (get_cpu_id() != vcpu->pcpu_id) {
|
||||
send_single_ipi(vcpu->pcpu_id, VECTOR_NOTIFY_VCPU);
|
||||
if (get_cpu_id() != pcpu_id) {
|
||||
send_single_ipi(pcpu_id, VECTOR_NOTIFY_VCPU);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -35,7 +35,7 @@ void remove_from_cpu_runqueue(struct sched_object *obj, uint16_t pcpu_id);
|
||||
|
||||
void default_idle(void);
|
||||
|
||||
void make_reschedule_request(const struct acrn_vcpu *vcpu);
|
||||
void make_reschedule_request(uint16_t pcpu_id);
|
||||
int32_t need_reschedule(uint16_t pcpu_id);
|
||||
void make_pcpu_offline(uint16_t pcpu_id);
|
||||
int32_t need_offline(uint16_t pcpu_id);
|
||||
|
Loading…
Reference in New Issue
Block a user