cloudius-systems / osv

OSv, a new operating system for the cloud.
osv.io
Other
4.1k stars 602 forks source link

Disabled tracepoints introduce a performance degradation #428

Open vladzcloudius opened 10 years ago

vladzcloudius commented 10 years ago

Two tracepoints from "tcp_output.cc: added tracepoints allowing to debug the Tx flow" patch (not yet committed): trace_tcp_output() and trace_tcp_output_just_ret() are responsible for 1.39% degradation in a 64B netperf test on muninn-huginn setup.

When we compile out the tracepoints completely it delivers 3.25% compared to the clean master (973107d13) and 4.7% compared to the same clean master with the "tcp_output.cc: added tracepoints allowing to debug the Tx flow" patch.

How to reproduce:

glommer commented 10 years ago

Okay, I've misheard you when you explained this through google hangout, and heard a much higher figure.

Those numbers are actually consistent with what I had already found - and reported -for redis.

On Thu, Jul 31, 2014 at 5:57 PM, vladzcloudius notifications@github.com wrote:

Two tracepoints from "tcp_output.cc: added tracepoints allowing to debug the Tx flow" patch (not yet committed): trace_tcp_output() and trace_tcp_output_just_ret() are responsible for 1.39% degradation in a 64B netperf test on muninn-huginn setup.

When we compile out the tracepoints completely it delivers 3.25% compared to the clean master (973107d https://github.com/cloudius-systems/osv/commit/973107d13661b0001311c5015f586768453c815e) and 4.7% compared to the same clean master with the "tcp_output.cc: added tracepoints allowing to debug the Tx flow" patch.

— Reply to this email directly or view it on GitHub https://github.com/cloudius-systems/osv/issues/428.

wkozaczuk commented 5 years ago

@glommer Shall we close it?

nyh commented 5 years ago

I don't know, may we should leave it as a suggestion that tracepoints aren't as free (or nearly free) as we thought, and maybe we should rethink their implementation the future? Although, to be honest, I doubt we will. They are to convenient to give up, and it won't be easy to come up with an even lower-overhead implementaiton.