On Mon, 19.11.12 08:13, Mantas Mikulėnas (graw...@gmail.com) wrote: > On Mon, Nov 19, 2012 at 8:01 AM, Mantas Mikulėnas <graw...@gmail.com> wrote: > > Anything that is written to /sys/module/*/parameters goes to > > modprobe.d(5) -- again, to be applied when the module is inserted, not > > at some fixed point: > > > > https://github.com/vodik/powersave/blob/master/modprobe.d/powersave.conf > > > > Use sysctl.conf(5) for settings under /proc/sys: > > > > https://github.com/vodik/powersave/blob/master/sysctl.d/powersave.conf > > This reminded me that systemd-sysctl doesn't properly handle > sysctl.conf entries that depend on the presence of modules loaded by > modules-load.d... > > In particular, I was having problems with: > > net.ipv4.tcp_allowed_congestion_control = cubic reno lp > > This setting is required to allow non-root programs (the Transmission > BitTorrent daemon in particular) to use the "lowest priority" > congestion control algorithm. > > However, if the "tcp_lp" module is not yet loaded, the write to > /proc/sys is simply refused with EINVAL (if I remember correctly). > > And if the module is loaded later (or not loaded manually), without > the sysctl setting being updated, Transmission receives EPERM when it > calls setsockopt(TCP_CONGESTION). > > This doesn't affect TCPCongestion= in systemd socket units, since root > is allowed to set any algorithm, and the module is simply loaded on > demand when systemd asks for it... > > How can this be fixed?
Hmm, whenever a module is loaded this also generates udev events, maybe for this specific case we should add a udev rule that tries to write the sysctl again after the module was successfully loaded? Kay? Lennart -- Lennart Poettering - Red Hat, Inc. _______________________________________________ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel