> Am 12.08.2014 um 01:36 schrieb Scott Wood <scottwood@xxxxxxxxxxxxx>: > >> 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. Alex -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html