Lines Matching refs:pvc
2835 static bool can_piggyback(struct kvmppc_vcore *pvc, struct core_info *cip, in can_piggyback() argument
2838 if (cip->total_threads + pvc->num_threads > target_threads) in can_piggyback()
2841 return can_dynamic_split(pvc, cip); in can_piggyback()
2866 struct kvmppc_vcore *pvc, *vcnext; in collect_piggybacks() local
2869 list_for_each_entry_safe(pvc, vcnext, &lp->list, preempt_list) { in collect_piggybacks()
2870 if (!spin_trylock(&pvc->lock)) in collect_piggybacks()
2872 prepare_threads(pvc); in collect_piggybacks()
2873 if (!pvc->n_runnable || !pvc->kvm->arch.mmu_ready) { in collect_piggybacks()
2874 list_del_init(&pvc->preempt_list); in collect_piggybacks()
2875 if (pvc->runner == NULL) { in collect_piggybacks()
2876 pvc->vcore_state = VCORE_INACTIVE; in collect_piggybacks()
2877 kvmppc_core_end_stolen(pvc); in collect_piggybacks()
2879 spin_unlock(&pvc->lock); in collect_piggybacks()
2882 if (!can_piggyback(pvc, cip, target_threads)) { in collect_piggybacks()
2883 spin_unlock(&pvc->lock); in collect_piggybacks()
2886 kvmppc_core_end_stolen(pvc); in collect_piggybacks()
2887 pvc->vcore_state = VCORE_PIGGYBACK; in collect_piggybacks()
3046 struct kvmppc_vcore *pvc; in kvmppc_run_core() local
3142 pvc = core_info.vc[sub]; in kvmppc_run_core()
3144 kvmppc_vcore_preempt(pvc); in kvmppc_run_core()
3145 spin_unlock(&pvc->lock); in kvmppc_run_core()
3246 pvc = core_info.vc[sub]; in kvmppc_run_core()
3247 pvc->pcpu = pcpu + thr; in kvmppc_run_core()
3248 for_each_runnable_thread(i, vcpu, pvc) { in kvmppc_run_core()
3249 kvmppc_start_thread(vcpu, pvc); in kvmppc_run_core()
3250 kvmppc_create_dtl_entry(vcpu, pvc); in kvmppc_run_core()
3261 kvmppc_start_thread(NULL, pvc); in kvmppc_run_core()
3373 pvc = core_info.vc[sub]; in kvmppc_run_core()
3374 post_guest_process(pvc, pvc == vc); in kvmppc_run_core()