Page MenuHomeFreeBSD

cam: Create xpt_deferred_callback
Needs ReviewPublic

Authored by imp on Aug 3 2022, 5:25 PM.

Details

Reviewers
ken
mav
Group Reviewers
cam
Summary

Implement the ability to queue a callback to xpt_async_td for later
processing. This queues a single callback that's specified at the time
of creation, rather than looked up based on topology (which is how it
differs from XPT_ASYNC). There is also no topology walk, and the
callback is responsible for all locking.

This is similar to a taskqueue, but uses the existing async thread and
provides integration with CAM by freezing the appropriate queue until
processing of the call has been completed. We accomplish this by
defining a new CCB (ccb_deferred_callback) and a new message type
(XPT_DEFERRED_CALLBACK). The old ccb_async doesn't provide a function
pointer and expanding CCB types is problematic.

Sponsored by: Netflix

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint OK
Unit
No Unit Test Coverage
Build Status
Buildable 46740
Build 43629: arc lint + arc unit