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

Re: [Xen-devel] [PATCH v2 19/20] xen/privcmd: Add support for Linux 64KB page granularity



On 07/09/2015 04:42 PM, Julien Grall wrote:
-
  struct remap_data {
        xen_pfn_t *fgmfn; /* foreign domain's gmfn */
+       xen_pfn_t *efgmfn; /* pointer to the end of the fgmfn array */

It might be better to keep size of fgmfn array instead.



+static int unmap_gfn(struct page *page, unsigned long pfn, void *data)
+{
+       int *nr = data;
+       struct xen_remove_from_physmap xrp;
+
+       /* The Linux Page may not have been fully mapped to Xen */
+       if (!*nr)
+               return 0;
+
+       xrp.domid = DOMID_SELF;
+       xrp.gpfn = pfn;
+       (void)HYPERVISOR_memory_op(XENMEM_remove_from_physmap, &xrp);
+
+       (*nr)--;
+
+       return 0;
+}
+
  int xen_xlate_unmap_gfn_range(struct vm_area_struct *vma,
                              int nr, struct page **pages)
  {
        int i;
+       int nr_page = round_up(nr, XEN_PFN_PER_PAGE);
- for (i = 0; i < nr; i++) {
-               struct xen_remove_from_physmap xrp;
-               unsigned long pfn;
+       for (i = 0; i < nr_page; i++) {
+               /* unmap_gfn guarantees ret == 0 */
+               BUG_ON(xen_apply_to_page(pages[i], unmap_gfn, &nr));


TBH, I am not sure how useful xen_apply_to_page() routine is. In this patch especially, but also in others.

-boris


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