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)
Tue, Dec 2, 12:35 AM
Unknown Object (File)
Sun, Nov 23, 5:24 PM
Unknown Object (File)
Sun, Nov 16, 3:54 PM
Unknown Object (File)
Sun, Nov 16, 11:18 AM
Unknown Object (File)
Nov 2 2025, 1:35 AM
Unknown Object (File)
Oct 20 2025, 3:38 AM
Unknown Object (File)
Oct 20 2025, 3:32 AM
Unknown Object (File)
Oct 19 2025, 12:57 PM
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