Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1260567 > unrolled thread
| Started by | "Denis V. Lunev" <den@openvz.org> |
|---|---|
| First post | 2015-11-02 12:40 +0100 |
| Last post | 2015-11-12 20:00 +0100 |
| Articles | 5 — 2 participants |
Back to article view | Back to linux.kernel
[PATCH 1/1] drivers/hv: correct tsc page sequence invalid value "Denis V. Lunev" <den@openvz.org> - 2015-11-02 12:40 +0100
RE: [PATCH 1/1] drivers/hv: correct tsc page sequence invalid value KY Srinivasan <kys@microsoft.com> - 2015-11-02 22:20 +0100
Re: [PATCH 1/1] drivers/hv: correct tsc page sequence invalid value "Denis V. Lunev" <den@openvz.org> - 2015-11-12 08:20 +0100
RE: [PATCH 1/1] drivers/hv: correct tsc page sequence invalid value KY Srinivasan <kys@microsoft.com> - 2015-11-12 18:40 +0100
Re: [PATCH 1/1] drivers/hv: correct tsc page sequence invalid value "Denis V. Lunev" <den@openvz.org> - 2015-11-12 20:00 +0100
| From | "Denis V. Lunev" <den@openvz.org> |
|---|---|
| Date | 2015-11-02 12:40 +0100 |
| Subject | [PATCH 1/1] drivers/hv: correct tsc page sequence invalid value |
| Message-ID | <qqlCW-4Kt-21@gated-at.bofh.it> |
From: Andrey Smetanin <asmetanin@virtuozzo.com>
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@virtuozzo.com>
CC: "K. Y. Srinivasan" <kys@microsoft.com>
CC: Haiyang Zhang <haiyangz@microsoft.com>
CC: Vitaly Kuznetsov <vkuznets@redhat.com>
TARGET: Microsoft Hyper-V Linux guest drivers
Signed-off-by: Denis V. Lunev <den@openvz.org>
---
drivers/hv/hv.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/hv/hv.c b/drivers/hv/hv.c
index 6341be8..68d0701 100644
--- a/drivers/hv/hv.c
+++ b/drivers/hv/hv.c
@@ -139,7 +139,7 @@ static cycle_t read_hv_clock_tsc(struct clocksource *arg)
cycle_t current_tick;
struct ms_hyperv_tsc_page *tsc_pg = hv_context.tsc_page;
- if (tsc_pg->tsc_sequence != -1) {
+ if (tsc_pg->tsc_sequence != 0) {
/*
* Use the tsc page to compute the value.
*/
@@ -161,7 +161,7 @@ static cycle_t read_hv_clock_tsc(struct clocksource *arg)
if (tsc_pg->tsc_sequence == sequence)
return current_tick;
- if (tsc_pg->tsc_sequence != -1)
+ if (tsc_pg->tsc_sequence != 0)
continue;
/*
* Fallback using MSR method.
--
2.1.4
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [next] | [standalone]
| From | KY Srinivasan <kys@microsoft.com> |
|---|---|
| Date | 2015-11-02 22:20 +0100 |
| Message-ID | <qquGf-1YL-25@gated-at.bofh.it> |
| In reply to | #1260567 |
> -----Original Message-----
> From: Denis V. Lunev [mailto:den@openvz.org]
> Sent: Monday, November 2, 2015 3:34 AM
> Cc: rkagan@virtuozzo.com; devel@linuxdriverproject.org; linux-
> kernel@vger.kernel.org; Andrey Smetanin <asmetanin@virtuozzo.com>; KY
> Srinivasan <kys@microsoft.com>; Haiyang Zhang
> <haiyangz@microsoft.com>; Vitaly Kuznetsov <vkuznets@redhat.com>;
> Denis V. Lunev <den@openvz.org>
> Subject: [PATCH 1/1] drivers/hv: correct tsc page sequence invalid value
>
> From: Andrey Smetanin <asmetanin@virtuozzo.com>
>
> 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@virtuozzo.com>
> CC: "K. Y. Srinivasan" <kys@microsoft.com>
Thanks Andrey; the Hyper-V team will be updating the Hyper-V documentation.
Acked-by: K. Y. Srinivasan <kys@microsoft.com>
Regards,
K. Y
> CC: Haiyang Zhang <haiyangz@microsoft.com>
> CC: Vitaly Kuznetsov <vkuznets@redhat.com>
>
> TARGET: Microsoft Hyper-V Linux guest drivers
> Signed-off-by: Denis V. Lunev <den@openvz.org>
> ---
> drivers/hv/hv.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/hv/hv.c b/drivers/hv/hv.c
> index 6341be8..68d0701 100644
> --- a/drivers/hv/hv.c
> +++ b/drivers/hv/hv.c
> @@ -139,7 +139,7 @@ static cycle_t read_hv_clock_tsc(struct clocksource
> *arg)
> cycle_t current_tick;
> struct ms_hyperv_tsc_page *tsc_pg = hv_context.tsc_page;
>
> - if (tsc_pg->tsc_sequence != -1) {
> + if (tsc_pg->tsc_sequence != 0) {
> /*
> * Use the tsc page to compute the value.
> */
> @@ -161,7 +161,7 @@ static cycle_t read_hv_clock_tsc(struct clocksource
> *arg)
> if (tsc_pg->tsc_sequence == sequence)
> return current_tick;
>
> - if (tsc_pg->tsc_sequence != -1)
> + if (tsc_pg->tsc_sequence != 0)
> continue;
> /*
> * Fallback using MSR method.
> --
> 2.1.4
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | "Denis V. Lunev" <den@openvz.org> |
|---|---|
| Date | 2015-11-12 08:20 +0100 |
| Message-ID | <qtUkO-5Od-5@gated-at.bofh.it> |
| In reply to | #1260979 |
On 11/02/2015 10:42 PM, KY Srinivasan wrote:
>
>> -----Original Message-----
>> From: Denis V. Lunev [mailto:den@openvz.org]
>> Sent: Monday, November 2, 2015 3:34 AM
>> Cc: rkagan@virtuozzo.com; devel@linuxdriverproject.org; linux-
>> kernel@vger.kernel.org; Andrey Smetanin <asmetanin@virtuozzo.com>; KY
>> Srinivasan <kys@microsoft.com>; Haiyang Zhang
>> <haiyangz@microsoft.com>; Vitaly Kuznetsov <vkuznets@redhat.com>;
>> Denis V. Lunev <den@openvz.org>
>> Subject: [PATCH 1/1] drivers/hv: correct tsc page sequence invalid value
>>
>> From: Andrey Smetanin <asmetanin@virtuozzo.com>
>>
>> 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@virtuozzo.com>
>> CC: "K. Y. Srinivasan" <kys@microsoft.com>
> Thanks Andrey; the Hyper-V team will be updating the Hyper-V documentation.
>
> Acked-by: K. Y. Srinivasan <kys@microsoft.com>
>
> 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.
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.
Thank you in advance,
Den
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | KY Srinivasan <kys@microsoft.com> |
|---|---|
| Date | 2015-11-12 18:40 +0100 |
| Message-ID | <qu40O-3rz-5@gated-at.bofh.it> |
| In reply to | #1267668 |
> -----Original Message----- > From: Denis V. Lunev [mailto:den@openvz.org] > Sent: Wednesday, November 11, 2015 11:16 PM > To: KY Srinivasan <kys@microsoft.com> > Cc: rkagan@virtuozzo.com; devel@linuxdriverproject.org; linux- > kernel@vger.kernel.org; Andrey Smetanin <asmetanin@virtuozzo.com>; > Haiyang Zhang <haiyangz@microsoft.com>; Vitaly Kuznetsov > <vkuznets@redhat.com> > 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@openvz.org] > >> Sent: Monday, November 2, 2015 3:34 AM > >> Cc: rkagan@virtuozzo.com; devel@linuxdriverproject.org; linux- > >> kernel@vger.kernel.org; Andrey Smetanin <asmetanin@virtuozzo.com>; > KY > >> Srinivasan <kys@microsoft.com>; Haiyang Zhang > >> <haiyangz@microsoft.com>; Vitaly Kuznetsov <vkuznets@redhat.com>; > >> Denis V. Lunev <den@openvz.org> > >> Subject: [PATCH 1/1] drivers/hv: correct tsc page sequence invalid value > >> > >> From: Andrey Smetanin <asmetanin@virtuozzo.com> > >> > >> 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@virtuozzo.com> > >> CC: "K. Y. Srinivasan" <kys@microsoft.com> > > Thanks Andrey; the Hyper-V team will be updating the Hyper-V > documentation. > > > > Acked-by: K. Y. Srinivasan <kys@microsoft.com> > > > > 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 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | "Denis V. Lunev" <den@openvz.org> |
|---|---|
| Date | 2015-11-12 20:00 +0100 |
| Message-ID | <qu5ge-49Z-7@gated-at.bofh.it> |
| In reply to | #1268125 |
On 11/12/2015 08:35 PM, KY Srinivasan wrote: > >> -----Original Message----- >> From: Denis V. Lunev [mailto:den@openvz.org] >> Sent: Wednesday, November 11, 2015 11:16 PM >> To: KY Srinivasan <kys@microsoft.com> >> Cc: rkagan@virtuozzo.com; devel@linuxdriverproject.org; linux- >> kernel@vger.kernel.org; Andrey Smetanin <asmetanin@virtuozzo.com>; >> Haiyang Zhang <haiyangz@microsoft.com>; Vitaly Kuznetsov >> <vkuznets@redhat.com> >> 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@openvz.org] >>>> Sent: Monday, November 2, 2015 3:34 AM >>>> Cc: rkagan@virtuozzo.com; devel@linuxdriverproject.org; linux- >>>> kernel@vger.kernel.org; Andrey Smetanin <asmetanin@virtuozzo.com>; >> KY >>>> Srinivasan <kys@microsoft.com>; Haiyang Zhang >>>> <haiyangz@microsoft.com>; Vitaly Kuznetsov <vkuznets@redhat.com>; >>>> Denis V. Lunev <den@openvz.org> >>>> Subject: [PATCH 1/1] drivers/hv: correct tsc page sequence invalid value >>>> >>>> From: Andrey Smetanin <asmetanin@virtuozzo.com> >>>> >>>> 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@virtuozzo.com> >>>> CC: "K. Y. Srinivasan" <kys@microsoft.com> >>> Thanks Andrey; the Hyper-V team will be updating the Hyper-V >> documentation. >>> Acked-by: K. Y. Srinivasan <kys@microsoft.com> >>> >>> 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 thank you very much for this update :) Den -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web