repository: C:/dev/kvm-guest-drivers-windows
branch: master
commit e80717e6d341ba9657411baf34393363f9ec7f3d
Author: Yan Vugenfirer <[email protected]>
Date:   Wed Jul 13 14:58:21 2011 +0300

    [NetKVM] Debug printouts with timestamps to enable debugging of Power 
managment events (S3, S4)

diff --git a/NetKVM/Common/ndis56common.h b/NetKVM/Common/ndis56common.h
index f80c287..cfc2c7a 100644
--- a/NetKVM/Common/ndis56common.h
+++ b/NetKVM/Common/ndis56common.h
@@ -270,6 +270,7 @@ typedef struct _tagPARANDIS_ADAPTER
        BOOLEAN                                 bDoKickOnNoBuffer;
        BOOLEAN                                 bSurprizeRemoved;
        BOOLEAN                                 bUsingMSIX;
+       UINT                                    uNumberOfHandledRXPacketsInDPC;
        NDIS_DEVICE_POWER_STATE powerState;
        LONG                                    dpcReceiveActive;
        LONG                                    counterDPCInside;
diff --git a/NetKVM/wlh/ParaNdis6-Driver.c b/NetKVM/wlh/ParaNdis6-Driver.c
index 9e7a06a..1c753d2 100644
--- a/NetKVM/wlh/ParaNdis6-Driver.c
+++ b/NetKVM/wlh/ParaNdis6-Driver.c
@@ -490,6 +490,7 @@ static NDIS_STATUS ParaNdis6_Restart(
        NDIS_STATUS  status = NDIS_STATUS_SUCCESS;
        PARANDIS_ADAPTER *pContext = (PARANDIS_ADAPTER *)miniportAdapterContext;
        DEBUG_ENTRY(0);
+
        ParaNdis_DebugHistory(pContext, hopSysResume, NULL, 1, 0, 0);
        ParaNdis6_SendPauseRestart(pContext, FALSE, NULL);
        ParaNdis6_ReceivePauseRestart(pContext, FALSE, NULL);
@@ -985,11 +986,21 @@ NTSTATUS DriverEntry(PDRIVER_OBJECT pDriverObject, 
PUNICODE_STRING pRegistryPath
 {
        NDIS_STATUS                             status = NDIS_STATUS_FAILURE;
        NDIS_MINIPORT_DRIVER_CHARACTERISTICS    chars;
+#ifdef DEBUG_TIMING
+       LARGE_INTEGER TickCount;
+       LARGE_INTEGER SysTime;
+#endif DEBUG_TIMING
 
        ParaNdis_DebugInitialize(pDriverObject, pRegistryPath);
 
        DEBUG_ENTRY(0);
        _LogOutString(0, __DATE__ " " __TIME__);
+#ifdef DEBUG_TIMING
+       KeQueryTickCount(&TickCount);
+       NdisGetCurrentSystemTime(&SysTime);
+       DPrintf(0, ("\n%s>> CPU #%d, perf-counter %I64d, tick count %I64d, 
NDIS_sys_time %I64d\n", __FUNCTION__, KeGetCurrentProcessorNumber(), 
KeQueryPerformanceCounter(NULL).QuadPart,TickCount.QuadPart, SysTime.QuadPart));
+#endif
+
        NdisZeroMemory(&chars, sizeof(chars));
 
        chars.Header.Type      = 
NDIS_OBJECT_TYPE_MINIPORT_DRIVER_CHARACTERISTICS;
diff --git a/NetKVM/wlh/ParaNdis6-Oid.c b/NetKVM/wlh/ParaNdis6-Oid.c
index e71e80c..86a2e68 100644
--- a/NetKVM/wlh/ParaNdis6-Oid.c
+++ b/NetKVM/wlh/ParaNdis6-Oid.c
@@ -441,6 +441,15 @@ static void OnSetPowerWorkItem(PVOID  WorkItemContext, 
NDIS_HANDLE  NdisIoWorkIt
        PARANDIS_ADAPTER *pContext = pwi->pContext;
        PNDIS_OID_REQUEST pRequest = (PNDIS_OID_REQUEST)pwi->request;
        NDIS_STATUS status = NDIS_STATUS_SUCCESS;
+#ifdef DEBUG_TIMING
+       LARGE_INTEGER TickCount;
+       LARGE_INTEGER SysTime;
+
+       KeQueryTickCount(&TickCount);
+       NdisGetCurrentSystemTime(&SysTime);
+       DPrintf(0, ("\n%s>> CPU #%d, perf-counter %I64d, tick count %I64d, 
NDIS_sys_time %I64d\n", __FUNCTION__, KeGetCurrentProcessorNumber(), 
KeQueryPerformanceCounter(NULL).QuadPart,TickCount.QuadPart, SysTime.QuadPart));
+#endif
+
        if (pwi->state == NetDeviceStateD0)
        {
                ParaNdis_PowerOn(pContext);
@@ -463,7 +472,17 @@ NDIS_STATUS ParaNdis_OnSetPower(PARANDIS_ADAPTER 
*pContext, tOidDesc *pOid)
 {
        NDIS_STATUS status;
        NDIS_DEVICE_POWER_STATE newState;
+#ifdef DEBUG_TIMING
+       LARGE_INTEGER TickCount;
+       LARGE_INTEGER SysTime;
+       
+       KeQueryTickCount(&TickCount);
+       NdisGetCurrentSystemTime(&SysTime);
+       DPrintf(0, ("\n%s>> CPU #%d, perf-counter %I64d, tick count %I64d, 
NDIS_sys_time %I64d\n", __FUNCTION__, KeGetCurrentProcessorNumber(), 
KeQueryPerformanceCounter(NULL).QuadPart,TickCount.QuadPart, SysTime.QuadPart));
+#endif
+
        DEBUG_ENTRY(0);
+
        status = ParaNdis_OidSetCopy(pOid, &newState, sizeof(newState));
        if (status == NDIS_STATUS_SUCCESS)
        {
--
To unsubscribe from this list: send the line "unsubscribe kvm-commits" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to