HomeFreeBSD

zvol: Enable zvol threading functionality on FreeBSD

Description

zvol: Enable zvol threading functionality on FreeBSD

Make zvol I/O requests processing asynchronous on FreeBSD side in some
cases. Clone zvol threading logic and required module parameters from
Linux side. Make zvol threadpool creation/destruction logic shared for
both Linux and FreeBSD.
The IO requests are processed asynchronously in next cases:

  • volmode=geom: if IO request thread is geom thread or cannot sleep.
  • volmode=cdev: if IO request passed thru struct cdevsw .d_strategy

routine, mean is AIO request.
In all other cases the IO requests are processed synchronously. The
volthreading zvol property is ignored on FreeBSD side.

Sponsored-by: vStack, Inc.
Reviewed-by: Alexander Motin <mav@FreeBSD.org>
Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Reviewed-by: @ImAwsumm
Signed-off-by: Fedor Uporov <fuporov.vstack@gmail.com>
Closes #17169

Details

Provenance
Fedor Uporov <60701163+fuporovvStack@users.noreply.github.com>Authored on May 8 2025, 7:25 PM
GitHub <noreply@github.com>Committed on May 8 2025, 7:25 PM
Parents
rGf13d760aa8c0: Delete dead code: dbuf_loan_arcbuf
Branches
Unknown
Tags
Unknown

Event Timeline

GitHub <noreply@github.com> committed rG1a8f5ad3b0ff: zvol: Enable zvol threading functionality on FreeBSD (authored by Fedor Uporov <60701163+fuporovvStack@users.noreply.github.com>).May 8 2025, 7:25 PM