Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create separate taskqueue to call zfs_unlinked_drain(). #141

Merged
merged 1 commit into from Aug 22, 2018

Conversation

amotin
Copy link
Collaborator

@amotin amotin commented Aug 22, 2018

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.
Ticket: #41910

(cherry picked from commit c1c7ce6)

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.
Ticket:	#41910

(cherry picked from commit c1c7ce6)
@ghost ghost assigned amotin Aug 22, 2018
@ghost ghost added the review label Aug 22, 2018
@amotin amotin merged commit 5592caf into freenas/11-stable Aug 22, 2018
@ghost ghost removed the review label Aug 22, 2018
@amotin amotin deleted the FIX-41910 branch April 30, 2019 17:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
1 participant