Lines Matching defs:pvc
2881 * vcore *pvc onto the execution of the other vcores described in *cip.
2883 static bool can_piggyback(struct kvmppc_vcore *pvc, struct core_info *cip,
2886 if (cip->total_threads + pvc->num_threads > target_threads)
2889 return can_dynamic_split(pvc, cip);
2914 struct kvmppc_vcore *pvc, *vcnext;
2917 list_for_each_entry_safe(pvc, vcnext, &lp->list, preempt_list) {
2918 if (!spin_trylock(&pvc->lock))
2920 prepare_threads(pvc);
2921 if (!pvc->n_runnable || !pvc->kvm->arch.mmu_ready) {
2922 list_del_init(&pvc->preempt_list);
2923 if (pvc->runner == NULL) {
2924 pvc->vcore_state = VCORE_INACTIVE;
2925 kvmppc_core_end_stolen(pvc);
2927 spin_unlock(&pvc->lock);
2930 if (!can_piggyback(pvc, cip, target_threads)) {
2931 spin_unlock(&pvc->lock);
2934 kvmppc_core_end_stolen(pvc);
2935 pvc->vcore_state = VCORE_PIGGYBACK;
3094 struct kvmppc_vcore *pvc;
3190 pvc = core_info.vc[sub];
3192 kvmppc_vcore_preempt(pvc);
3193 spin_unlock(&pvc->lock);
3294 pvc = core_info.vc[sub];
3295 pvc->pcpu = pcpu + thr;
3296 for_each_runnable_thread(i, vcpu, pvc) {
3297 kvmppc_start_thread(vcpu, pvc);
3298 kvmppc_create_dtl_entry(vcpu, pvc);
3309 kvmppc_start_thread(NULL, pvc);
3435 pvc = core_info.vc[sub];
3436 post_guest_process(pvc, pvc == vc);