Re: [PATCH] KVM: PPC: e500mc: Add support for single threaded vcpus on e6500 core
From: Scott Wood <hidden>
Date: 2014-08-11 23:56:34
Also in:
kvm
On Tue, 2014-08-12 at 01:53 +0200, Alexander Graf wrote:
quoted
Am 12.08.2014 um 01:36 schrieb Scott Wood [off-list ref]:quoted
On Wed, 2014-08-06 at 19:33 +0300, Mihai Caraman wrote:@@ -390,19 +400,30 @@ static void kvmppc_core_vcpu_free_e500mc(struct kvm_vcpu *vcpu)static int kvmppc_core_init_vm_e500mc(struct kvm *kvm) { - int lpid; + int i, lpid; - lpid = kvmppc_alloc_lpid(); - if (lpid < 0) - return lpid; + /* The lpid pool supports only 2 entries now */ + if (threads_per_core > 2) + return -ENOMEM; + + /* Each VM allocates one LPID per HW thread index */ + for (i = 0; i < threads_per_core; i++) { + lpid = kvmppc_alloc_lpid(); + if (lpid < 0) + return lpid; + + kvm->arch.lpid_pool[i] = lpid; + }Wouldn't it be simpler to halve the size of the lpid pool that the allocator sees, and just OR in the high bit based on the low bit of the cpu number?Heh, I wrote the same and then removed the section from my reply again. It wouldn't really make that much of a difference if you think it through completely. But yes, it certainly would be quite a bit more natural. I'm ok either way.
It's not a huge difference, but it would at least get rid of some of the ifdeffing in the headers. It'd also be nicer when debugging to have the LPIDs correlated. -Scott