> Am 12.08.2014 um 01:36 schrieb Scott Wood <scottw...@freescale.com>: > >> 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 _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev