Доклад

Linux вам не компилятор: ускоряем eBPF в полтора раза с помощью LLVM

Проектов с использованием eBPF становится все больше: на нем пишут современные файрволы, сети для контейнеров, профилировщики, планировщики и многое другое. Благодаря своему устройству виртуальная машина eBPF гарантирует отсутствие UB и изобилие проверок на корректность, что позволяет использовать расширения в самых критических подсистемах, не переживая за работоспособность ядра.

Однако немногим известно, какой ценой предоставляются эти гарантии, какие усилия ядро прикладывает для обеспечения производительности и почему их недостаточно. В этом докладе я постараюсь рассказать:

  • Архитектуру eBPF «под капотом».
  • Нелегкий путь байт-кода от загрузки до исполнения.
  • Какую цену имеют гарантии безопасности на практике.
  • Почему из ядра получается плохой компилятор.
  • Как мы прикрутили LLVM к ядру...
  • ... и к каким результатам это привело.

Также расскажем, как применять наше решение.

Расписание