[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, Aug 17, 2012 at 8:44 AM, Ian Campbell <Ian.Campbell@xxxxxxxxxx> wrote:
> 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.

At boot time all pages are identity mapped. I don't think we need this
mapping step for our firmware. Does that sound right?

-Jordan

_______________________________________________
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®.