Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 2 Jan 2015 09:09:34 -0500
From:      grarpamp <grarpamp@gmail.com>
To:        freebsd-performance@freebsd.org
Subject:   Fwd: [tor-dev] gettimeofday() Syscall Issues
Message-ID:  <CAD2Ti28ThH5shL3q5295Ck9SNBvJa46W6XcbbY%2BZ81YJTWeKtw@mail.gmail.com>
In-Reply-To: <20150102102036.0a52b072@schwanenlied.me>
References:  <54A43EC4.2030706@mykolab.com> <smuiogrwo2w.fsf@linuxpal.mit.edu> <9BF461F5-D6B6-4287-BE8B-87B281FE93D0@gmail.com> <20150101033733.4b295d3b@schwanenlied.me> <CAKDKvuwMyHktLnhcuz-jCOoZc58yinzraq17bbOMkwCFbFADhg@mail.gmail.com> <54A621C2.2060408@mykolab.com> <20150102102036.0a52b072@schwanenlied.me>

next in thread | previous in thread | raw e-mail | index | archive | help

[-- Attachment #1 --]
Some recent FreeBSD related questions in this app area.


---------- Forwarded message ----------
From: Yawning Angel <yawning@schwanenlied.me>
Date: Fri, Jan 2, 2015 at 5:20 AM
Subject: Re: [tor-dev] gettimeofday() Syscall Issues
To: tor-dev@lists.torproject.org


On Thu, 01 Jan 2015 23:42:42 -0500
Libertas <libertas@mykolab.com> wrote:

> The first two account for the bulk of the calls, as they are in the
> core data relaying logic.
>
> Ultimately, the problem seems to be that the caching is very weak. At
> most, only half of the calls to tor_gettimeofday_cached_monotonic()
> use the cache. It appears in the vomiting print statements that
> loading a single simple HTML page
> (http://www.openbsd.org/faq/ports/guide.html to be exact) will cause
> >30 gettimeofday() syscalls. You can imagine how that would
> >accumulate for an exit carrying 800 KB/s if the caching
> doesn't improve much with additional circuits.

So while optimization is cool and all, I'm not seeing why this
specifically is the underlying issue.

Each cell can contain 498 bytes of user payload.  Looking at things
simplistically this is 800 KiB/s -> 1644 cells/sec, leaving you with
approximately 608 microseconds of processing time per cell.

On my i5-4250U box, gettimeofday() takes 22 ns on Linux, and 2441 ns on
FreeBSD.  I'm not sure how accurate the FreeBSD results are as it was
in a VirtualBox VM (getpid() on the same VM takes 124 ns).  If someone
has a OpenBSD box they should benchmark gettimeofday() and see how long
the call takes.

Taking the FreeBSD case (since we know that tor works fine on Linux), a
single gettimeofday() call takes approximately, 0.39% of the per-cell
processing budget.

For reference (assuming gettimeofday() in *BSD really is this shit
performance wise), 7000 calls to gettimeofday() is 17.09 ms worth of
calls.

The clock code in tor does need love, so I wouldn't object to cleanup,
but I'm not sure it's in the state where it's causing the massive
performance degradation that you are seeing.

Regards,

--
Yawning Angel

_______________________________________________
tor-dev mailing list
tor-dev@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-dev

[-- Attachment #2 --]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAEBCgAGBQJUpnD0AAoJEP4vkFoIB8BobgYP/2gIG7wW/AlUTrhiruKDeuew
A5e5hYcshJaNoE/biJfz2yOSxgUsjfr3QSbpWTb3Uiv3FTwP/ql2AdCLHsWHTXUR
QdF9IQlg3Sxyy+uWIG4brniDCkTRUkjDk5cpMa9RcMFH1sHZXBcYncLtycGtOMpG
vSpvSJNlgh0sVFDq/86xp7n4h3RafCNM8hEwvgzgbuWs+enQ4ELnGHLZgEcLnRL+
6BjVYeye1MueIrA1mL4rjiUhQYmB5hXsXhbiSg6erKZIli+niLKRipL1zKCEWmfE
qqvqCsmcYum0L9xKO/2U9rZQBqdApiNqGTqG0FzEKL2hkxYHM3fpOY6uQ1Dw0uU6
N00gqAGS1yQxJRVRl44Auy+HsN11ss0RIhZ5DlUZLEUfzOuVhcWuEjS8pW4gVMk2
q3vftrR5Q8M6aziI72Yy6yp1Mwprut3IRCAu+Ky1lUerf0tipSryzBt5YCK/S7Im
332YBhqb8uH4UDdacf+WLuBYIg+F8zJpcBn16+jz6ZQc+vUqHR2yYLY5B31CLtFm
uypBi+BRty/x7C9Sh65y/5sQAczcVCHs3R7TsYk6QLuVVHe00pWy4DYsTm/FsRQo
XgcuhMzvgqNp1vZuttaC92z+3GPnH9OaJj+/DMYF6CkwN8HtN/4dZ/wr6OAWwOGe
neRlPL3HwfEDvf64ozFZ
=0VhE
-----END PGP SIGNATURE-----

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAD2Ti28ThH5shL3q5295Ck9SNBvJa46W6XcbbY%2BZ81YJTWeKtw>