[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [win-pv-devel] xenvbd (8.x) - blkback/tapdisk3 problems
Hello. On Mon, 31 Oct 2016, Martin Cerveny wrote: Some update. On Mon, 31 Oct 2016, Paul Durrant wrote:Sent: 30 October 2016 12:18 On Fri, 28 Oct 2016, Paul Durrant wrote:-----Original Message----- I have problems with xenvbd (8.x). There was NOT problem with older pv- drivers xenvbd (7.2x). Questions @ bottom. I use remote raw disk as source (multipath+iscsi+iser+ib). Two configs: -------------------------- 1) use direct blkback (format=raw, vdev=hda, access=rw, target=/dev/mapper/3600144f07a0542580000568ba94a0001) Performance is good, but __unusable__ for working. Every few seconds/minutes (randomly, depends on disk load) thewindowshung on io-operations. I usually saw this more often during writeoperations.Sometimes (1:10) I saw "PdoReset" in "DebugView" (DomU): 00003034 10:12:32 XENVBD|__PdoReset:Target[0] ====> 00003054 10:12:53 XENVBD|__PdoReset:Target[0] <==== There is also restart log in Dom0, but no errors on disks/iscsi: [ 3919.034421] xen-blkback:backend/vbd/3/768: prepare for reconnect [ 3919.039869] xen-blkback:ring-ref 32, event-channel 40, protocol 1(x86_64-abi)Yes, XENVBD is being asked to reset because Windows thinks the storage is stalled and it looks like it was probably right. Suggests a loss of event notification somewhere.Ok, I suppose Dom0 logs are result of DomU reset, no problem.Enviroments: - Windows7 x64 - tested signed winpv drivers 8.1 and primary on development drivers 8.2 - xen 4.5.3, 4.6 and primary 4.7.0- kernels "XenServer" - kernel-3.10.41-353.380450 (and others from XS6.5)and kernel-3.10.96-495.383045.x86_64 (and others from XS7) - blktap3 - blktap-3.0.0.xs1001-xs6.5.0 and blktap-3.2.0.xs1087-xs7.0.0.x86_64No idea. Possibly blkback, possibly the underlying storage. Your kernels are--------------------- Questions: What is buggy in "direct blkback" chain ?old and blkback has undergone many changes in more recent kernels. (I suppose that XS-kernel is super-tuned for Dom0 and there won't be such problem). Now updated Dom0: - fedora 24 + update - kernel - 4.7.9-200.fc24.x86_64 - xen 4.7.0 + some backports from XS The problem is the same. When were "changes" to blkback applied ?Clearly a 4.7 kernel is about as up-to-date as you want and I am not aware of any changes in blkback since then so it does tend to suggest the problem is elsewhere. It could well be that XENVBD has some bad interaction with blkback... In my test environments I normally use QEMU qdisk as a backend. Do you see the same issues if you, say, point blkback at a loopback file mount or even an nbd device?Ok. I will prepare and test and debug more in next weeks. I add some Trace() and compile with defined "DBG". I found problematic section and do some workaround. The restart is done during "trim" handling "timeout" that cause PdoReset().PdoDispatch() -> PdoDispatchControl() -> PdoManageDataSetAttributes() -> PdoSendTrimSynchronous() -> PdoSendAwaitSrb() == TIMEOUT(>9s) =================== Example of ok trim log (without timeout between 00000010-00000011): 00000007 12:03:16 XENDISK|PdoDispatchControl:XXX 2987012 00000008 12:03:16 XENDISK|PdoManageDataSetAttributes:XXX 1 00000009 12:03:16 XENDISK|PdoSendTrimSynchronous:TRIM[0] 400 @ 182c080 00000010 12:03:16 XENDISK|PdoSendAwaitSrb:XXX 00000011 12:03:16 XENDISK|__PdoSendAwaitSrb:XXX 00000012 12:03:16 XENDISK|PdoCompleteIrp:XXX Example of timeout of trim (with timeout 00000021-00000027 (~37sec) (timeot reset at 00000022 after +-9sec)): 00000017 12:03:32 XENDISK|PdoDispatchControl:XXX 2987012 00000018 12:03:32 XENDISK|PdoManageDataSetAttributes:XXX 1 00000019 12:03:32 XENDISK|PdoSendTrimSynchronous:TRIM[0] 4db8 @ 6f1a168 00000020 12:03:32 XENDISK|PdoSendTrimSynchronous:TRIM[1] 2a20 @ 124c38c0 00000021 12:03:32 XENDISK|PdoSendAwaitSrb:XXX 00000022 12:03:41 XENVBD|__PdoReset:Target[0] ====> 00000023 12:03:41 XENVBD|PdoReset:Target[0] ====> (Irql=2) 00000024 12:03:41 XENVBD|__PdoPauseDataPath:Target[0] : Waiting for 2 Submitted requests 00000025 12:04:09 XENVBD|NotifierDpc:Target[0] : Paused, 2 outstanding 00000026 12:04:09 XENVBD|NotifierDpc:Target[0] : Paused, 1 outstanding 00000027 12:04:09 XENDISK|__PdoSendAwaitSrb:XXX 00000028 12:04:09 XENDISK|PdoCompleteIrp:XXX 00000029 12:04:09 XENVBD|__PdoPauseDataPath:Target[0] : 0/2 Submitted requests left (27838 iterrations) 00000030 12:04:09 XENVBD|__FrontendSetState:Target[0] @ (2) =====> 00000031 12:04:09 XENVBD|__FrontendSetState:Target[0] : ENABLED ----> CLOSING 00000032 12:04:09 XENVBD|__FrontendSetState:Target[0] : in state CONNECTED 00000033 12:04:09 XENVBD|__UpdateBackendPath:<< /local/domain/0/backend/vbd/2/768 00000034 12:04:09 XENVBD|__UpdateBackendPath:>> /local/domain/0/backend/vbd/2/768 00000035 12:04:09 XENVBD|__WaitState:Target[0] : BACKEND_STATE -> Connected 00000036 12:04:09 XENVBD|___SetState:Target[0] : FRONTEND_STATE -> Closing 00000037 12:04:09 XENVBD|FdoScan:waiting... 00000038 12:04:09 XENVBD|__WaitState:Target[0] : BACKEND_STATE -> Closing 00000039 12:04:09 XENVBD|___SetState:Target[0] : FRONTEND_STATE -> Closed 00000040 12:04:09 XENVBD|FdoScan:waiting... 00000041 12:04:09 XENVBD|__WaitState:Target[0] : BACKEND_STATE -> Closed 00000042 12:04:09 XENVBD|__FrontendSetState:Target[0] : in state CLOSING 00000043 12:04:09 XENVBD|__FrontendSetState:Target[0] @ (2) <===== (SUCCEEDED) 00000044 12:04:09 XENVBD|__FrontendSetState:Target[0] @ (2) =====> 00000045 12:04:09 XENVBD|__FrontendSetState:Target[0] : CLOSING ----> CLOSED 00000046 12:04:09 XENVBD|__FrontendSetState:Target[0] : in state CLOSED 00000047 12:04:09 XENVBD|__FrontendSetState:Target[0] @ (2) <===== (SUCCEEDED) 00000048 12:04:09 XENVBD|__FrontendSetState:Target[0] @ (2) =====> 00000049 12:04:09 XENVBD|__FrontendSetState:Target[0] : CLOSED ----> ENABLED 00000050 12:04:09 XENVBD|__UpdateBackendPath:<< /local/domain/0/backend/vbd/2/768 00000051 12:04:09 XENVBD|__UpdateBackendPath:>> /local/domain/0/backend/vbd/2/768 00000052 12:04:09 XENVBD|FrontendWriteUsage:Target[0] : DUMP NOT_HIBER PAGE 00000053 12:04:09 XENVBD|___SetState:Target[0] : FRONTEND_STATE -> Initialising 00000054 12:04:09 XENVBD|FdoScan:waiting... 00000055 12:04:09 XENVBD|__WaitState:Target[0] : BACKEND_STATE -> Closed 00000056 12:04:09 XENVBD|__WaitState:Target[0] : BACKEND_STATE -> InitWait 00000057 12:04:09 XENVBD|PdoUpdateInquiryData:Target[0] : VDI-UUID = {00000000-0000-0000-0000-000000000000} 00000058 12:04:09 XENVBD|FrontendPrepare:Target[0] : BackendId 0 (/local/domain/0/backend/vbd/2/768) 00000059 12:04:09 XENVBD|__FrontendSetState:Target[0] : in state PREPARED 00000060 12:04:09 XENVBD|___SetState:Target[0] : FRONTEND_STATE -> Initialised 00000061 12:04:09 XENVBD|FdoScan:waiting... 00000062 12:04:09 XENVBD|__WaitState:Target[0] : BACKEND_STATE -> InitWait 00000063 12:04:09 XENVBD|FdoScan:waiting... 00000064 12:04:09 XENVBD|__WaitState:Target[0] : BACKEND_STATE -> Connected 00000065 12:04:09 XENVBD|___SetState:Target[0] : FRONTEND_STATE -> Connected 00000066 12:04:09 XENVBD|FdoScan:waiting... 00000067 12:04:09 XENVBD|__FrontendSetState:Target[0] : in state CONNECTED 00000068 12:04:09 XENVBD|__FrontendSetState:Target[0] : in state ENABLED 00000069 12:04:09 XENVBD|__FrontendSetState:Target[0] @ (2) <===== (SUCCEEDED) 00000070 12:04:09 XENVBD|PdoReset:Target[0] <==== (Irql=2) 00000071 12:04:09 XENVBD|__PdoReset:Target[0] <==== ============================= The "disk-tap" does not forward/support "Trim" (with log "DISCARD not supported, suppressing") and works ok. I found workaround - do not forward trim reqests. I commented out case "DeviceDsmAction_Trim" in "PdoManageDataSetAttributes()" to fall to "PdoForwardIrpAndForget()". (Windows 7 do not ask for "DeviceTrimProperty" to disable it in properties.) Martin Thanks, MartinPaulThanks for answers or hints, Martin CervenyPaulThanks for answers, Martin Cerveny _______________________________________________ win-pv-devel mailing list win-pv-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel_______________________________________________ win-pv-devel mailing list win-pv-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel _______________________________________________ win-pv-devel mailing list win-pv-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |