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:
Peter Lieven
2015-05-04 16:41:40 +02:00
parent e7a90f7ecb
commit efcf602476
3 changed files with 8 additions and 1 deletions

View File

@@ -87,6 +87,7 @@ struct iscsi_context {
unsigned char isid[6];
uint32_t itt;
uint32_t cmdsn;
uint32_t min_cmdsn_waiting;
uint32_t expcmdsn;
uint32_t maxcmdsn;
uint32_t statsn;

View File

@@ -794,7 +794,7 @@ iscsi_login_async(struct iscsi_context *iscsi, iscsi_command_cb cb,
if (!iscsi->current_phase && !iscsi->secneg_phase) {
iscsi->itt = (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,

View File

@@ -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)",
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;
if (pdu->callback == NULL) {