HomeFreeBSD

fusefs: WIP fixing writeback cacheing

Description

fusefs: WIP fixing writeback cacheing

The current "writeback" cache mode, selected by the
vfs.fusefs.data_cache_mode sysctl, doesn't do writeback cacheing at all. It
merely goes through the motions of using buf(9), but then writes every
buffer synchronously. This commit:

  • Enables delayed writes when the sysctl is set to writeback cacheing
  • Fixes a cache-coherency problem when extending a file whose last page has just been written.
  • Removes the "sync" mount option, which had been set unconditionally.
  • Adjusts some SDT probes
  • Adds several new tests that mimic what fsx does but with more control and without a real file system. As I discover failures with fsx, I add regression tests to this file.
  • Adds a test that ensures we can append to a file without reading any data from it.

This change is still incomplete. Clustered writing is not yet supported,
and there are frequent "panic: vm_fault_hold: fault on nofault entry" panics
that I need to fix.

Sponsored by: The FreeBSD Foundation

Details

Provenance
asomersAuthored on
Parents
rS348930: fusefs: fix an infinite loop in the tests
Branches
Unknown
Tags
Unknown