|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [win-pv-devel] [PATCH xenbus] Log system timers pre- and post-suspend
It's useful to know what difference, if any, in the main system timers
Windows is subject to across a suspend/resume or migrate.
Signed-off-by: Paul Durrant <paul.durrant@xxxxxxxxxx>
---
src/xenbus/suspend.c | 44 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 44 insertions(+)
diff --git a/src/xenbus/suspend.c b/src/xenbus/suspend.c
index 18cae1b..5667e84 100644
--- a/src/xenbus/suspend.c
+++ b/src/xenbus/suspend.c
@@ -140,6 +140,46 @@ SuspendDeregister(
__SuspendFree(Callback);
}
+static FORCEINLINE VOID
+__SuspendLogTimers(
+ IN const CHAR *Prefix
+ )
+{
+ LARGE_INTEGER SystemTime;
+ LARGE_INTEGER TickCount;
+ ULONG TimeIncrement;
+ LARGE_INTEGER PerformanceCounter;
+ LARGE_INTEGER PerformanceFrequency;
+
+ KeQuerySystemTime(&SystemTime);
+
+ TimeIncrement = KeQueryTimeIncrement();
+ KeQueryTickCount(&TickCount);
+
+ PerformanceCounter = KeQueryPerformanceCounter(&PerformanceFrequency);
+
+ LogPrintf(LOG_LEVEL_INFO,
+ "%s: SystemTime = %08x.%08x\n",
+ Prefix,
+ SystemTime.HighPart,
+ SystemTime.LowPart);
+
+ LogPrintf(LOG_LEVEL_INFO,
+ "%s: TickCount = %08x.%08x (TimeIncrement = %08x)\n",
+ Prefix,
+ TickCount.HighPart,
+ TickCount.LowPart,
+ TimeIncrement);
+
+ LogPrintf(LOG_LEVEL_INFO,
+ "%s: PerformanceCounter = %08x.%08x (Frequency = %08x.%08x)\n",
+ Prefix,
+ PerformanceCounter.HighPart,
+ PerformanceCounter.LowPart,
+ PerformanceFrequency.HighPart,
+ PerformanceFrequency.LowPart);
+}
+
NTSTATUS
#pragma prefast(suppress:28167) // Function changes IRQL
SuspendTrigger(
@@ -158,6 +198,8 @@ SuspendTrigger(
SyncCapture();
SyncDisableInterrupts();
+ __SuspendLogTimers("PRE-SUSPEND");
+
LogPrintf(LOG_LEVEL_INFO,
"SUSPEND: SCHEDOP_shutdown:SHUTDOWN_suspend ====>\n");
status = SchedShutdown(SHUTDOWN_suspend);
@@ -165,6 +207,8 @@ SuspendTrigger(
"SUSPEND: SCHEDOP_shutdown:SHUTDOWN_suspend <==== (%08x)\n",
status);
+ __SuspendLogTimers("POST-SUSPEND");
+
if (NT_SUCCESS(status)) {
PLIST_ENTRY ListEntry;
--
2.5.3
_______________________________________________
win-pv-devel mailing list
win-pv-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/win-pv-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |