mirror_zfs/cmd
Rob Norris 3e7e19e028 pool_iter_refresh: don't refresh pools twice
In "all pools" mode, pool_iter_refresh() will call zpool_iter(), which
will call zpool_refresh_stats() before calling add_pool(). If we already
have the pool, this is a different handle, so we just release it and
return. Back in pool_iter_refresh(), we then call zpool_stats_refresh()
again for our handle on the same pool.

All together, this means we're doing two ZFS_IOC_POOL_STATS calls into
the kernel for every pool in the system. This isn't wrong, but it does
double the pressure on global locks.

Instead, we add a new function zpool_refresh_stats_from_handle() that
simply copies the pool config and state from one handle to another, and
use it to update our handle before we release it in add_pool(), so we
only have one call per pool per interval.

Sponsored-by: Klara, Inc.
Sponsored-by: Wasabi Technology, Inc.
Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Rob Norris <rob.norris@klarasystems.com>
Closes #17807
2025-10-21 09:50:43 -07:00
..
raidz_test SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
zdb zdb: add ZFS_KEYFORMAT_RAW support for -K option 2025-09-25 12:08:20 -07:00
zed zed: Add synchronous zedlets 2025-09-11 15:58:59 -07:00
zfs Make mount/share errors non-fatal for zfs create/clone 2025-10-21 09:50:43 -07:00
zinject zinject: Introduce ready delay fault injection 2025-10-21 09:50:43 -07:00
zpool pool_iter_refresh: don't refresh pools twice 2025-10-21 09:50:43 -07:00
zpool_influxdb SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
zstream Install zarcstat and zarcsummary symlinks in Makefile 2025-09-09 17:05:30 -07:00
dbufstat.in SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
fsck.zfs.in cmd: move single-file binaries up, extract udev programs to udev/ 2022-05-10 10:20:34 -07:00
Makefile.am cmd: rename arcstat to zarcstat 2025-09-10 15:01:20 -07:00
mount_zfs.c SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
zarcstat.in cmd: rename arcstat to zarcstat 2025-09-10 15:01:20 -07:00
zarcsummary cmd: rename arc_summary to zarcsummary 2025-09-10 15:01:16 -07:00
zfs_ids_to_path.c SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
zgenhostid.c SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
zhack.c Refactor zhack label repair and fix -c regression on nonzero TXG 2025-09-17 16:33:59 -07:00
zilstat.in ZIL: "crash" the ZIL if the pool suspends during fallback 2025-08-08 16:43:26 -07:00
ztest.c ZIL: pass commit errors back to ITX callbacks 2025-08-08 16:43:20 -07:00
zvol_wait zvol_wait logic may terminate prematurely 2022-10-11 12:12:04 -07:00