
Доклад
Linux вам не компилятор: ускоряем eBPF в полтора раза с помощью LLVM
Проектов с использованием eBPF становится все больше: на нем пишут современные файрволы, сети для контейнеров, профилировщики, планировщики и многое другое. Благодаря своему устройству виртуальная машина eBPF гарантирует отсутствие UB и изобилие проверок на корректность, что позволяет использовать расширения в самых критических подсистемах, не переживая за работоспособность ядра.
Однако немногим известно, какой ценой предоставляются эти гарантии, какие усилия ядро прикладывает для обеспечения производительности и почему их недостаточно. В этом докладе я постараюсь рассказать:
- Архитектуру eBPF «под капотом».
- Нелегкий путь байт-кода от загрузки до исполнения.
- Какую цену имеют гарантии безопасности на практике.
- Почему из ядра получается плохой компилятор.
- Как мы прикрутили LLVM к ядру...
- ... и к каким результатам это привело.
Также расскажем, как применять наше решение.