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

Re: [Xen-devel] [PATCH 03 of 16] amd iommu: Add iommu emulation for hvm guest



On Thursday 15 December 2011 15:13:57 Jan Beulich wrote:
> >>> On 15.12.11 at 15:09, Wei Wang2 <wei.wang2@xxxxxxx> wrote:
> >
> > On Thursday 15 December 2011 14:35:55 Tim Deegan wrote:
> >> Hi,
> >>
> >> At 16:29 +0100 on 14 Dec (1323880164), Wei Wang wrote:
> >> > +static struct page_info* guest_iommu_get_page(struct list_head
> >> > *pglist, +                                              unsigned int
> >> > entry_size, +                                              unsigned
> >> > int pos) +{
> >> > +    int idx;
> >> > +    struct list_head *head;
> >> > +    struct guest_pages *gpage = NULL;
> >> > +
> >> > +    idx = (pos * entry_size) >> PAGE_SHIFT;
> >> > +    list_for_each( head, pglist )
> >> > +    {
> >> > +        gpage = list_entry(head, struct guest_pages, list);
> >> > +        if ( (--idx) < 0 )
> >> > +            break;
> >> > +    }
> >>
> >> Given that you allocate all these elements together, and free them, all
> >> together, why not just use an array instead of a linked list?
> >>
> >> Cheers,
> >>
> >> Tim.
> >
> > The numbers of element might be variant. But array should also work,
> > considering iommu tables has max. length of 2MB, the array length is
> > small.
>
> Small enough so the array would fit in a single page?
>
> Jan

Well...then, How about that I just save the first gfn of the table base 
address and mapping gfn + n dynamically? Since all gfns for iommu tables must 
be contiguous guest space..

Thanks,
Wei


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

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