Different btrfs options in KDE and Qtile edition's fstab. Should noautodefrag be specified?

Hello fellows

I've installed the Qtile edition on my latptop about a month ago. I've noticed in my fstab the parameter noautodefrag is absent from the btrfs subvolumes.

cat /etc/fstab #Qtile laptop
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a device; this may
# be used with UUID= as a more robust way to name devices that works even if
# disks are added and removed. See fstab(5).
#
# <file system>             <mount point>  <type>  <options>  <dump>  <pass>
UUID=a11b01c3-54c9-4d19-aa0d-762d5f79a5f8 /              btrfs   subvol=/@,defaults,noatime,compress=zstd,discard=async,ssd 0 0
UUID=a11b01c3-54c9-4d19-aa0d-762d5f79a5f8 /home          btrfs   subvol=/@home,defaults,noatime,compress=zstd,discard=async,ssd 0 0
UUID=a11b01c3-54c9-4d19-aa0d-762d5f79a5f8 /root          btrfs   subvol=/@root,defaults,noatime,compress=zstd,discard=async,ssd 0 0
UUID=a11b01c3-54c9-4d19-aa0d-762d5f79a5f8 /srv           btrfs   subvol=/@srv,defaults,noatime,compress=zstd,discard=async,ssd 0 0
UUID=a11b01c3-54c9-4d19-aa0d-762d5f79a5f8 /var/cache     btrfs   subvol=/@cache,defaults,noatime,compress=zstd,discard=async,ssd 0 0
UUID=a11b01c3-54c9-4d19-aa0d-762d5f79a5f8 /var/log       btrfs   subvol=/@log,defaults,noatime,compress=zstd,discard=async,ssd 0 0
UUID=a11b01c3-54c9-4d19-aa0d-762d5f79a5f8 /var/tmp       btrfs   subvol=/@tmp,defaults,noatime,compress=zstd,discard=async,ssd 0 0
UUID=eff83d73-f9b3-4cb2-9d19-2b1f4b396fa2 swap           swap    defaults,noatime 0 0
tmpfs                                     /tmp           tmpfs   defaults,noatime,mode=1777 0 0

In my desktop (KDE-Dr460nized) I have different settings:

cat /etc/fstab #KDE desktop
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a device; this may
# be used with UUID= as a more robust way to name devices that works even if
# disks are added and removed. See fstab(5).
#
# <file system>             <mount point>  <type>  <options>  <dump>  <pass>
UUID=5065-8560                            /boot/efi      vfat    umask=0077 0 2
UUID=65b1555e-e8e7-41cb-84a2-63265cdbd7db swap           swap    defaults,noatime 0 0
UUID=543c6354-5d39-4703-bb64-407600dc772d / btrfs subvol=/@,defaults,noatime,space_cache,noautodefrag,compress=zstd 0 0 #Modified_by_garuda-hotfixes(1)
UUID=543c6354-5d39-4703-bb64-407600dc772d /root btrfs subvol=/@root,defaults,noatime,space_cache,noautodefrag,compress=zstd 0 0 #Modified_by_garuda-hotfixes(1)
UUID=543c6354-5d39-4703-bb64-407600dc772d /srv btrfs subvol=/@srv,defaults,noatime,space_cache,noautodefrag,compress=zstd 0 0 #Modified_by_garuda-hotfixes(1)
UUID=543c6354-5d39-4703-bb64-407600dc772d /var/cache btrfs subvol=/@cache,defaults,noatime,space_cache,noautodefrag,compress=zstd 0 0 #Modified_by_garuda-hotfixes(1)
UUID=543c6354-5d39-4703-bb64-407600dc772d /var/log btrfs subvol=/@log,defaults,noatime,space_cache,noautodefrag,compress=zstd 0 0 #Modified_by_garuda-hotfixes(1)
UUID=543c6354-5d39-4703-bb64-407600dc772d /var/tmp btrfs subvol=/@tmp,defaults,noatime,space_cache,noautodefrag,compress=zstd 0 0 #Modified_by_garuda-hotfixes(1)
UUID=2e159e97-2728-4e48-9ef8-9fe16862426c /home btrfs defaults,noatime,space_cache,noautodefrag,compress=zstd 0 0 #Modified_by_garuda-hotfixes(1)

I notice this differences:

KDE: noautodefrag, space_cache
Qtile: discard=async, ssdd, and also a tmpfs (final line).

I'll like help clarifying this differences, in particular to know if the issue with autodefrag Btrfs regression (discussed in this thread) has been fixed in the latests kernels. Otherwise, should I add noautodefrag to my Qtile fstab.

Furthermore, comparing both installations: in my KDE desktop I partitioned manually (with a separate btrfs home partition) on an NVME, while in my Qtile laptop I have a regular SSD and went with default partitioning w/hibernation. How are the differences in fstab related to this?

My Qtile-laptop garuda-inxi:
System:
  Kernel: 5.18.14-zen1-1-zen arch: x86_64 bits: 64 compiler: gcc
    v: 12.1.0 parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-zen
    root=UUID=a11b01c3-54c9-4d19-aa0d-762d5f79a5f8 rw
    [email protected] quiet quiet splash rd.udev.log_priority=3
    vt.global_cursor_default=0
    resume=UUID=eff83d73-f9b3-4cb2-9d19-2b1f4b396fa2 loglevel=3
  Desktop: Unity wm: LG3D vt: 1 dm: SDDM Distro: Garuda Linux
    base: Arch Linux
Machine:
  Type: Laptop System: Hewlett-Packard
    product: HP Pavilion dm4 Notebook PC
    v: 0694100011204010000623100 serial: <superuser required>
    Chassis: type: 10 serial: <superuser required>
  Mobo: Hewlett-Packard model: 1793 v: 41.1C
    serial: <superuser required> BIOS: Hewlett-Packard v: F.08
    date: 01/17/2012
Battery:
  ID-1: BAT0 charge: 33.1 Wh (73.9%)
    condition: 44.8/44.8 Wh (100.0%) volts: 11.1 min: 10.8
    model: GW MU06047 type: Li-ion serial: <filter>
    status: discharging
CPU:
  Info: model: Intel Core i5-2450M bits: 64 type: MT MCP
    arch: Sandy Bridge gen: core 2 built: 2010-12
    process: Intel 32nm family: 6 model-id: 0x2A (42)
    stepping: 7 microcode: 0x2F
  Topology: cpus: 1x cores: 2 tpc: 2 threads: 4 smt: enabled
    cache: L1: 128 KiB desc: d-2x32 KiB; i-2x32 KiB L2: 512 KiB
    desc: 2x256 KiB L3: 3 MiB desc: 1x3 MiB
  Speed (MHz): avg: 2586 high: 2894 min/max: 800/3100 scaling:
    driver: intel_cpufreq governor: schedutil cores: 1: 2668
    2: 2894 3: 1985 4: 2797 bogomips: 19955
  Flags: avx ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3
  Vulnerabilities:
  Type: itlb_multihit status: KVM: VMX unsupported
  Type: l1tf mitigation: PTE Inversion
  Type: mds mitigation: Clear CPU buffers; SMT vulnerable
  Type: meltdown mitigation: PTI
  Type: mmio_stale_data status: Not affected
  Type: retbleed status: Not affected
  Type: spec_store_bypass
    mitigation: Speculative Store Bypass disabled via prctl
  Type: spectre_v1 mitigation: usercopy/swapgs barriers and
    __user pointer sanitization
  Type: spectre_v2 mitigation: Retpolines, IBPB: conditional,
    IBRS_FW, STIBP: conditional, RSB filling
  Type: srbds status: Not affected
  Type: tsx_async_abort status: Not affected
Graphics:
  Device-1: Intel 2nd Generation Core Processor Family
    Integrated Graphics
    vendor: Hewlett-Packard driver: i915 v: kernel arch: Gen6
    process: Intel 32nm built: 2011 ports: active: LVDS-1
    empty: DP-1,HDMI-A-1,VGA-1 bus-ID: 00:02.0
    chip-ID: 8086:0126 class-ID: 0300
  Device-2: Chicony HP TrueVision HD type: USB
    driver: uvcvideo bus-ID: 1-1.5:4 chip-ID: 04f2:b2cb
    class-ID: 0e02 serial: <filter>
  Display: x11 server: X.Org v: 21.1.4 compositor: Picom
    v: git-c4107 driver: X: loaded: modesetting
    alternate: fbdev,intel,vesa gpu: i915 display-ID: :0
    screens: 1
  Screen-1: 0 s-res: 1366x768 s-dpi: 96
    s-size: 361x203mm (14.21x7.99") s-diag: 414mm (16.31")
  Monitor-1: LVDS-1 model: AU Optronics 0x303c built: 2010
    res: 1366x768 hz: 60 dpi: 112 gamma: 1.2
    size: 309x173mm (12.17x6.81") diag: 354mm (13.9")
    ratio: 16:9 modes: 1366x768
  Message: Unable to show GL data. Required tool glxinfo missing.
Audio:
  Device-1: Intel 6 Series/C200 Series Family High Definition
  Audio
    vendor: Hewlett-Packard driver: snd_hda_intel v: kernel
    bus-ID: 00:1b.0 chip-ID: 8086:1c20 class-ID: 0403
  Sound Server-1: ALSA v: k5.18.14-zen1-1-zen running: yes
  Sound Server-2: PulseAudio v: 16.1 running: no
  Sound Server-3: PipeWire v: 0.3.56 running: yes
Network:
  Device-1: Intel Centrino Wireless-N 1030 [Rainbow Peak]
    driver: iwlwifi v: kernel pcie: gen: 1 speed: 2.5 GT/s
    lanes: 1 bus-ID: 02:00.0 chip-ID: 8086:008b class-ID: 0280
  IF: wlo1 state: up mac: <filter>
  Device-2: Realtek RTL8111/8168/8411 PCI Express Gigabit
  Ethernet
    vendor: Hewlett-Packard driver: r8169 v: kernel pcie: gen: 1
    speed: 2.5 GT/s lanes: 1 port: 2000 bus-ID: 04:00.0
    chip-ID: 10ec:8168 class-ID: 0200
  IF: eno1 state: down mac: <filter>
Bluetooth:
  Device-1: Intel Centrino Advanced-N 6230 Bluetooth adapter
    type: USB driver: btusb v: 0.8 bus-ID: 1-1.4:3
    chip-ID: 8086:0189 class-ID: e001
  Report: bt-adapter ID: hci0 rfk-id: 0 state: up
    address: <filter>
RAID:
  Hardware-1: Intel 82801 Mobile SATA Controller [RAID mode]
    driver: ahci v: 3.0 port: 3060 bus-ID: 00:1f.2
    chip-ID: 8086:282a rev: N/A class-ID: 0104
Drives:
  Local Storage: total: 232.89 GiB used: 17.48 GiB (7.5%)
  SMART Message: Required tool smartctl not installed. Check
  --recommends
  ID-1: /dev/sda maj-min: 8:0 vendor: Samsung
    model: SSD 850 EVO 250GB size: 232.89 GiB block-size:
    physical: 512 B logical: 512 B speed: 6.0 Gb/s type: SSD
    serial: <filter> rev: 2B6Q scheme: MBR
Partition:
  ID-1: / raw-size: 224.08 GiB size: 224.08 GiB (100.00%)
    used: 17.48 GiB (7.8%) fs: btrfs dev: /dev/sda1 maj-min: 8:1
  ID-2: /home raw-size: 224.08 GiB size: 224.08 GiB (100.00%)
    used: 17.48 GiB (7.8%) fs: btrfs dev: /dev/sda1 maj-min: 8:1
  ID-3: /var/log raw-size: 224.08 GiB
    size: 224.08 GiB (100.00%) used: 17.48 GiB (7.8%) fs: btrfs
    dev: /dev/sda1 maj-min: 8:1
  ID-4: /var/tmp raw-size: 224.08 GiB
    size: 224.08 GiB (100.00%) used: 17.48 GiB (7.8%) fs: btrfs
    dev: /dev/sda1 maj-min: 8:1
Swap:
  Kernel: swappiness: 133 (default 60)
    cache-pressure: 100 (default)
  ID-1: swap-1 type: zram size: 5.74 GiB used: 0 KiB (0.0%)
    priority: 100 dev: /dev/zram0
  ID-2: swap-2 type: partition size: 8.8 GiB
    used: 0 KiB (0.0%) priority: -2 dev: /dev/sda2 maj-min: 8:2
Sensors:
  System Temperatures: cpu: 47.0 C mobo: N/A
  Fan Speeds (RPM): N/A
Info:
  Processes: 201 Uptime: 19m wakeups: 1 Memory: 5.74 GiB
  used: 1.74 GiB (30.3%) Init: systemd v: 251 default: graphical
  tool: systemctl Compilers: gcc: 12.1.0 Packages: pacman: 1204
  lib: 314 Shell: fish v: 3.4.1 default: Bash v: 5.1.16
  running-in: alacritty inxi: 3.3.19
e[1;34mGaruda (2.6.5-1):e[0m
e[1;34m  System install date:e[0m     2022-07-04
e[1;34m  Last full system update:e[0m 2022-07-28
e[1;34m  Is partially upgraded:  e[0m No
e[1;34m  Relevant software:      e[0m NetworkManager
e[1;34m  Windows dual boot:      e[0m <superuser required>
e[1;34m  Snapshots:              e[0m Snapper
e[1;34m  Failed units:           e[0m 
My KDE-desktop garuda-inxi
System:
  Kernel: 5.18.15-zen1-1-zen arch: x86_64 bits: 64 compiler: gcc v: 12.1.0
    parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-zen
    root=UUID=543c6354-5d39-4703-bb64-407600dc772d rw [email protected]
    quiet splash rd.udev.log_priority=3 vt.global_cursor_default=0
    systemd.unified_cgroup_hierarchy=1
    resume=UUID=65b1555e-e8e7-41cb-84a2-63265cdbd7db loglevel=3 ibt=off
    threadirqs
  Desktop: KDE Plasma v: 5.25.3 tk: Qt v: 5.15.5 info: latte-dock
    wm: kwin_x11 vt: 1 dm: SDDM Distro: Garuda Linux base: Arch Linux
Machine:
  Type: Desktop System: ASUS product: N/A v: N/A serial: <superuser required>
  Mobo: ASUSTeK model: TUF GAMING B550M-PLUS (WI-FI) v: Rev X.0x
    serial: <superuser required> UEFI: American Megatrends v: 2423
    date: 08/10/2021
Battery:
  Device-1: hidpp_battery_0 model: Logitech MX Keys Wireless Keyboard
    serial: <filter> charge: 55% (should be ignored) rechargeable: yes
    status: discharging
  Device-2: hidpp_battery_1 model: Logitech Wireless Mouse M325
    serial: <filter> charge: 55% (should be ignored) rechargeable: yes
    status: discharging
CPU:
  Info: model: AMD Ryzen 5 5600X bits: 64 type: MT MCP arch: Zen 3 gen: 4
    built: 2021-22 process: TSMC n7 (7nm) family: 0x19 (25) model-id: 0x21 (33)
    stepping: 0 microcode: 0xA201016
  Topology: cpus: 1x cores: 6 tpc: 2 threads: 12 smt: enabled cache:
    L1: 384 KiB desc: d-6x32 KiB; i-6x32 KiB L2: 3 MiB desc: 6x512 KiB
    L3: 32 MiB desc: 1x32 MiB
  Speed (MHz): avg: 3597 high: 3602 min/max: 2200/4650 boost: enabled
    scaling: driver: acpi-cpufreq governor: performance cores: 1: 3596 2: 3599
    3: 3598 4: 3599 5: 3599 6: 3599 7: 3597 8: 3602 9: 3597 10: 3589 11: 3599
    12: 3590 bogomips: 88799
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm
  Vulnerabilities:
  Type: itlb_multihit status: Not affected
  Type: l1tf status: Not affected
  Type: mds status: Not affected
  Type: meltdown status: Not affected
  Type: mmio_stale_data status: Not affected
  Type: retbleed status: Not affected
  Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via
    prctl
  Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer
    sanitization
  Type: spectre_v2 mitigation: Retpolines, IBPB: conditional, IBRS_FW,
    STIBP: always-on, RSB filling
  Type: srbds status: Not affected
  Type: tsx_async_abort status: Not affected
Graphics:
  Device-1: NVIDIA GP108 [GeForce GT 1030] vendor: ASUSTeK driver: nvidia
    v: 515.57 alternate: nouveau,nvidia_drm non-free: 515.xx+ status: current
    (as of 2022-07) arch: Pascal code: GP10x process: TSMC 16nm
    built: 2016-21 pcie: gen: 3 speed: 8 GT/s lanes: 4 bus-ID: 07:00.0
    chip-ID: 10de:1d01 class-ID: 0300
  Device-2: Logitech Webcam C270 type: USB driver: snd-usb-audio,uvcvideo
    bus-ID: 3-2:3 chip-ID: 046d:0825 class-ID: 0102 serial: <filter>
  Display: x11 server: X.Org v: 21.1.4 with: Xwayland v: 22.1.3
    compositor: kwin_x11 driver: X: loaded: nvidia gpu: nvidia display-ID: :0
    screens: 1
  Screen-1: 0 s-res: 1920x1080 s-dpi: 81 s-size: 602x343mm (23.70x13.50")
    s-diag: 693mm (27.28")
  Monitor-1: HDMI-0 res: 1920x1080 hz: 60 dpi: 82
    size: 598x336mm (23.54x13.23") diag: 686mm (27.01") modes: N/A
  OpenGL: renderer: NVIDIA GeForce GT 1030/PCIe/SSE2 v: 4.6.0 NVIDIA 515.57
    direct render: Yes
Audio:
  Device-1: NVIDIA GP108 High Definition Audio vendor: ASUSTeK
    driver: snd_hda_intel v: kernel bus-ID: 1-9:7 pcie: chip-ID: 0499:1509
    gen: 3 class-ID: ff00 speed: 8 GT/s lanes: 4 bus-ID: 07:00.1
    chip-ID: 10de:0fb8 class-ID: 0403
  Device-2: AMD Starship/Matisse HD Audio vendor: ASUSTeK
    driver: snd_hda_intel v: kernel pcie: gen: 4 speed: 16 GT/s lanes: 16
    bus-ID: 09:00.4 chip-ID: 1022:1487 class-ID: 0403
  Device-3: Yamaha Steinberg UR22 type: USB driver: snd-usb-audio
  Device-4: Logitech Webcam C270 type: USB driver: snd-usb-audio,uvcvideo
    bus-ID: 3-2:3 chip-ID: 046d:0825 class-ID: 0102 serial: <filter>
  Sound Server-1: ALSA v: k5.18.15-zen1-1-zen running: yes
  Sound Server-2: PulseAudio v: 16.1 running: no
  Sound Server-3: PipeWire v: 0.3.56 running: yes
Network:
  Device-1: Intel Wi-Fi 6 AX200 driver: iwlwifi v: kernel pcie: gen: 2
    speed: 5 GT/s lanes: 1 bus-ID: 05:00.0 chip-ID: 8086:2723 class-ID: 0280
  IF: wlp5s0 state: up mac: <filter>
  Device-2: Realtek RTL8125 2.5GbE vendor: ASUSTeK driver: r8169 v: kernel
    pcie: gen: 2 speed: 5 GT/s lanes: 1 port: f000 bus-ID: 06:00.0
    chip-ID: 10ec:8125 class-ID: 0200
  IF: enp6s0 state: down mac: <filter>
Bluetooth:
  Device-1: Intel AX200 Bluetooth type: USB driver: btusb v: 0.8
    bus-ID: 1-5:2 chip-ID: 8087:0029 class-ID: e001
  Report: bt-adapter note: tool can't run ID: hci0 rfk-id: 1 state: down
    bt-service: disabled rfk-block: hardware: no software: no address: N/A
Drives:
  Local Storage: total: 1.59 TiB used: 851.31 GiB (52.2%)
  SMART Message: Required tool smartctl not installed. Check --recommends
  ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Western Digital
    model: WDS250G3X0C-00SJG0 size: 232.89 GiB block-size: physical: 512 B
    logical: 512 B speed: 31.6 Gb/s lanes: 4 type: SSD serial: <filter>
    rev: 111110WD temp: 37.9 C scheme: GPT
  ID-2: /dev/sda maj-min: 8:0 vendor: Seagate model: ST9500325ASG
    size: 465.76 GiB block-size: physical: 512 B logical: 512 B speed: 3.0 Gb/s
    type: HDD rpm: 5400 serial: <filter> rev: APM1 scheme: GPT
  ID-3: /dev/sdb maj-min: 8:16 type: USB vendor: Seagate
    model: ST1000LM035-1RK172 size: 931.51 GiB block-size: physical: 4096 B
    logical: 512 B type: HDD rpm: 5400 serial: <filter> rev: 1053 scheme: MBR
Partition:
  ID-1: / raw-size: 100 GiB size: 100 GiB (100.00%) used: 18.01 GiB (18.0%)
    fs: btrfs dev: /dev/nvme0n1p3 maj-min: 259:3
  ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%) used: 576 KiB
    (0.2%) fs: vfat dev: /dev/nvme0n1p1 maj-min: 259:1
  ID-3: /home raw-size: 128.59 GiB size: 128.59 GiB (100.00%) used: 82.5
    GiB (64.2%) fs: btrfs dev: /dev/nvme0n1p4 maj-min: 259:4
  ID-4: /var/log raw-size: 100 GiB size: 100 GiB (100.00%) used: 18.01 GiB
    (18.0%) fs: btrfs dev: /dev/nvme0n1p3 maj-min: 259:3
  ID-5: /var/tmp raw-size: 100 GiB size: 100 GiB (100.00%) used: 18.01 GiB
    (18.0%) fs: btrfs dev: /dev/nvme0n1p3 maj-min: 259:3
Swap:
  Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default)
  ID-1: swap-1 type: zram size: 15.53 GiB used: 1.93 GiB (12.4%)
    priority: 100 dev: /dev/zram0
  ID-2: swap-2 type: partition size: 4 GiB used: 0 KiB (0.0%) priority: -2
    dev: /dev/nvme0n1p2 maj-min: 259:2
Sensors:
  System Temperatures: cpu: 36.0 C mobo: 36.0 C gpu: nvidia temp: 33 C
  Fan Speeds (RPM): fan-1: 1004 fan-2: 1278 fan-3: 1040 fan-7: 0
Info:
  Processes: 444 Uptime: 3h 8m wakeups: 45 Memory: 15.54 GiB used: 3.63 GiB
  (23.4%) Init: systemd v: 251 default: graphical tool: systemctl
  Compilers: gcc: 12.1.0 clang: 14.0.6 Packages: pacman: 1701 lib: 370
  Shell: fish v: 3.5.1 default: Bash v: 5.1.16 running-in: yakuake
  inxi: 3.3.20
e[1;34mGaruda (2.6.5-1):e[0m
e[1;34m  System install date:e[0m     2022-07-25
e[1;34m  Last full system update:e[0m 2022-07-30
e[1;34m  Is partially upgraded:  e[0m No
e[1;34m  Relevant software:      e[0m NetworkManager
e[1;34m  Windows dual boot:      e[0m No/Undetected
e[1;34m  Snapshots:              e[0m Snapper
e[1;34m  Failed units:           e[0m 

Yes, it is fixed. Enabling or disabling autodefrag is entirely up to you now.

3 Likes

The hotfix gave you the noautodefrag setting. It was pushed down to try to save user disks once the regression was discovered. It is up to the user to revert this change now that the issue has been resolved.

Any ISO with a kernel higher than 5.16.5 never needed this hotfix in the first place because the regression had been fixed already--that's why it isn't in your Qtile install.

3 Likes

Thanks @mrvictory and @BluishHumility for your responses. I wonder still about the mounting options defaults choosed by devs in Garuda. I've found a lot of things to wrap my head around regarding Btrfs. I'll keep researching.

Can you guys share which options you have enabled and the rationale behind it? I'll consider this thread solved, but for what I've read in the forum there seems to be many opinions around this matter.

In my opinion, the defaults selected by the Garuda team for the mount options in fstab are very sensible. I think they picked handful of solid options that are just hard to disagree with. Chances are, folks who have a strong opinion regarding the specific mount options they employ will be going in and making the edits they like anyhow.

As far as enabling autodefrag in the fstab by default, I am not sure if that is a Garuda choice or if that is set up by Calamares. I seem to recall something about the Calamares installation process triggering fragmentation to such an extent that brand new installations can be heavily fragmented if the install is mounted on Btrfs without autodefrag. Even if you do not wish to keep autodefrag options on your system on a regular basis, keeping it enabled as the default during the install has a noted and potentially substantial benefit.

Whether or not to add autodefrag to an SSD is kind of an interesting discussion. I have read compelling arguments both for and against, by folks way more knowledgeable than I am about the topic.

The main argument against is that defragmenting a disk costs a write, which is no big deal on spinning rust but is somewhat destructive on an SSD where writes are more limited. Since (in theory) an SSD gains little to no benefit from data on a disk being contiguous, naysayers will claim the practice of defragmenting an SSD is wasteful.

Copy-on-write filesystems (like Btrfs) complicate this basic idea a bit; there apparently are drawbacks to letting COW filesystems become very fragmented. This is from an old but still interesting discussion here:

There's still some cost to fragmentation, however -- each file fragment
is an IOPS count on access, and while modern SSDs are rated pretty high
IOPS, copy-on-write (COW) based filesystems like btrfs can heavily
fragment "internally rewritten" (as opposed to written once and never
changed, or new data always appended at the end like a log file or
streaming media recording) files. We've seen worst-cases internal-
rewritten files such as multi-gig VMs reported here, with 100K extents or
more! That WILL eat up IOPS, even on SSDs, and there's other serious
issues with that heavily fragmented a file as well, not least the
additional chance of damage to it given all the work btrfs has to do
tracking all those extents!

As for what options I enable myself, I typically leave the default settings as-is. As I mentioned, from what I have read the choices seem very sensible and I haven't found a compelling reason to deviate from them. I do typically add a shared partition to all of my installs to symlink my home folder into, and for that I add defaults,noatime,compress=zstd,ssd. The main reason I add those is because I have read what they are and what they do, and I understand (on a basic level) the benefits of using them...and they seem good! :smiley:

2 Likes

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.