Re: space_cache=v2 on root fs
From: Kai Krakow <hidden>
Date: 2016-01-18 21:04:45
Am Mon, 18 Jan 2016 20:12:43 +0100 schrieb Markus Trippelsdorf [off-list ref]:
On 2016.01.18 at 19:27 +0100, Markus Trippelsdorf wrote:quoted
Hi, while testing the new space_cache=v2 mount option it looks like my root fs doesn't automatically create the new space cache. I'm using the following /etc/fstab: UUID=7ef56edc-673e-452e-9e05-3fabf074168b / btrfs noatime,compress=lzo,space_cache=v2 0 0 UUID=6b7d75bf-3d12-409c-88ed-500ac6b78510 /var btrfs compress=lzo,space_cache=v2 0 0 UUID=24cee7e4-9093-4f86-aa73-d8a59d7f3c6c /var/tmp btrfs compress=lzo,space_cache=v2 0 0 During first mount the space cache was created for /var (/dev/sdb2) and /var/tmp (/dev/sda3), but apparently not for / (/dev/sdc3): Jan 18 18:48:18 x4 kernel: BTRFS info (device sdb2): enabling free space tree Jan 18 18:48:18 x4 kernel: BTRFS info (device sdb2): using free space tree Jan 18 18:48:18 x4 kernel: BTRFS: creating free space tree Jan 18 18:48:18 x4 kernel: BTRFS info (device sdb2): setting 1 ro feature flag Jan 18 18:48:18 x4 kernel: BTRFS: checking UUID tree Jan 18 18:48:18 x4 kernel: BTRFS info (device sda3): enabling free space tree Jan 18 18:48:18 x4 kernel: BTRFS info (device sda3): using free space tree Jan 18 18:48:18 x4 kernel: BTRFS: has skinny extents Jan 18 18:48:18 x4 kernel: BTRFS: detected SSD devices, enabling SSD mode Jan 18 18:48:18 x4 kernel: BTRFS: creating free space tree Jan 18 18:48:18 x4 kernel: BTRFS info (device sda3): setting 1 ro feature flag Jan 18 18:48:18 x4 kernel: BTRFS: checking UUID tree Jan 18 18:48:22 x4 kernel: BTRFS info (device sdc3): enabling free space tree Jan 18 18:48:22 x4 kernel: BTRFS info (device sdc3): using free space tree During subsequent boots the "enabling free space tree" message is repeated every time for the root fs. Jan 18 18:53:48 x4 kernel: BTRFS info (device sdb2): using free space tree Jan 18 18:53:48 x4 kernel: BTRFS info (device sda3): using free space tree Jan 18 18:53:52 x4 kernel: BTRFS info (device sdc3): enabling free space tree Jan 18 18:53:52 x4 kernel: BTRFS info (device sdc3): using free space treeTo answer my own question. Adding "rw rootflags=space_cache=v2" to the GRUB kernel entry fixes the issue...
This is because the contents of /etc/fstab are not available during first mount at boot time - for obvious reasons. Actually, the entry for rootfs in /etc/fstab is more or less a no-op and only there to satisfy some legacy tools. Some initramfs generators may also use this to construct a proper grub cmdline. At least dracut seems to rely on other mechanics, tho. So it's probably obsolete. There's only one point when it is used: During remount of the fs during system initialization. But only some mount options can change during remount, I imagine space_cache is not part of this. Due to this remount, it is best to keep both in sync: grub cmdline and fstab. I think systemd has some efforts of obsoleting the rootfs line from fstab, however I'm not sure what's the progress here. I still use it because last time I tried removing it, it had strange effects. -- Regards, Kai Replies to list-only preferred.