Page MenuHomeFreeBSD

Enable soft updates by default for UFS2 filesystems

Authored by mckusick on May 15 2024, 12:32 AM.
Referenced Files
Unknown Object (File)
Sun, Jul 14, 11:50 AM
Unknown Object (File)
Fri, Jul 12, 2:16 AM
Unknown Object (File)
Wed, Jul 10, 5:50 PM
Unknown Object (File)
Sat, Jul 6, 3:21 PM
Unknown Object (File)
Thu, Jun 27, 2:48 AM
Unknown Object (File)
Jun 19 2024, 7:23 PM
Unknown Object (File)
May 19 2024, 4:18 PM
Unknown Object (File)
May 19 2024, 4:18 PM



Soft updates dramatically improve the performance of UFS filesystems. The newfs(8) utility currently does not enable them by default. The FreeBSD installer enables soft updates by default. However custom built installations that do not specify the -U option to newfs(8) and the prebuilt UFS system images get filesystems without soft updates enabled.

There are several testing sites that run benchmarks comparing the performance of Linux distributions versus BSD distributions. When they run filesystem comparison benchmarks they use newfs(8) to create the UFS filesystem. Because it does not have soft updates enabled it runs poorly versus the Linux ext4 filesystem. When I have suggested to them that they should enable soft updates on the UFS filesystem in their testing their response is that they expect the utility that creates the filesystem to use optimal defaults and that they cannot be expected to fiddle with various option settings.

The purpose of this change is to give a filesystem created with newfs(8) reasonably optimal settings. For UFS2 this means enabling soft updates. For UFS1 which tends to be used on small systems with minimal memory and CPU speed, the lower memory footprint of running without soft updates is a more sensible default.

This change adds a note in the section of the newfs(8) manual page that describes the -U option for enabling soft updates that they are enabled by default for UFS2 filesystems and that they can be disabled by using tunefs(8).

Test Plan

Confirm that soft updates are enabled when running newfs(8).

Diff Detail

rG FreeBSD src repository
Lint Not Applicable
Tests Not Applicable

Event Timeline

I think it would be useful to have an option to disable SU, so that you still can format a volume with single command invocation regardless of SU enablement.

This revision is now accepted and ready to land.May 15 2024, 12:44 AM

I don't know.. has soft updates cooked enough ? :)