[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH RESEND] ivshmem: allow the sharing of hugepages
From: |
Damien Millescamps |
Subject: |
[Qemu-devel] [PATCH RESEND] ivshmem: allow the sharing of hugepages |
Date: |
Mon, 16 Sep 2013 14:56:15 +0200 |
This patch permits to share memory areas that do not specifically belong to
/dev/shm. In such case, the file must be already present when launching qemu.
A use case for this patch is sharing huge pages available through a
hugetlbfs mountpoint.
Signed-off-by: Damien Millescamps <address@hidden>
---
docs/specs/ivshmem_device_spec.txt | 5 +++--
hw/misc/ivshmem.c | 10 +++++++---
2 files changed, 10 insertions(+), 5 deletions(-)
diff --git a/docs/specs/ivshmem_device_spec.txt
b/docs/specs/ivshmem_device_spec.txt
index 667a862..3137e60 100644
--- a/docs/specs/ivshmem_device_spec.txt
+++ b/docs/specs/ivshmem_device_spec.txt
@@ -4,8 +4,9 @@ Device Specification for Inter-VM shared memory device
The Inter-VM shared memory device is designed to share a region of memory to
userspace in multiple virtual guests. The memory region does not belong to any
-guest, but is a POSIX memory object on the host. Optionally, the device may
-support sending interrupts to other guests sharing the same memory region.
+guest, but is a either a POSIX memory object or a mmap'd file (such as a
+hugepage) on the host. Optionally, the device may support sending interrupts
+to other guests sharing the same memory region.
The Inter-VM PCI device
diff --git a/hw/misc/ivshmem.c b/hw/misc/ivshmem.c
index 2838866..9178ccc 100644
--- a/hw/misc/ivshmem.c
+++ b/hw/misc/ivshmem.c
@@ -762,9 +762,13 @@ static int pci_ivshmem_init(PCIDevice *dev)
} else if ((fd = shm_open(s->shmobj, O_CREAT|O_RDWR,
S_IRWXU|S_IRWXG|S_IRWXO)) < 0) {
- fprintf(stderr, "ivshmem: could not open shared file\n");
- exit(-1);
-
+ /* Try with open() in case the file is not in /dev/shm/
+ * This is usefull for sharing hugepages for example */
+ fd = open(s->shmobj, O_RDWR);
+ if (fd < 0) {
+ fprintf(stderr, "ivshmem: could not open shared file\n");
+ exit(-1);
+ }
}
if (check_shm_size(s, fd) == -1) {
--
1.7.2.5
- [Qemu-devel] [PATCH RESEND] ivshmem: allow the sharing of hugepages,
Damien Millescamps <=