Virtual Kernel mode Windows WMI driver, for windows server 2012 R2 and using Mellanox

Janaki

n00b
Joined
Feb 25, 2015
Messages
1
Hi All,

I am working Virtual Kernel mode Windows WMI driver, for windows server 2012 R2 and using Mellanox 4.8 stack.

While disabling the Virtual kernel mode driver running with heavy traffic, API modify_qp() is not responding properly. It gets hanged.

In case of less traffic,it is responding fine. While running IPERF, traffic carried nearly 15 Gbps per second, Modify_QP is not responding in some scenario (2 out of 10).

code:

AcquireWriteLock(&Adapter->IBListLock, &lockState);
listEntry = Adapter->IBListHead.Flink;
while (listEntry != &Adapter->IBListHead) {
pviConnectInfo = (PVI_CONNECT_INFO *)CONTAINING_RECORD(listEntry, PVI_CONNECT_INFO, listEntry);

if (pviConnectInfo->qp && pviConnectInfo->p_ifc) {
qp_mod.req_state = IB_QPS_ERROR;
ibStatus = pviConnectInfo->p_ifc->modify_qp(pviConnectInfo->qp, &qp_mod);
if (ibStatus != IB_SUCCESS) {
DEBUGP(VNIC_ERROR, (FUNCTION": %s: failed to move QP %p to ERROR state, error 0x%x\n",
Adapter->vnic_name, pviConnectInfo->qp, ibStatus));
}
}

listEntry = listEntry->Flink;
}
ReleaseLock(&Adapter->IBListLock, &lockState);

Here in this case,Modify_qp() fails to respond immediately (that is,it fails to move to error state)and it gets hanged, then i am getting BSOD and it is showing "watchdog timeout" . The reason is NdisAcquireReadWriteLock() acquired prolonged period, more than 25 micro seconds.

Please suggest me how to resolve and handle this issue.

Regards,
Janaki
 
Back
Top