[PATCH] KVM: PPC: e500mc: Add support for single threaded vcpus on e6500 core

Alexander Graf agraf at suse.de
Tue Aug 12 09:53:52 EST 2014



> Am 12.08.2014 um 01:36 schrieb Scott Wood <scottwood at 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



More information about the Linuxppc-dev mailing list