]> git.ozlabs.org Git - petitboot/blobdiff - discover/udev.c
discover: Increase udev monitor buffer size
[petitboot] / discover / udev.c
index b1a25b3e639925ee753b53ad4830c9db75e2a7ba..656c5ab7faa3cacb294f329bdea474f50e526c07 100644 (file)
 #include "device-handler.h"
 #include "cdrom.h"
 
+/* We set a default monitor buffer size, as we may not process monitor
+ * events while performing device discvoery. systemd uses a 128M buffer, so
+ * we'll do the same here */
+static const int monitor_bufsize = 128 * 1024 * 1024;
+
 struct pb_udev {
        struct udev *udev;
        struct udev_monitor *monitor;
@@ -355,6 +360,12 @@ static int udev_setup_monitor(struct udev *udev, struct udev_monitor **monitor)
                goto out_err;
        }
 
+       result = udev_monitor_set_receive_buffer_size(m, monitor_bufsize);
+       if (result) {
+               pb_log("udev_monitor_set_rx_bufsize(%d) failed\n",
+                       monitor_bufsize);
+       }
+
        result = udev_monitor_filter_add_match_subsystem_devtype(m, "block",
                NULL);