[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: xeniface: assertion failure on hibernation
On 15/07/2024 16:59, Rafał Wojdyła wrote: Hi,I was doing some tests with the default system shutdown that actually hibernates the OS and I'm hitting the following assertion:xen|SystemPowerStateCallback: <- S0 xeniface|__FdoQuerySystemPower: ====> (Hibernate:Hibernate) xeniface|FdoRequestQueryDevicePower: D3 xeniface|__FdoQueryDevicePower: ====> (D3:Hibernate)xeniface|__FdoRequestQueryDevicePower: ASSERTION FAILED: (((NTSTATUS)(IoStatus->Status)) >= 0) Assertion xeniface\src\xeniface\fdo.c(1944): (((NTSTATUS)(IoStatus->Status)) >= 0)It's reproducible on Win 10 and 11 with the latest xenbus and xeniface (debug build), no other pv drivers or tools. A bit more info below. This is exactly the kind of reason why I feared changing the power IRP handling code. Anything to do with PnP or power handling is just so fragile. Any chance you could dig into this further? 0: kd> k # Child-SP RetAddr Call Site00 ffff930b`bf235750 fffff802`34f7acc4 xeniface!__FdoRequestQueryDevicePower+0x57 [xeniface\src\xeniface\fdo.c @ 1944]01 ffff930b`bf235790 fffff802`34e54975 nt!PopRequestCompletion+0x64 02 ffff930b`bf2357e0 fffff802`34e547b7 nt!IopfCompleteRequest+0x1a5 03 ffff930b`bf2358c0 fffff802`380a81be nt!IofCompleteRequest+0x1704 ffff930b`bf2358f0 fffff802`380a7dfd xenbus!PdoDispatchPower+0x6e [xenbus\src\xenbus\pdo.c @ 1934] 05 ffff930b`bf235940 fffff802`3808a2e8 xenbus!PdoDispatch+0x5d [xenbus\src\xenbus\pdo.c @ 1970] 06 ffff930b`bf235980 fffff802`34f986cf xenbus!DriverDispatch+0x228 [xenbus\src\xenbus\driver.c @ 342]07 ffff930b`bf235a00 fffff802`34e2d40d nt!IopPoHandleIrp+0x3b 08 ffff930b`bf235a30 fffff802`3b1c1029 nt!IofCallDriver+0x6d09 ffff930b`bf235a70 fffff802`3b1c0eb7 xeniface!__FdoQueryDevicePowerDown+0x119 [xeniface\src\xeniface\fdo.c @ 1882] 0a ffff930b`bf235ad0 fffff802`3b1bcd1c xeniface!__FdoQueryDevicePower+0x1b7 [xeniface\src\xeniface\fdo.c @ 1915] 0b ffff930b`bf235b50 fffff802`3b1c2b69 xeniface!FdoDevicePower+0xfc [xeniface\src\xeniface\fdo.c @ 2126] 0c ffff930b`bf235bc0 fffff802`34f48da5 xeniface!ThreadFunction+0x39 [xeniface\src\xeniface\thread.c @ 110]0d ffff930b`bf235c10 fffff802`35006b58 nt!PspSystemThreadStartup+0x55 0e ffff930b`bf235c60 00000000`00000000 nt!KiStartSystemThread+0x28 0: kd> ?? (DWORD) IoStatus->Status DWORD 0xc00000bb 0: kd> !error 0xc00000bbError code: (NTSTATUS) 0xc00000bb (3221225659) - The request is not supported.0: kd> .frame 0n4;dv /t /v04 ffff930b`bf2358f0 fffff802`380a7dfd xenbus!PdoDispatchPower+0x6e [xenbus\src\xenbus\pdo.c @ 1934]ffff930b`bf235940 struct _XENBUS_PDO * Pdo = 0xffffc78e`45efe230 ffff930b`bf235948 struct _IRP * Irp = 0xffffc78e`4c29ade0 ffff930b`bf235910 unsigned char MinorFunction = 0x03 ''ffff930b`bf235920 struct _IO_STACK_LOCATION * StackLocation = 0xffffc78e`4c29aef8 IRP_MJ_POWER / IRP_MN_WAIT_WAKE for Device for "\Driver\xenbus"ffff930b`bf235914 long status = 0n-1073741637 0: kd> ?? (DWORD)Irp->IoStatus.Status DWORD 0xc00000bb 0: kd> .frame 0n9;dv /t /v09 ffff930b`bf235a70 fffff802`3b1c0eb7 xeniface!__FdoQueryDevicePowerDown+0x119 [xeniface\src\xeniface\fdo.c @ 1882]ffff930b`bf235ad0 struct _XENIFACE_FDO * Fdo = 0xffffc78e`465154a0 ffff930b`bf235ad8 struct _IRP * Irp = 0xffffc78e`4c29ade0ffff930b`bf235ab0 struct _IO_STACK_LOCATION * StackLocation = 0xffffc78e`4c29aef8 IRP_MJ_POWER / IRP_MN_WAIT_WAKE for Device for "\Driver\xenbus"ffff930b`bf235a90 _DEVICE_POWER_STATE DeviceState = PowerDeviceD3 (0n4) ffff930b`bf235a9c long status = 0n0 0: kd> ?? (DWORD)Irp->IoStatus.Status DWORD 0xc00000bbIt's probably harmless here, but I also found some probable bugs in the gnttab code seemingly related to hibernation so thought I'd share this first. Ah. maybe you're already on it. Paul
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |