Page MenuHomeFreeBSD

cam: Create xpt_deferred_callback
Needs ReviewPublic

Authored by imp on Aug 3 2022, 5:25 PM.
Tags
None
Referenced Files
Unknown Object (File)
Thu, Apr 25, 1:54 AM
Unknown Object (File)
Thu, Apr 25, 12:13 AM
Unknown Object (File)
Mon, Apr 22, 8:28 AM
Unknown Object (File)
Mon, Apr 22, 8:27 AM
Unknown Object (File)
Fri, Apr 19, 3:16 AM
Unknown Object (File)
Jan 11 2024, 8:04 AM
Unknown Object (File)
Dec 20 2023, 12:23 AM
Unknown Object (File)
Dec 16 2023, 1:38 AM
Subscribers
None

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 Passed
Unit
No Test Coverage
Build Status
Buildable 46740
Build 43629: arc lint + arc unit