forked from mirrors/nixpkgs
rmem_max: define merge function
This commit is contained in:
parent
0ea6f4c974
commit
2c5abd89c7
|
@ -1336,6 +1336,14 @@
|
|||
the npm install step prunes dev dependencies.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
boot.kernel.sysctl is defined as a freeformType and adds a
|
||||
custom merge option for <quote>net.core.rmem_max</quote>
|
||||
(taking the highest value defined to avoid conflicts between 2
|
||||
services trying to set that value)
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</section>
|
||||
</section>
|
||||
|
|
|
@ -395,4 +395,6 @@ Available as [services.patroni](options.html#opt-services.patroni.enable).
|
|||
|
||||
- The `nodePackages` package set now defaults to the LTS release in the `nodejs` package again, instead of being pinned to `nodejs-14_x`. Several updates to node2nix have been made for compatibility with newer Node.js and npm versions and a new `postRebuild` hook has been added for packages to perform extra build steps before the npm install step prunes dev dependencies.
|
||||
|
||||
- boot.kernel.sysctl is defined as a freeformType and adds a custom merge option for "net.core.rmem_max" (taking the highest value defined to avoid conflicts between 2 services trying to set that value)
|
||||
|
||||
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
|
||||
|
|
|
@ -21,11 +21,24 @@ in
|
|||
options = {
|
||||
|
||||
boot.kernel.sysctl = mkOption {
|
||||
type = types.submodule {
|
||||
freeformType = types.attrsOf sysctlOption;
|
||||
options."net.core.rmem_max" = mkOption {
|
||||
type = types.nullOr types.ints.unsigned // {
|
||||
merge = loc: defs:
|
||||
foldl
|
||||
(a: b: if b.value == null then null else lib.max a b.value)
|
||||
0
|
||||
(filterOverrides defs);
|
||||
};
|
||||
default = null;
|
||||
description = lib.mdDoc "The maximum socket receive buffer size. In case of conflicting values, the highest will be used.";
|
||||
};
|
||||
};
|
||||
default = {};
|
||||
example = literalExpression ''
|
||||
{ "net.ipv4.tcp_syncookies" = false; "vm.swappiness" = 60; }
|
||||
'';
|
||||
type = types.attrsOf sysctlOption;
|
||||
description = lib.mdDoc ''
|
||||
Runtime parameters of the Linux kernel, as set by
|
||||
{manpage}`sysctl(8)`. Note that sysctl
|
||||
|
@ -35,6 +48,7 @@ in
|
|||
parameter may be a string, integer, boolean, or null
|
||||
(signifying the option will not appear at all).
|
||||
'';
|
||||
|
||||
};
|
||||
|
||||
};
|
||||
|
|
|
@ -431,7 +431,7 @@ in
|
|||
# https://trac.transmissionbt.com/browser/trunk/libtransmission/tr-udp.c?rev=11956.
|
||||
# at least up to the values hardcoded here:
|
||||
(mkIf cfg.settings.utp-enabled {
|
||||
"net.core.rmem_max" = mkDefault "4194304"; # 4MB
|
||||
"net.core.rmem_max" = mkDefault 4194304; # 4MB
|
||||
"net.core.wmem_max" = mkDefault "1048576"; # 1MB
|
||||
})
|
||||
(mkIf cfg.performanceNetParameters {
|
||||
|
|
Loading…
Reference in a new issue