Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

// Synthetic benchmark for __tsan_func_entry/exit (spends ~75% there).

void foo(bool x);

int main() {
  volatile int kRepeat1 = 1 << 30;
  const int kRepeat = kRepeat1;
  for (int i = 0; i < kRepeat; i++)
    foo(false);
}

__attribute__((noinline)) void bar(volatile bool x) {
  if (x)
    foo(x);
}

__attribute__((noinline)) void foo(bool x) {
  if (__builtin_expect(x, false))
    bar(x);
}