From 8d7d5fdbdc756d208799b2b2bb5da7e0301e6fcb Mon Sep 17 00:00:00 2001 From: linj Date: Thu, 17 Mar 2022 17:45:40 +0800 Subject: [PATCH] linux: enable TASKSTATS, TASK_XACCT, TASK_DELAY_ACCT and TASK_IO_ACCOUNTING iotop needs TASKSTATS, TASK_DELAY_ACCT, TASK_XACCT and TASK_IO_ACCOUNTING to work. For x86_64, all these options are enabled by upstream[1]. For aarch64, however, only TASK_XACCT and TASK_IO_ACCOUNTING are enabled by upstream[2]. This patch enables all these four options for aarch64, which have been enabled by many other distributions, e.g. debian[3], fedora[4], rhel[5] and gentoo[6]. I tried to only enable TASKSTATS and TASK_DELAY_ACCT since the other two options are enabled by upstream, but it turns out that it's necessary to explicitly enable all four options. I do not figure out the reason though. Additionally, given that debian enables these four options for all arch[3], I think it's safe for us to do the same thing. [1]: https://github.com/torvalds/linux/blob/56e337f2cf1326323844927a04e9dbce9a244835/arch/x86/configs/x86_64_defconfig#L8-L11 [2]: https://github.com/torvalds/linux/blob/56e337f2cf1326323844927a04e9dbce9a244835/arch/arm64/configs/defconfig#L10-L11 [3]: https://salsa.debian.org/kernel-team/linux/-/blob/da6ddc7d8f1a95980d9a1c499fe58066cfe1986b/debian/config/config#L6356-6359 [4]: https://src.fedoraproject.org/rpms/kernel/blob/rawhide/f/kernel-aarch64-fedora.config#_7398 [5]: https://src.fedoraproject.org/rpms/kernel/blob/rawhide/f/kernel-aarch64-rhel.config#_5885 [6]: https://github.com/gentoo/gentoo/blob/b839fccce25d49df2fcfe5ed184b557796b0d6bd/sys-kernel/gentoo-kernel/gentoo-kernel-5.15.29.ebuild#L27 --- pkgs/os-specific/linux/kernel/common-config.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkgs/os-specific/linux/kernel/common-config.nix b/pkgs/os-specific/linux/kernel/common-config.nix index 068aedf31213..8b2b212adfb3 100644 --- a/pkgs/os-specific/linux/kernel/common-config.nix +++ b/pkgs/os-specific/linux/kernel/common-config.nix @@ -906,6 +906,11 @@ let ANDROID_BINDER_IPC = { optional = true; tristate = whenAtLeast "5.0" "y";}; ANDROID_BINDERFS = { optional = true; tristate = whenAtLeast "5.0" "y";}; ANDROID_BINDER_DEVICES = { optional = true; freeform = whenAtLeast "5.0" "binder,hwbinder,vndbinder";}; + + TASKSTATS = yes; + TASK_DELAY_ACCT = yes; + TASK_XACCT = yes; + TASK_IO_ACCOUNTING = yes; } // optionalAttrs (stdenv.hostPlatform.system == "x86_64-linux" || stdenv.hostPlatform.system == "aarch64-linux") { # Enable CPU/memory hotplug support # Allows you to dynamically add & remove CPUs/memory to a VM client running NixOS without requiring a reboot