summaryrefslogtreecommitdiff
path: root/src/libsystemd-bus/bus-kernel.h
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2013-12-18 18:46:23 +0100
committerLennart Poettering <lennart@poettering.net>2013-12-18 19:04:14 +0100
commit8e959fbf3862172b53d200cda659795c3744fa78 (patch)
treeaf7f63d5b925d321ee2aac5afbbdf55af786e9eb /src/libsystemd-bus/bus-kernel.h
parente7d43b3cc30764138c90eaaf95d3d8f49e448890 (diff)
bus: reduce calls to KDBUS_CMD_MEMFD_SIZE_SET ioctl
Instead of calling it for each buffer append, increase allocation exponentially and set the real value only at the end, when sealing off the memfd. This should drastically reduce the number of times we invoke the ioctl().
Diffstat (limited to 'src/libsystemd-bus/bus-kernel.h')
-rw-r--r--src/libsystemd-bus/bus-kernel.h7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/libsystemd-bus/bus-kernel.h b/src/libsystemd-bus/bus-kernel.h
index 8c7eacc6d7..0a825d7b8e 100644
--- a/src/libsystemd-bus/bus-kernel.h
+++ b/src/libsystemd-bus/bus-kernel.h
@@ -51,7 +51,8 @@
struct memfd_cache {
int fd;
void *address;
- size_t size;
+ size_t mapped;
+ size_t allocated;
};
int bus_kernel_connect(sd_bus *b);
@@ -65,8 +66,8 @@ int bus_kernel_create_namespace(const char *name, char **s);
int bus_kernel_create_starter(const char *bus, const char *name);
int bus_kernel_create_monitor(const char *bus);
-int bus_kernel_pop_memfd(sd_bus *bus, void **address, size_t *size);
-void bus_kernel_push_memfd(sd_bus *bus, int fd, void *address, size_t size);
+int bus_kernel_pop_memfd(sd_bus *bus, void **address, size_t *mapped, size_t *allocated);
+void bus_kernel_push_memfd(sd_bus *bus, int fd, void *address, size_t mapped, size_t allocated);
void bus_kernel_flush_memfd(sd_bus *bus);