HomeFreeBSD

Create separate taskqueue to call zfs_unlinked_drain().

Description

Create separate taskqueue to call zfs_unlinked_drain().

r334810 introduced zfs_unlinked_drain() dispatch to taskqueue on every
deletion of a file with extended attributes. Using system_taskq for that
with its multiple threads in case of multiple files deletion caused all
available CPU threads to uselessly spin on busy locks, completely blocking
the system.

Use of single dedicated taskqueue is the only easy solution I've found,
while in would be great if we could specify that some task should be
executed only once at a time, but never in parallel, while many tasks
could use different threads same time.

Sponsored by: iXsystems, Inc.

Details

Provenance
mavAuthored on
Parents
rS338204: Move all devfs related files to sbin/devfs/
Branches
Unknown
Tags
Unknown