[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