> -----Original Message----- > From: Denis V. Lunev [mailto:den@xxxxxxxxxx] > Sent: Wednesday, November 11, 2015 11:16 PM > To: KY Srinivasan <kys@xxxxxxxxxxxxx> > Cc: rkagan@xxxxxxxxxxxxx; devel@xxxxxxxxxxxxxxxxxxxxxx; linux- > kernel@xxxxxxxxxxxxxxx; Andrey Smetanin <asmetanin@xxxxxxxxxxxxx>; > Haiyang Zhang <haiyangz@xxxxxxxxxxxxx>; Vitaly Kuznetsov > <vkuznets@xxxxxxxxxx> > Subject: Re: [PATCH 1/1] drivers/hv: correct tsc page sequence invalid value > > On 11/02/2015 10:42 PM, KY Srinivasan wrote: > > > >> -----Original Message----- > >> From: Denis V. Lunev [mailto:den@xxxxxxxxxx] > >> Sent: Monday, November 2, 2015 3:34 AM > >> Cc: rkagan@xxxxxxxxxxxxx; devel@xxxxxxxxxxxxxxxxxxxxxx; linux- > >> kernel@xxxxxxxxxxxxxxx; Andrey Smetanin <asmetanin@xxxxxxxxxxxxx>; > KY > >> Srinivasan <kys@xxxxxxxxxxxxx>; Haiyang Zhang > >> <haiyangz@xxxxxxxxxxxxx>; Vitaly Kuznetsov <vkuznets@xxxxxxxxxx>; > >> Denis V. Lunev <den@xxxxxxxxxx> > >> Subject: [PATCH 1/1] drivers/hv: correct tsc page sequence invalid value > >> > >> From: Andrey Smetanin <asmetanin@xxxxxxxxxxxxx> > >> > >> Hypervisor Top Level Functional Specification v3/4 says > >> that TSC page sequence value = -1(0xFFFFFFFF) is used to > >> indicate that TSC page no longer reliable source of reference > >> timer. Unfortunately, we found that Windows Hyper-V guest > >> side implementation uses sequence value = 0 to indicate > >> that Tsc page no longer valid. This is clearly visible > >> inside Windows 2012R2 ntoskrnl.exe HvlGetReferenceTime() > >> function dissassembly: > >> > >> HvlGetReferenceTime proc near > >> xchg ax, ax > >> loc_1401C3132: > >> mov rax, cs:HvlpReferenceTscPage > >> mov r9d, [rax] > >> test r9d, r9d > >> jz short loc_1401C3176 > >> rdtsc > >> mov rcx, cs:HvlpReferenceTscPage > >> shl rdx, 20h > >> or rdx, rax > >> mov rax, [rcx+8] > >> mov rcx, cs:HvlpReferenceTscPage > >> mov r8, [rcx+10h] > >> mul rdx > >> mov rax, cs:HvlpReferenceTscPage > >> add rdx, r8 > >> mov ecx, [rax] > >> cmp ecx, r9d > >> jnz short loc_1401C3132 > >> jmp short loc_1401C3184 > >> loc_1401C3176: > >> mov ecx, 40000020h > >> rdmsr > >> shl rdx, 20h > >> or rdx, rax > >> loc_1401C3184: > >> mov rax, rdx > >> retn > >> HvlGetReferenceTime endp > >> > >> This patch aligns Tsc page invalid sequence value with > >> Windows Hyper-V guest implementation which is more > >> compatible with both Hyper-V hypervisor and KVM hypervisor. > >> > >> Signed-off-by: Andrey Smetanin <asmetanin@xxxxxxxxxxxxx> > >> CC: "K. Y. Srinivasan" <kys@xxxxxxxxxxxxx> > > Thanks Andrey; the Hyper-V team will be updating the Hyper-V > documentation. > > > > Acked-by: K. Y. Srinivasan <kys@xxxxxxxxxxxxx> > > > > Regards, > > > > K. Y > K.Y., > > can you pls clarify the state of this patch? It is a bit unclear > to me whether it is applied or not. I will be submitting this shortly. > > By the way, I also do not see the following patch > "drivers/hv: cleanup synic msrs if vmbus connect failed" > as applied in the Linux-next. You have promised to resend > it will correct author. It was resent on October 29. It is in Greg's queue. Regards, K. Y > > Thank you in advance, > Den _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel