eal: support --no-shconf in hugepage data file
authorAnatoly Burakov <anatoly.burakov@intel.com>
Fri, 13 Jul 2018 12:48:00 +0000 (13:48 +0100)
committerThomas Monjalon <thomas@monjalon.net>
Fri, 13 Jul 2018 13:33:27 +0000 (15:33 +0200)
Do not create a shared hugepage data file if we were asked to
not create any shared files.

Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
lib/librte_eal/linuxapp/eal/eal_memory.c

index 5d3c883..ddfa8b1 100644 (file)
@@ -521,7 +521,18 @@ static void *
 create_shared_memory(const char *filename, const size_t mem_size)
 {
        void *retval;
-       int fd = open(filename, O_CREAT | O_RDWR, 0666);
+       int fd;
+
+       /* if no shared files mode is used, create anonymous memory instead */
+       if (internal_config.no_shconf) {
+               retval = mmap(NULL, mem_size, PROT_READ | PROT_WRITE,
+                               MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
+               if (retval == MAP_FAILED)
+                       return NULL;
+               return retval;
+       }
+
+       fd = open(filename, O_CREAT | O_RDWR, 0666);
        if (fd < 0)
                return NULL;
        if (ftruncate(fd, mem_size) < 0) {