Lines Matching refs:cip
2802 static void init_core_info(struct core_info *cip, struct kvmppc_vcore *vc)
2804 memset(cip, 0, sizeof(*cip));
2805 cip->n_subcores = 1;
2806 cip->max_subcore_threads = vc->num_threads;
2807 cip->total_threads = vc->num_threads;
2808 cip->subcore_threads[0] = vc->num_threads;
2809 cip->vc[0] = vc;
2845 static bool can_dynamic_split(struct kvmppc_vcore *vc, struct core_info *cip)
2854 if (one_vm_per_core && vc->kvm != cip->vc[0]->kvm)
2859 kvm_is_radix(vc->kvm) != kvm_is_radix(cip->vc[0]->kvm))
2862 if (n_threads < cip->max_subcore_threads)
2863 n_threads = cip->max_subcore_threads;
2864 if (!subcore_config_ok(cip->n_subcores + 1, n_threads))
2866 cip->max_subcore_threads = n_threads;
2868 sub = cip->n_subcores;
2869 ++cip->n_subcores;
2870 cip->total_threads += vc->num_threads;
2871 cip->subcore_threads[sub] = vc->num_threads;
2872 cip->vc[sub] = vc;
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);
2911 static void collect_piggybacks(struct core_info *cip, int target_threads)
2930 if (!can_piggyback(pvc, cip, target_threads)) {
2936 if (cip->total_threads >= target_threads)
2942 static bool recheck_signals_and_mmu(struct core_info *cip)
2948 for (sub = 0; sub < cip->n_subcores; ++sub) {
2949 vc = cip->vc[sub];