Page MenuHomeFreeBSD

iscsi: Mark iSCSI CAM sims as non-pollable.
ClosedPublic

Authored by jhb on Feb 1 2021, 11:32 PM.
Tags
None
Referenced Files
Unknown Object (File)
Tue, Nov 12, 8:31 PM
Unknown Object (File)
Oct 19 2024, 4:55 PM
Unknown Object (File)
Oct 15 2024, 6:09 AM
Unknown Object (File)
Oct 2 2024, 6:56 AM
Unknown Object (File)
Sep 30 2024, 1:13 PM
Unknown Object (File)
Sep 29 2024, 8:33 PM
Unknown Object (File)
Sep 28 2024, 4:13 AM
Unknown Object (File)
Sep 26 2024, 10:31 PM
Subscribers

Details

Summary

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.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

jhb requested review of this revision.Feb 1 2021, 11:32 PM
jhb created this revision.

Somebody will need to go through the tree and update other alike drivers, which should be plenty.

This revision is now accepted and ready to land.Feb 1 2021, 11:44 PM

We can't get the status for the dasync stuff, but it will still be sent... Is that really a timeout error?

In D28455#636682, @imp wrote:

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.

In D28455#636684, @mav wrote:
In D28455#636682, @imp wrote:

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.

In D28455#636687, @imp wrote:
In D28455#636684, @mav wrote:
In D28455#636682, @imp wrote:

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.

This revision was automatically updated to reflect the committed changes.