Previously, iscsi_poll() just panicked. This meant if you got a panic
on a box when using the iSCSI initiator, the attempt to shutdown would
trigger a nested panic and never write out a core. Now, CCB's sent to
iSCSI devices (such as the sychronize-cache request in dashutdown())
just fail with a timeout during a panic shutdown.
Details
- Reviewers
mav imp scottl - Commits
- rG47769bc5573f: iscsi: Mark iSCSI CAM sims as non-pollable.
Diff Detail
- Repository
- rS FreeBSD src repository - subversion
- Lint
Lint Passed - Unit
No Test Coverage - Build Status
Buildable 36664 Build 33553: arc lint + arc unit
Event Timeline
Somebody will need to go through the tree and update other alike drivers, which should be plenty.
We can't get the status for the dasync stuff, but it will still be sent... Is that really a timeout error?
Without scheduler active request won't even be sent, since it is handled by different thread. Plus it need to allocate some memory, which is bad if we are in panic, since it may corrupt the dump.
All true. Does the iscsi action routine cope? We call it higher up in the stack... other sims might be able to do something, but not get status back. Though that is largely theoretical.
See my comment in the other review. cam_periph_runccb() doesn't call xpt_action() for a polled request with this set of changes, so iscsi_action() will never "see" a polled ccb.