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)
Sat, Oct 3, 2:31 AM
Unknown Object (File)
Thu, Oct 1, 6:47 AM
Unknown Object (File)
Fri, Sep 25, 6:32 PM
Unknown Object (File)
Thu, Sep 17, 11:09 PM
Unknown Object (File)
Sat, Sep 12, 11:25 PM
Unknown Object (File)
Thu, Sep 10, 11:30 PM
Unknown Object (File)
Tue, Sep 8, 11:34 PM
Unknown Object (File)
Tue, Sep 8, 6:50 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