Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1236151

[PATCH v5 14/22] xen/grant-table: Make it running on 64KB granularity

From Julien Grall <julien.grall@citrix.com>
Newsgroups linux.kernel
Subject [PATCH v5 14/22] xen/grant-table: Make it running on 64KB granularity
Date 2015-09-30 13:00 +0200
Message-ID <qenh8-2Ko-27@gated-at.bofh.it> (permalink)
References <qen7r-2yO-3@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


The Xen interface is using 4KB page granularity. This means that each
grant is 4KB.

The current implementation allocates a Linux page per grant. On Linux
using 64KB page granularity, only the first 4KB of the page will be
used.

We could decrease the memory wasted by sharing the page with multiple
grant. It will require some care with the {Set,Clear}ForeignPage macro.

Note that no changes has been made in the x86 code because both Linux
and Xen will only use 4KB page granularity.

Signed-off-by: Julien Grall <julien.grall@citrix.com>
Reviewed-by: David Vrabel <david.vrabel@citrix.com>
Reviewed-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>

---
Cc: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>

    Changes in v3:
        - Add Stefano's reviewed-by

    Changes in v2
        - Add David's reviewed-by
---
 arch/arm/xen/p2m.c        | 6 +++---
 drivers/xen/grant-table.c | 6 +++---
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/arch/arm/xen/p2m.c b/arch/arm/xen/p2m.c
index 887596c..0ed01f2 100644
--- a/arch/arm/xen/p2m.c
+++ b/arch/arm/xen/p2m.c
@@ -93,8 +93,8 @@ int set_foreign_p2m_mapping(struct gnttab_map_grant_ref *map_ops,
 	for (i = 0; i < count; i++) {
 		if (map_ops[i].status)
 			continue;
-		set_phys_to_machine(map_ops[i].host_addr >> PAGE_SHIFT,
-				    map_ops[i].dev_bus_addr >> PAGE_SHIFT);
+		set_phys_to_machine(map_ops[i].host_addr >> XEN_PAGE_SHIFT,
+				    map_ops[i].dev_bus_addr >> XEN_PAGE_SHIFT);
 	}
 
 	return 0;
@@ -108,7 +108,7 @@ int clear_foreign_p2m_mapping(struct gnttab_unmap_grant_ref *unmap_ops,
 	int i;
 
 	for (i = 0; i < count; i++) {
-		set_phys_to_machine(unmap_ops[i].host_addr >> PAGE_SHIFT,
+		set_phys_to_machine(unmap_ops[i].host_addr >> XEN_PAGE_SHIFT,
 				    INVALID_P2M_ENTRY);
 	}
 
diff --git a/drivers/xen/grant-table.c b/drivers/xen/grant-table.c
index dbeaa67..72d6339 100644
--- a/drivers/xen/grant-table.c
+++ b/drivers/xen/grant-table.c
@@ -642,7 +642,7 @@ int gnttab_setup_auto_xlat_frames(phys_addr_t addr)
 	if (xen_auto_xlat_grant_frames.count)
 		return -EINVAL;
 
-	vaddr = xen_remap(addr, PAGE_SIZE * max_nr_gframes);
+	vaddr = xen_remap(addr, XEN_PAGE_SIZE * max_nr_gframes);
 	if (vaddr == NULL) {
 		pr_warn("Failed to ioremap gnttab share frames (addr=%pa)!\n",
 			&addr);
@@ -654,7 +654,7 @@ int gnttab_setup_auto_xlat_frames(phys_addr_t addr)
 		return -ENOMEM;
 	}
 	for (i = 0; i < max_nr_gframes; i++)
-		pfn[i] = PFN_DOWN(addr) + i;
+		pfn[i] = XEN_PFN_DOWN(addr) + i;
 
 	xen_auto_xlat_grant_frames.vaddr = vaddr;
 	xen_auto_xlat_grant_frames.pfn = pfn;
@@ -1004,7 +1004,7 @@ static void gnttab_request_version(void)
 {
 	/* Only version 1 is used, which will always be available. */
 	grant_table_version = 1;
-	grefs_per_grant_frame = PAGE_SIZE / sizeof(struct grant_entry_v1);
+	grefs_per_grant_frame = XEN_PAGE_SIZE / sizeof(struct grant_entry_v1);
 	gnttab_interface = &gnttab_v1_ops;
 
 	pr_info("Grant tables using version %d layout\n", grant_table_version);
-- 
2.1.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH v5 00/22] xen/arm64: Add support for 64KB page in Linux Julien Grall <julien.grall@citrix.com> - 2015-09-30 12:50 +0200
  [PATCH v5 02/22] arm/xen: Drop pte_mfn and mfn_pte Julien Grall <julien.grall@citrix.com> - 2015-09-30 12:50 +0200
  [PATCH v5 07/22] block/xen-blkfront: Store a page rather a pfn in the grant structure Julien Grall <julien.grall@citrix.com> - 2015-09-30 12:50 +0200
  [PATCH v5 09/22] xen/biomerge: Don't allow biovec's to be merged when Linux is not using 4KB pages Julien Grall <julien.grall@citrix.com> - 2015-09-30 12:50 +0200
  [PATCH v5 20/22] arm/xen: Add support for 64KB page granularity Julien Grall <julien.grall@citrix.com> - 2015-09-30 13:00 +0200
  [PATCH v5 10/22] xen/xenbus: Use Xen page definition Julien Grall <julien.grall@citrix.com> - 2015-09-30 13:00 +0200
  [PATCH v5 16/22] block/xen-blkback: Make it running on 64KB page granularity Julien Grall <julien.grall@citrix.com> - 2015-09-30 13:00 +0200
  [PATCH v5 11/22] tty/hvc: xen: Use xen page definition Julien Grall <julien.grall@citrix.com> - 2015-09-30 13:00 +0200
  [PATCH v5 22/22] xen/swiotlb: Add support for 64KB page granularity Julien Grall <julien.grall@citrix.com> - 2015-09-30 13:00 +0200
  [PATCH v5 19/22] xen/privcmd: Add support for Linux 64KB page granularity Julien Grall <julien.grall@citrix.com> - 2015-09-30 13:00 +0200
  [PATCH v5 17/22] net/xen-netfront: Make it running on 64KB page granularity Julien Grall <julien.grall@citrix.com> - 2015-09-30 13:00 +0200
  [PATCH v5 14/22] xen/grant-table: Make it running on 64KB granularity Julien Grall <julien.grall@citrix.com> - 2015-09-30 13:00 +0200
  [PATCH v5 12/22] xen/balloon: Don't rely on the page granularity is the same for Xen and Linux Julien Grall <julien.grall@citrix.com> - 2015-09-30 13:00 +0200
    Re: [PATCH v5 12/22] xen/balloon: Don't rely on the page granularity  is the same for Xen and Linux David Vrabel <david.vrabel@citrix.com> - 2015-10-02 16:10 +0200
      Re: [PATCH v5 12/22] xen/balloon: Don't rely on the page granularity  is the same for Xen and Linux Julien Grall <julien.grall@citrix.com> - 2015-10-02 16:40 +0200
        Re: [PATCH v5 12/22] xen/balloon: Don't rely on the page granularity  is the same for Xen and Linux Julien Grall <julien.grall@citrix.com> - 2015-10-02 17:00 +0200
          Re: [PATCH v5 12/22] xen/balloon: Don't rely on the page granularity  is the same for Xen and Linux Boris Ostrovsky <boris.ostrovsky@oracle.com> - 2015-10-02 17:20 +0200
          Re: [Xen-devel] [PATCH v5 12/22] xen/balloon: Don't rely on the page  granularity is the same for Xen and Linux David Vrabel <david.vrabel@citrix.com> - 2015-10-02 17:20 +0200
  [PATCH v5 15/22] block/xen-blkfront: Make it running on 64KB page granularity Julien Grall <julien.grall@citrix.com> - 2015-09-30 13:00 +0200
  [PATCH v5 13/22] xen/events: fifo: Make it running on 64KB granularity Julien Grall <julien.grall@citrix.com> - 2015-09-30 13:00 +0200
  [PATCH v5 21/22] xen/swiotlb: Pass addresses rather than frame numbers to xen_arch_need_swiotlb Julien Grall <julien.grall@citrix.com> - 2015-09-30 13:00 +0200
  [PATCH v5 18/22] net/xen-netback: Make it running on 64KB page granularity Julien Grall <julien.grall@citrix.com> - 2015-09-30 13:00 +0200
  Re: [PATCH v5 00/22] xen/arm64: Add support for 64KB page in Linux Mark Rutland <mark.rutland@arm.com> - 2015-09-30 13:40 +0200
    Re: [PATCH v5 00/22] xen/arm64: Add support for 64KB page in Linux Julien Grall <julien.grall@citrix.com> - 2015-09-30 13:50 +0200
      Re: [PATCH v5 00/22] xen/arm64: Add support for 64KB page in Linux Mark Rutland <mark.rutland@arm.com> - 2015-09-30 15:10 +0200
  Re: [Xen-devel] [PATCH v5 00/22] xen/arm64: Add support for 64KB  page in Linux David Vrabel <david.vrabel@citrix.com> - 2015-10-01 17:20 +0200

csiph-web