HomeFreeBSD

zvol_wait logic may terminate prematurely

Description

zvol_wait logic may terminate prematurely

Setups that have a lot of zvols may see zvol_wait terminate prematurely
even though the script is still making progress. For example, we have a
customer that called zvol_wait for ~7100 zvols and by the last iteration
of that script it was still waiting on ~2900. Similarly another one
called zvol_wait for 2200 and by the time the script terminated there
were only 50 left.

This patch adjusts the logic to stay within the outer loop of the script
if we are making any progress whatsoever.

Reviewed-by: George Wilson <gwilson@delphix.com>
Reviewed-by: Pavel Zakharov <pavel.zakharov@delphix.com>
Reviewed-by: Don Brady <don.brady@delphix.com>
Signed-off-by: Serapheim Dimitropoulos <serapheim@delphix.com>
Closes #13998

Details

Provenance
Serapheim Dimitropoulos <serapheim@delphix.com>Authored on Oct 11 2022, 7:12 PM
Brian Behlendorf <behlendorf1@llnl.gov>Committed on Nov 1 2022, 7:35 PM
Parents
rG820edcbf9111: Remove ambiguity on demand vs prefetch stats reported by arc_summary
Branches
Unknown
Tags
Unknown

Event Timeline

Brian Behlendorf <behlendorf1@llnl.gov> committed rG25096e11800a: zvol_wait logic may terminate prematurely (authored by Serapheim Dimitropoulos <serapheim@delphix.com>).Nov 1 2022, 7:35 PM