mirror of
https://github.com/systemd/systemd.git
synced 2025-03-21 02:50:18 +03:00
Merge pull request #29872 from yuwata/udevadm-trigger-receive-buffer-size
udevadm-trigger: extend receive buffer size
This commit is contained in:
commit
1e70a3c84f
@ -1028,11 +1028,6 @@ static void device_enumerate(Manager *m) {
|
||||
goto fail;
|
||||
}
|
||||
|
||||
/* This will fail if we are unprivileged, but that
|
||||
* should not matter much, as user instances won't run
|
||||
* during boot. */
|
||||
(void) sd_device_monitor_set_receive_buffer_size(m->device_monitor, 128*1024*1024);
|
||||
|
||||
r = sd_device_monitor_filter_add_match_tag(m->device_monitor, "systemd");
|
||||
if (r < 0) {
|
||||
log_error_errno(r, "Failed to add udev tag match: %m");
|
||||
|
@ -215,6 +215,15 @@ int device_monitor_new_full(sd_device_monitor **ret, MonitorNetlinkGroup group,
|
||||
}
|
||||
}
|
||||
|
||||
/* Let's bump the receive buffer size, but only if we are not called via socket activation, as in
|
||||
* that case the service manager sets the receive buffer size for us, and the value in the .socket
|
||||
* unit should take full effect. */
|
||||
if (fd < 0) {
|
||||
r = sd_device_monitor_set_receive_buffer_size(m, 128*1024*1024);
|
||||
if (r < 0)
|
||||
log_monitor_errno(m, r, "Failed to increase receive buffer size, ignoring: %m");
|
||||
}
|
||||
|
||||
*ret = TAKE_PTR(m);
|
||||
return 0;
|
||||
|
||||
|
@ -205,10 +205,6 @@ static int manager_connect_udev(Manager *m) {
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to initialize device monitor: %m");
|
||||
|
||||
r = sd_device_monitor_set_receive_buffer_size(m->device_monitor, RCVBUF_SIZE);
|
||||
if (r < 0)
|
||||
log_warning_errno(r, "Failed to increase buffer size for device monitor, ignoring: %m");
|
||||
|
||||
r = sd_device_monitor_filter_add_match_subsystem_devtype(m->device_monitor, "net", NULL);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Could not add device monitor filter for net subsystem: %m");
|
||||
|
@ -1225,15 +1225,6 @@ int manager_init(Manager *manager, int fd_ctrl, int fd_uevent) {
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to initialize device monitor: %m");
|
||||
|
||||
/* Bump receiver buffer, but only if we are not called via socket activation, as in that
|
||||
* case systemd sets the receive buffer size for us, and the value in the .socket unit
|
||||
* should take full effect. */
|
||||
if (fd_uevent < 0) {
|
||||
r = sd_device_monitor_set_receive_buffer_size(manager->monitor, 128 * 1024 * 1024);
|
||||
if (r < 0)
|
||||
log_warning_errno(r, "Failed to set receive buffer size for device monitor, ignoring: %m");
|
||||
}
|
||||
|
||||
(void) sd_device_monitor_set_description(manager->monitor, "manager");
|
||||
|
||||
r = device_monitor_enable_receiving(manager->monitor);
|
||||
|
@ -66,8 +66,6 @@ static int setup_monitor(MonitorNetlinkGroup sender, sd_event *event, sd_device_
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to create netlink socket: %m");
|
||||
|
||||
(void) sd_device_monitor_set_receive_buffer_size(monitor, 128*1024*1024);
|
||||
|
||||
r = sd_device_monitor_attach_event(monitor, event);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to attach event: %m");
|
||||
|
@ -184,8 +184,6 @@ static int setup_monitor(sd_event *event, MonitorNetlinkGroup group, const char
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
(void) sd_device_monitor_set_receive_buffer_size(monitor, 128*1024*1024);
|
||||
|
||||
r = sd_device_monitor_attach_event(monitor, event);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
@ -219,6 +219,15 @@ udevadm settle -t 300
|
||||
udevadm trigger --wait-daemon=5
|
||||
udevadm trigger -h
|
||||
|
||||
# https://github.com/systemd/systemd/issues/29863
|
||||
if [[ "$(systemd-detect-virt -v)" != "qemu" ]]; then
|
||||
udevadm control --log-level=0
|
||||
for _ in {0..9}; do
|
||||
timeout 30 udevadm trigger --settle
|
||||
done
|
||||
udevadm control --log-level=debug
|
||||
fi
|
||||
|
||||
udevadm wait /dev/null
|
||||
udevadm wait /sys/class/net/$netdev
|
||||
udevadm wait -t 5 /sys/class/net/$netdev
|
||||
|
Loading…
x
Reference in New Issue
Block a user