[Midnightbsd-cvs] [MidnightBSD/src] bcf0f1: Avoid extra taskq_dispatch() calls by DMU.
Lucas Holt
noreply at github.com
Sun Nov 15 01:49:32 EST 2020
Branch: refs/heads/master
Home: https://github.com/MidnightBSD/src
Commit: bcf0f1b31843666930d3cb8a8ed01c5c976dcb3f
https://github.com/MidnightBSD/src/commit/bcf0f1b31843666930d3cb8a8ed01c5c976dcb3f
Author: Lucas Holt <luke at foolishgames.com>
Date: 2020-11-15 (Sun, 15 Nov 2020)
Changed paths:
M sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c
M sys/cddl/contrib/opensolaris/uts/common/fs/zfs/multilist.c
M sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/multilist.h
Log Message:
-----------
Avoid extra taskq_dispatch() calls by DMU.
DMU sync code calls taskq_dispatch() for each sublist of os_dirty_dnodes
and os_synced_dnodes. Since the number of sublists by default is equal
to number of CPUs, it will dispatch equal, potentially large, number of
tasks, waking up many CPUs to handle them, even if only one or few of
sublists actually have any work to do.
This change adds check for empty sublists to avoid this.
More information about the Midnightbsd-cvs
mailing list