Page MenuHomeFreeBSD

cam: Move temporary queue from stack to softc
Needs ReviewPublic

Authored by imp on Mar 15 2024, 4:16 AM.
Tags
None
Referenced Files
Unknown Object (File)
Nov 25 2024, 6:04 PM
Unknown Object (File)
Nov 25 2024, 12:33 PM
Unknown Object (File)
Nov 16 2024, 1:19 PM
Unknown Object (File)
Nov 16 2024, 2:54 AM
Unknown Object (File)
Nov 14 2024, 6:12 PM
Unknown Object (File)
Nov 14 2024, 8:18 AM
Unknown Object (File)
Nov 11 2024, 6:04 PM
Unknown Object (File)
Sep 24 2024, 7:49 AM
Subscribers
None

Details

Reviewers
mav
ken
Group Reviewers
cam
Summary

For the async thread, as well as the per-cpu done threads, move the
queue we copy all the requests into to the softc. This allows us to
dispaly this otherwise hidden state form the debugger.

Sponsored by: Netflix

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 59956
Build 56841: arc lint + arc unit

Event Timeline

imp requested review of this revision.Mar 15 2024, 4:16 AM

My only complaint is that it puts the queue into the same cache line as the main queue, that may be modified by writers. But if you really need it for debugging, it could be understood.

PS: You seem to be doing STAILQ_INIT() twice for doneqs.

I think it's OK they share a cache line, but if we find that it's too much cache line traffic we can revisit. The xpt_done_td queues are used only for the non-MP safe things as well as I think for the error path, both of which are relatively rare. The async is for async messages, which are also rare.

The xpt_done_td queues are used only for the non-MP safe things as well as I think for the error path, both of which are relatively rare.

They are used for all SIMs not using xpt_done_direct(), which are majority. But whatever, if you need it, I don't insist.