mempool: Add custom name to memfd_create
authorOlivier Dion <odion@efficios.com>
Tue, 19 Mar 2024 14:09:50 +0000 (10:09 -0400)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Tue, 19 Mar 2024 14:13:33 +0000 (10:13 -0400)
Change-Id: I12459129e2c4aa7e35ab557fbc6060bd63de816b
Signed-off-by: Olivier Dion <odion@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
src/rseq-mempool.c

index 093bd4c554524597d8143a0fe6b6ca5e3481b3de..1d87e1a254de812a59852e6e03fdecf5c02f386a 100644 (file)
@@ -671,11 +671,20 @@ alloc_error:
 }
 
 static
-int rseq_memfd_create_init(size_t init_len)
+int rseq_memfd_create_init(const char *poolname, size_t init_len)
 {
        int fd;
+       char buf[249];          /* Limit is 249 bytes. */
+       const char *name;
 
-       fd = memfd_create("mempool", MFD_CLOEXEC);
+       if (poolname) {
+               snprintf(buf, sizeof(buf), "%s:rseq-mempool", poolname);
+               name = buf;
+       } else {
+               name = "<anonymous>:rseq-mempool";
+       }
+
+       fd = memfd_create(name, MFD_CLOEXEC);
        if (fd < 0) {
                perror("memfd_create");
                goto end;
@@ -732,7 +741,7 @@ struct rseq_mempool_range *rseq_mempool_range_create(struct rseq_mempool *pool)
 
                range->init = base + (pool->attr.stride * pool->attr.max_nr_cpus);
                /* Populate init values pages from memfd */
-               memfd = rseq_memfd_create_init(pool->attr.stride);
+               memfd = rseq_memfd_create_init(pool->name, pool->attr.stride);
                if (memfd < 0)
                        goto error_alloc;
                if (mmap(range->init, pool->attr.stride, PROT_READ | PROT_WRITE,
This page took 0.025636 seconds and 4 git commands to generate.