aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLaurent Bercot <ska-skaware@skarnet.org>2025-05-02 17:04:50 +0000
committerLaurent Bercot <ska@appnovation.com>2025-05-02 17:04:50 +0000
commitbff439345cafa59a4bd72c2a20591e7bd8441b47 (patch)
tree6dec677348dfb61fff299fb164300387bd57ec0b /src
parent777100e73376d0977ee4300b5580670edb6df08f (diff)
downloadmdevd-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.c4
-rw-r--r--src/mdevd/mdevd.c2
-rw-r--r--src/mdevd/mdevd_uevent_read.c13
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)