diff --git a/xeon08/configuration.nix b/xeon08/configuration.nix index 7899173..195117f 100644 --- a/xeon08/configuration.nix +++ b/xeon08/configuration.nix @@ -18,6 +18,10 @@ # disable automatic garbage collector nix.gc.automatic = lib.mkForce false; + # members of the tracing group can use the lttng-provided kernel events + # without root permissions + users.groups.tracing.members = [ "arocanon" ]; + # set up both ethernet and infiniband ips networking = { hostName = "xeon08"; diff --git a/xeon08/kernel/lttng.nix b/xeon08/kernel/lttng.nix index b9d6e4d..eb45911 100644 --- a/xeon08/kernel/lttng.nix +++ b/xeon08/kernel/lttng.nix @@ -2,12 +2,23 @@ let - # the lttng btrfs probe crashes at compile time because of an undefined + # The lttng btrfs probe crashes at compile time because of an undefined # function. This disables the btrfs tracepoints to avoid the issue. + + # Also enable lockdep tracepoints, this is disabled by default because it + # does not work well on architectures other than x86_64 (i think that arm) as + # I was told on the mailing list. lttng-modules-fixed = config.boot.kernelPackages.lttng-modules.overrideAttrs (finalAttrs: previousAttrs: { patchPhase = (lib.optionalString (previousAttrs ? patchPhase) previousAttrs.patchPhase) + '' + # disable btrfs substituteInPlace src/probes/Kbuild \ --replace " obj-\$(CONFIG_LTTNG) += lttng-probe-btrfs.o" " #obj-\$(CONFIG_LTTNG) += lttng-probe-btrfs.o" + + # enable lockdep tracepoints + substituteInPlace src/probes/Kbuild \ + --replace "#ifneq (\$(CONFIG_LOCKDEP),)" "ifneq (\$(CONFIG_LOCKDEP),)" \ + --replace "# obj-\$(CONFIG_LTTNG) += lttng-probe-lock.o" " obj-\$(CONFIG_LTTNG) += lttng-probe-lock.o" \ + --replace "#endif # CONFIG_LOCKDEP" "endif # CONFIG_LOCKDEP" ''; }); in { @@ -29,8 +40,4 @@ in { ''; }; }; - - # members of the tracing group can use the lttng-provided kernel events - # without root permissions - users.groups.tracing.members = [ "arocanon" ]; }