[PATCH 07/10] KVM: PPC: Add PAPR hypercall code for PR mode
Alexander Graf
agraf at suse.de
Wed Aug 10 02:46:36 EST 2011
On 08/09/2011 06:40 PM, Avi Kivity wrote:
> On 08/09/2011 07:31 PM, Alexander Graf wrote:
>> When running a PAPR guest, we need to handle a few hypercalls in
>> kernel space,
>> most prominently the page table invalidation (to sync the shadows).
>>
>> So this patch adds handling for a few PAPR hypercalls to PR mode KVM.
>> I tried
>> to share the code with HV mode, but it ended up being a lot easier
>> this way
>> around, as the two differ too much in those details.
>>
>>
>> +++ b/arch/powerpc/kvm/book3s_pr_papr.c
>> @@ -0,0 +1,158 @@
>> +/*
>> + * Copyright (C) 2011. Freescale Inc. All rights reserved.
>> + *
>> + * Authors:
>> + * Alexander Graf<agraf at suse.de>
>> + * Paul Mackerras<paulus at samba.org>
>> + *
>> + * Description:
>> + *
>> + * Hypercall handling for running PAPR guests in PR KVM on Book 3S
>> + * processors.
>> + *
>> + * This program is free software; you can redistribute it and/or modify
>> + * it under the terms of the GNU General Public License, version 2, as
>> + * published by the Free Software Foundation.
>> + */
>
> Copyright freescale, authors Paul and yourself?
Yeah, I'm reasonably clueless when it comes to legal stuff. This code is
inspired by Paul's, but is mostly rewritten since it's so tied into the
virtual MMU. What would the copyright be in that case?
>
>> +
>> +static unsigned long get_pteg_addr(struct kvm_vcpu *vcpu, long
>> pte_index)
>> +{
>> + struct kvmppc_vcpu_book3s *vcpu_book3s = to_book3s(vcpu);
>> + unsigned long pteg_addr;
>> +
>> + pte_index<<= 4;
>> + pte_index&= ((1<< ((vcpu_book3s->sdr1& 0x1f) + 11)) - 1)<< 7
>> | 0x70;
>> + pteg_addr = vcpu_book3s->sdr1& 0xfffffffffffc0000ULL;
>> + pteg_addr |= pte_index;
>> +
>> + return pteg_addr;
>> +}
>
> Evil space crept in.
Oh noez! Fixed it :)
Alex
More information about the Linuxppc-dev
mailing list