diff options
| author | Laurent Bercot <ska-skaware@skarnet.org> | 2025-05-02 17:04:50 +0000 |
|---|---|---|
| committer | Laurent Bercot <ska@appnovation.com> | 2025-05-02 17:04:50 +0000 |
| commit | bff439345cafa59a4bd72c2a20591e7bd8441b47 (patch) | |
| tree | 6dec677348dfb61fff299fb164300387bd57ec0b /src | |
| parent | 777100e73376d0977ee4300b5580670edb6df08f (diff) | |
| download | mdevd-bff439345cafa59a4bd72c2a20591e7bd8441b47.tar.gz | |
Increase default kbufsz to 1 MiB; don't die on ENOBUFS (but spam)
Signed-off-by: Laurent Bercot <ska@appnovation.com>
Diffstat (limited to 'src')
| -rw-r--r-- | src/mdevd/mdevd-coldplug.c | 4 | ||||
| -rw-r--r-- | src/mdevd/mdevd.c | 2 | ||||
| -rw-r--r-- | src/mdevd/mdevd_uevent_read.c | 13 |
3 files changed, 12 insertions, 7 deletions
diff --git a/src/mdevd/mdevd-coldplug.c b/src/mdevd/mdevd-coldplug.c index 6b8953f..1dd0982 100644 --- a/src/mdevd/mdevd-coldplug.c +++ b/src/mdevd/mdevd-coldplug.c @@ -15,7 +15,7 @@ #include "mdevd-internal.h" -#define USAGE "mdevd-coldplug [ -v verbosity ] [ -s slashsys ] [ -O nlgroup ] [ -b kbufsize ]" +#define USAGE "mdevd-coldplug [ -v verbosity ] [ -s slashsys ] [ -O nlgroup ] [ -b kbufsz ]" #define dieusage() strerr_dieusage(100, USAGE) static char subsystem[PATH_MAX] = "" ; @@ -95,7 +95,7 @@ int main (int argc, char const *const *argv, char const *const *envp) char const *slashsys = "/sys" ; unsigned int verbosity = 1 ; unsigned int nlgroup = 0 ; - unsigned int kbufsz = 512288 ; + unsigned int kbufsz = 1048576 ; int nlfd = -1 ; PROG = "mdevd-coldplug" ; { diff --git a/src/mdevd/mdevd.c b/src/mdevd/mdevd.c index 6b82874..f5222f7 100644 --- a/src/mdevd/mdevd.c +++ b/src/mdevd/mdevd.c @@ -904,7 +904,7 @@ int main (int argc, char const *const *argv) char const *configfile = "/etc/mdev.conf" ; iopause_fd x[2] = { { .events = IOPAUSE_READ }, { .events = IOPAUSE_READ } } ; unsigned int notif = 0 ; - unsigned int kbufsz = 512288 ; + unsigned int kbufsz = 1048576 ; char const *slashdev = "/dev" ; int docoldplug = 0 ; unsigned int intake = 1 ; diff --git a/src/mdevd/mdevd_uevent_read.c b/src/mdevd/mdevd_uevent_read.c index 1c84f2d..38be5ea 100644 --- a/src/mdevd/mdevd_uevent_read.c +++ b/src/mdevd/mdevd_uevent_read.c @@ -38,10 +38,15 @@ static inline size_t netlink_read (int fd, char *s, uint32_t options, unsigned i .msg_controllen = 0, .msg_flags = 0 } ; - ssize_t r = sanitize_read(fd_recvmsg(fd, &msg)) ; - if (r < 0) - strerr_diefu1sys(111, "receive netlink message") ; - if (!r) return 0 ; + ssize_t r ; + for (;;) + { + r = sanitize_read(fd_recvmsg(fd, &msg)) ; + if (r > 0) break ; + if (!r) return 0 ; + if (errno != ENOBUFS) strerr_diefu1sys(111, "read netlink message") ; + strerr_warnw1x("missed events! you should increase the -b kbufsz value") ; + } if (msg.msg_flags & MSG_TRUNC) strerr_diefu1x(111, "buffer too small for netlink message") ; if (options & 1 && nl.nl_pid) |
