Lines Matching refs:st
2409 static void consider(balance_state_t *st, in consider() argument
2415 l_load = st->lrqd->b_avgload; in consider()
2416 o_load = st->orqd->b_avgload; in consider()
2434 if ( delta < st->load_delta ) in consider()
2436 st->load_delta = delta; in consider()
2437 st->best_push_svc=push_svc; in consider()
2438 st->best_pull_svc=pull_svc; in consider()
2533 balance_state_t st = { .best_push_svc = NULL, .best_pull_svc = NULL }; in balance_load() local
2543 st.lrqd = c2rqd(ops, cpu); in balance_load()
2545 update_runq_load(ops, st.lrqd, 0, now); in balance_load()
2551 st.load_delta = 0; in balance_load()
2557 st.orqd = prv->rqd + i; in balance_load()
2559 if ( st.orqd == st.lrqd in balance_load()
2560 || !spin_trylock(&st.orqd->lock) ) in balance_load()
2563 update_runq_load(ops, st.orqd, 0, now); in balance_load()
2565 delta = st.lrqd->b_avgload - st.orqd->b_avgload; in balance_load()
2569 if ( delta > st.load_delta ) in balance_load()
2571 st.load_delta = delta; in balance_load()
2575 spin_unlock(&st.orqd->lock); in balance_load()
2588 load_max = st.lrqd->b_avgload; in balance_load()
2589 if ( st.orqd->b_avgload > load_max ) in balance_load()
2590 load_max = st.orqd->b_avgload; in balance_load()
2592 cpus_max = cpumask_weight(&st.lrqd->active); in balance_load()
2593 i = cpumask_weight(&st.orqd->active); in balance_load()
2603 d.lrq_id = st.lrqd->id; in balance_load()
2604 d.orq_id = st.orqd->id; in balance_load()
2605 d.load_delta = st.load_delta; in balance_load()
2617 if ( st.load_delta < (1ULL << (prv->load_precision_shift + in balance_load()
2622 if ( st.load_delta < (1ULL << (prv->load_precision_shift + in balance_load()
2631 st.orqd = prv->rqd + max_delta_rqi; in balance_load()
2632 if ( !spin_trylock(&st.orqd->lock) ) in balance_load()
2636 if ( unlikely(st.orqd->id < 0) ) in balance_load()
2645 d.lrq_id = st.lrqd->id; in balance_load()
2646 d.lb_avgload = st.lrqd->b_avgload; in balance_load()
2647 d.orq_id = st.orqd->id; in balance_load()
2648 d.ob_avgload = st.orqd->b_avgload; in balance_load()
2660 list_for_each( push_iter, &st.lrqd->svc ) in balance_load()
2666 if ( !vcpu_is_migrateable(push_svc, st.orqd) ) in balance_load()
2669 list_for_each( pull_iter, &st.orqd->svc ) in balance_load()
2676 if ( !vcpu_is_migrateable(pull_svc, st.lrqd) ) in balance_load()
2679 consider(&st, push_svc, pull_svc); in balance_load()
2685 consider(&st, push_svc, NULL); in balance_load()
2688 list_for_each( pull_iter, &st.orqd->svc ) in balance_load()
2692 if ( !vcpu_is_migrateable(pull_svc, st.lrqd) ) in balance_load()
2696 consider(&st, NULL, pull_svc); in balance_load()
2700 if ( st.best_push_svc ) in balance_load()
2701 migrate(ops, st.best_push_svc, st.orqd, now); in balance_load()
2702 if ( st.best_pull_svc ) in balance_load()
2703 migrate(ops, st.best_pull_svc, st.lrqd, now); in balance_load()
2706 spin_unlock(&st.orqd->lock); in balance_load()