[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 18:08 +0100, Jordan Justen wrote:
> 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?

In that case you can skip the page table setup bit, you just need the
step where you add the grant table to your physical address space.

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