HomeFreeBSD

ZIO: Optimize zio_flush()

Description

ZIO: Optimize zio_flush()

  • Generalize vdev_nowritecache handling by traversing through the

VDEV tree and skipping children ZIOs where not supported.

  • Remove intermediate zio_null() in case of several VDEV children.
  • Remove children handling from zio_ioctl(). There are no other

use cases for this code beside DKIOCFLUSHWRITECACHED, and would there
be, I doubt they would so straightforward apply to all VDEV children.

Comparing to removed previous optimization this should improve cases
of redundant ZILs/SLOGs.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: George Wilson <george.wilson@delphix.com>
Signed-off-by: Alexander Motin <mav@FreeBSD.org>
Sponsored by: iXsystems, Inc.
Closes #15515

Details

Provenance
mavAuthored on Nov 17 2023, 10:00 PM
GitHub <noreply@github.com>Committed on Nov 17 2023, 10:00 PM
Parents
rG22c8c33a588d: Use abd_zero_off() where applicable
Branches
Unknown
Tags
Unknown