[benchmark] lttng-ust with membarrier system call

From: Mathieu Desnoyers
Date: Fri Sep 18 2015 - 18:37:18 EST


Hi,

Here is a benchmark update of LTTng-UST [1] tracing lots of
events [2] from a single core to a flight recorder ring buffer.
It has improved from 200ns per event to 150ns per event on
x86-64 [3] by enabling the membarrier [4, 5] system call. This
is a saving of 25 ns for each of the two memory barriers thus
removed from the tracer fast path.

The master branch of Userspace RCU [6] now uses the membarrier
system call for the urcu-bp flavor [7] whenever it is found in
the system headers and implemented by the running kernel. It
also assigns the system call number on x86 even if it is missing
from the system headers.

For reference purposes, make sure your system uses the TSC
clocksource [8] if you plan to do high-throughput tracing,
because using HPET makes lttng-ust performance crawl to a
mere 3000ns per event. Unfortunately, this situation can
trigger in virtual machines due to the clocksource watchdog
not expecting preemption from the host OS [9].

Feedback is welcome,

Thanks!

Mathieu

[1] http://lttng.org
[2] 100 million events, 32-bit integer payload.
[3] Intel(R) Xeon(R) CPU E5-2630 v3 @ 2.40GHz, in a KVM guest.
[4] https://lwn.net/Articles/369567/
[5] https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=5b25b13ab08f616efd566347d809b4ece54570d1
[6] http://liburcu.org
[7] https://lwn.net/Articles/573424/
[8] cat /sys/devices/system/clocksource/clocksource0/current_clocksource
[9] http://lkml.iu.edu/hypermail/linux/kernel/1509.1/00379.html

--
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/