Re: [RFC][PATCH] linux-2.6.2-rc2_vsyscall-gtod_B1.patch

john stultz
2004-01-31T02:25:08Z

On Fri, 2004-01-30 at 16:17, Eric W. Biederman wrote:
> john stultz <johnstul@us.ibm.com> writes:
>
> > All,
> > This is my port of the x86-64 vsyscall gettimeofday code to
> > i386. This patch moves gettimeofday into userspace, so it can be called
> > without the syscall overhead, greatly improving performance. This is
> > important for any application, like a database, which heavily uses
> > gettimeofday for timestamping. It supports both the TSC and IBM x44X
> > cyclone time source.
>
> >
> > Example performance gain: (vs. int80)
> > Normal gettimeofday
> > gettimeofday ( 1665576us / 1000000runs ) = 1.665574us
> > vsyscall LD_PRELOAD gettimeofday
> > gettimeofday ( 868378us / 1000000runs ) = 0.868377us
>
> And what is the performance gain over using the kernel sysenter
> implementation?

Sorry, I hadn't gotten around to upgrading the glibc on my dev box.

Here's the sysenter comparison:

Normal gettimeofday
gettimeofday ( 1239215us / 1000000runs ) = 1.239214us
vsyscall LD_PRELOAD gettimeofday
gettimeofday ( 805117us / 1000000runs ) = 0.805116us

It should be noted that all the numbers I've posted so far are using the
cyclone timesource. Here's the test running using the TSC timesource
(sysenter as well):

Normal gettimeofday
gettimeofday ( 586046us / 1000000runs ) = 0.586045us
vsyscall LD_PRELOAD gettimeofday
gettimeofday ( 179972us / 1000000runs ) = 0.179972us

thanks
-john