[PATCH v2 1/3] ntdll: Separate NtGetTickCount from get_tick_count64.

Huw Davies huw at codeweavers.com
Thu May 30 04:34:32 CDT 2019


On Thu, May 30, 2019 at 11:19:21AM +0200, Alexandre Julliard wrote:
> Huw Davies <huw at codeweavers.com> writes:
> > On Thu, May 30, 2019 at 02:47:57AM -0500, Andrew Wesie wrote:
> >> @@ -1529,3 +1529,6 @@
> >>  # Filesystem
> >>  @ cdecl wine_nt_to_unix_file_name(ptr ptr long long)
> >>  @ cdecl wine_unix_to_nt_file_name(ptr ptr)
> >> +
> >> +# Time
> >> +@ cdecl -ret64 wine_get_tick_count64()
> >
> > This will end up causing a performance regression (as well as having
> > to add a Wine specific api to ntdll).  I've sent in a patch that
> > essentially duplicates monotonic_counter() in kernel32.
> 
> Is the extra function call really so expensive that it's worth the
> duplication?
> 
> (Of course it should be calling a public API instead)

Yes, although you need a kernel where CLOCK_MONOTONIC_RAW is handled
by the vDSO to notice the difference (currently there are ~1 of them,
but that's work in progress).  In this case it cuts the call cost from
~45ns to ~25ns.  This will become even more noticeable if I can get
the kernel guys to accept a CLOCK_MONOTONIC_RAW_COARSE clock.

Huw.



More information about the wine-devel mailing list