diff options
author | Lennart Poettering <lennart@poettering.net> | 2013-12-18 18:46:23 +0100 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2013-12-18 19:04:14 +0100 |
commit | 8e959fbf3862172b53d200cda659795c3744fa78 (patch) | |
tree | af7f63d5b925d321ee2aac5afbbdf55af786e9eb /src/libsystemd-bus/bus-kernel.h | |
parent | e7d43b3cc30764138c90eaaf95d3d8f49e448890 (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.h | 7 |
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); |