Re: Magic Page in e500v2

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 05/21/2012 07:37 AM, Aashish Mittal wrote:
> Hi Alex
> 
>> Hi Aashish,
>>
>> On 05/21/2012 01:51 PM, Aashish Mittal wrote:
>>> Hi
>>> I'm working on KVM optimizations on Powerpc e500v2 embedded
>>> architecture. For my
>>> project i'm trying to increase the size of shared region mapped my Magic
>>> Page
>>> between host and guest for paravirtual support. I was expecting this
>>> would
>>> possible since we are using a TLB1 entry to map the magic page entry
>>> inside the
>>> host. I'm trying to increase it's size to 1MB. I've declared a shared
>>> structure
>>> tcache of 1MB similar to vcpu->arch.shared and trying to map it in the
>>> guest
>>> virtual space. The shared page earlier is now the last page of this
>>> tcache
>>> structure.
>>>
>>> This is the modified code :
>>>
>>> Initialization in e500.c in function kvmppc_core_vcpu_create
>>>
>>>          shared = (void*)__get_free_pages(GFP_KERNEL|__GFP_ZERO,10);
>>>          vcpu->arch.tcache = (void*)(shared);
>>>          vcpu->arch.shared = (void*)(shared + (((1<<
>>> 10)-1)<<PAGE_SHIFT));
>>
>> Did you also change the shared page elements to still be within the
>> first page? Otherwise the offset wouldn't fit into the immediate fields
>> of the asm instructions. We can't reach as low as -1MB with all
>> operations.
> 
> Since i'm keeping the shared(magic page) to be as the last page of this 1
> MB section and trying to map the guest virtual address from 0xfff00000 to
> 0xffffffff while setting magic.mas2. Won't the magic page remain at it's
> original location i.e 0xfffff000 ?

The magic page API lets the guest specify the address.  You can't know
whether the guest is going to put it at the beginning or the end of the
address space, and thus you can't know whether to keep the current magic
page contents at the beginning or the end.  If you really need this it
should be a separate region set up by a separate hcall -- it would be
simpler that way even if this is just a local project not intended for
upstream (and thus ABI breakage isn't a big deal).

Why do you need such a large shared area?

> I've not changed anything on the shared page yet so the believe all the
> elements would remain to be on the first page ,

I thought you just said you put them on the last page.

Have you double checked to make sure all relevant code is agreeing on
exactly where the traditional magic area is, and that it is where you
think it is?  Look at the actual instruction rewriting, check the values
KVM is seeing, etc.

-Scott

--
To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [KVM Development]     [KVM ARM]     [KVM ia64]     [Linux Virtualization]     [Linux USB Devel]     [Linux Video]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux