[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH RFC] p2m: use GNTTABOP_unmap_and_duplicate if available
On 31/07/13 17:07, Roger Pau Monne wrote: > The new GNTTABOP_unmap_and_duplicate operation doesn't zero the > mapping passed in new_addr, allowing us to perform batch unmaps in p2m > code without requiring the use of a multicall. Thanks. This looks like it should be a good performance improvement for userspace-based backends. Do you have any performance measurements for (e.g.) qemu's disk backend? > --- a/arch/x86/xen/p2m.c > +++ b/arch/x86/xen/p2m.c [...] > +int m2p_remove_override_batch(struct page **pages, > + struct gnttab_map_grant_ref *kmap_ops, int count) > +{ Is it possible to refactor this function and m2p_remove_override_single() to share some common helper functions? > + struct gnttab_unmap_and_duplicate *unmap_ops = NULL; > + unsigned long *mfn = kcalloc(count, sizeof(mfn[0]), GFP_KERNEL); > + unsigned long flags; > + unsigned long pfn; > + unsigned long uninitialized_var(address); > + unsigned level; > + struct page *page; > + pte_t *ptep = NULL; > + int ret = 0, i; > + > + > + for (i = 0; i < count; i++) { > + page = pages[i]; > + pfn = page_to_pfn(page); The bits in this loop... [...] > + for (i = 0; i < count; i++) { > + /* p2m(m2p(mfn)) == FOREIGN_FRAME(mfn): the mfn is already > present > + * somewhere in this domain, even before being added to the ... and this one look they should be common between the two. David _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |