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

Re: [Xen-devel] How to initialize the grant table in a HVM guest OS and its bios



On Fri, 2012-08-17 at 16:31 +0100, Bei Guan wrote:
> 
> 2012/8/8 Ian Campbell <Ian.Campbell@xxxxxxxxxx>
>         On Wed, 2012-08-08 at 16:48 +0100, Bei Guan wrote:
>         
>         > Thank you very much for your help.
>         > Is there any example code of initialization of grant table
>         in HVM that
>         > I can refer to?
>         
>         
>         The PVHVM support in upstream Linux would be a good place to
>         look.
>         
>         So might the code in the xen tree in
>         unmodified_drivers/linux-2.6/
>         
>         IIRC Daniel got grant tables working in SeaBIOS last summer
>         for GSoC so
>         you might also find some useful examples in
>         git://github.com/evildani/seabios_patch.git
> Hi Ian,
> 
> 
> Thank you very much for this information. It's very useful to me.
> 
> 
> However, I'm still confused with the initialization of the grant table
> in HVM. 
> 
> 
> The relationship of the methods in the initialization of the grant
> table in linux source code (driver/xen) is:
> platform_pci_init()-->gnttab_init()-->gnttab_resume()-->gnttab_map()-->arch_gnttab_map_shared()-->apply_to_page_range().
> 
> 
> So, I am not sure that what's the function of the method
> apply_to_page_range(), which is implemented in code file [1]. 
> This function is a little complex. Is there any simple method to do
> this? Thank you for your time.

This function is the simple method ;-)

All it basically does is iterate over the page tables corresponding to a
range of addresses and calling a user supplied function on each leaf
PTE. In the case of the gnttab_map this user supplied function simply
sets the leaf PTEs to point to the right grant table page.

I suppose you are working on tianocore? I've no idea what the page table
layout is in that environment, I suppose it either has a linear map or
some other way of getting at the leaf ptes. Anyway since the method to
use is specific to the OS (or firmware) environment you are running in I
think you'll have to ask on the tianocore development list.

Ian.



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.