nop: print a warning if the oldest element in iscsi->waitpdu queue is stuck
Signed-off-by: Peter Lieven <pl@kamp.de>
This commit is contained in:
@@ -87,6 +87,7 @@ struct iscsi_context {
|
|||||||
unsigned char isid[6];
|
unsigned char isid[6];
|
||||||
uint32_t itt;
|
uint32_t itt;
|
||||||
uint32_t cmdsn;
|
uint32_t cmdsn;
|
||||||
|
uint32_t min_cmdsn_waiting;
|
||||||
uint32_t expcmdsn;
|
uint32_t expcmdsn;
|
||||||
uint32_t maxcmdsn;
|
uint32_t maxcmdsn;
|
||||||
uint32_t statsn;
|
uint32_t statsn;
|
||||||
|
|||||||
@@ -794,7 +794,7 @@ iscsi_login_async(struct iscsi_context *iscsi, iscsi_command_cb cb,
|
|||||||
if (!iscsi->current_phase && !iscsi->secneg_phase) {
|
if (!iscsi->current_phase && !iscsi->secneg_phase) {
|
||||||
iscsi->itt = (u_int32_t) rand();
|
iscsi->itt = (u_int32_t) rand();
|
||||||
iscsi->cmdsn = (u_int32_t) rand();
|
iscsi->cmdsn = (u_int32_t) rand();
|
||||||
iscsi->expcmdsn = iscsi->maxcmdsn = iscsi->cmdsn;
|
iscsi->expcmdsn = iscsi->maxcmdsn = iscsi->min_cmdsn_waiting = iscsi->cmdsn;
|
||||||
}
|
}
|
||||||
|
|
||||||
pdu = iscsi_allocate_pdu(iscsi,
|
pdu = iscsi_allocate_pdu(iscsi,
|
||||||
|
|||||||
@@ -143,6 +143,12 @@ iscsi_process_nop_out_reply(struct iscsi_context *iscsi, struct iscsi_pdu *pdu,
|
|||||||
"NOP-In received (pdu->itt %08x, pdu->ttt %08x, iscsi->maxcmdsn %08x, iscsi->expcmdsn %08x, iscsi->statsn %08x)",
|
"NOP-In received (pdu->itt %08x, pdu->ttt %08x, iscsi->maxcmdsn %08x, iscsi->expcmdsn %08x, iscsi->statsn %08x)",
|
||||||
pdu->itt, 0xffffffff, iscsi->maxcmdsn, iscsi->expcmdsn, iscsi->statsn);
|
pdu->itt, 0xffffffff, iscsi->maxcmdsn, iscsi->expcmdsn, iscsi->statsn);
|
||||||
|
|
||||||
|
if (iscsi->waitpdu->cmdsn == iscsi->min_cmdsn_waiting) {
|
||||||
|
ISCSI_LOG(iscsi, 2, "Oldest element in waitqueue is unchanged since last NOP-In (iscsi->min_cmdsn_waiting %08x)",
|
||||||
|
iscsi->min_cmdsn_waiting);
|
||||||
|
}
|
||||||
|
iscsi->min_cmdsn_waiting = iscsi->waitpdu->cmdsn;
|
||||||
|
|
||||||
iscsi->nops_in_flight = 0;
|
iscsi->nops_in_flight = 0;
|
||||||
|
|
||||||
if (pdu->callback == NULL) {
|
if (pdu->callback == NULL) {
|
||||||
|
|||||||
Reference in New Issue
Block a user