HomeFreeBSD

Fix short-lived txg caused by autotrim

Description

Fix short-lived txg caused by autotrim

Current autotrim causes short-lived txg through:

  1. calling txg_wait_synced() in metaslab_enable()
  2. calling txg_wait_open() with should_quiesce = true

This patch addresses all the issues mentioned above.

A new cv, vdev_autotrim_kick_cv is added to kick autotrim activity.
It will be signaled once a txg is synced so that it does not change
the original autotrim pace. Also because it is a cv, the wait is
interruptible which speeds up the vdev_autotrim_stop_wait() call.

Finally, combining big zfs_txg_timeout, txg_wait_open() also causes
delay when exporting a pool.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: jxdking <lostking2008@hotmail.com>
Issue #8993
Closes #12194

Details

Provenance
Kevin Jin <33590050+jxdking@users.noreply.github.com>Authored on Mar 28 2023, 3:43 PM
GitHub <noreply@github.com>Committed on Mar 28 2023, 3:43 PM
Parents
rG64bfa6bae3dd: Additional limits on hole reporting
Branches
Unknown
Tags
Unknown

Event Timeline

GitHub <noreply@github.com> committed rG65d10bd87c40: Fix short-lived txg caused by autotrim (authored by Kevin Jin <33590050+jxdking@users.noreply.github.com>).Mar 28 2023, 3:43 PM