HomeFreeBSD

Speed up vdev_geom_open_by_guids

Description

Speed up vdev_geom_open_by_guids

Speedup is hard to measure because the only time vdev_geom_open_by_guids
gets called on many drives at the same time is during boot. But with
vdev_geom_open hacked to always call vdev_geom_open_by_guids, operations
like "zpool create" speed up by 65%.

sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c

  • Read all of a vdev's labels in parallel instead of sequentially.
  • In vdev_geom_read_config, don't read the entire label, including
	  the uberblock.  That's a waste of RAM.  Just read the vdev config
	  nvlist.  Reduces the IO and RAM involved with tasting from 1MB to
	  448KB.

Reviewed by: avg
MFC after: 4 weeks
Sponsored by: Spectra Logic Corp
Differential Revision: https://reviews.freebsd.org/D6153

Details

Provenance
asomersAuthored on
Reviewer
avg
Differential Revision
D6153: Speed up vdev_geom_open_by_guids
Parents
rS300058: Make RQCS_PORT_LOGGED_OUT for ZOMBIE ports retriable.
Branches
Unknown
Tags
Unknown