Я изо всех сил пытаюсь найти ответ на вопрос, насколько велики накладные расходы на задержку при вызове программы eBPF, прикрепленной к kprobe, и, что более важно, на uprobe (где накладные расходы могут иметь больший относительный размер, чем kprobe, потому что kprobe подразумевает вызов ядра, который уже достаточно медленно). Можете ли вы предоставить какую-либо информацию по этому поводу и от чего это зависит, кроме очевидных вещей, таких как версия процессора и ядра?
@pchaigno я бы отметил твой комментарий как ответ, спасибо
Достаточно справедливо :-) Я разместил это как ответ.
Я не знаю хороших тестов для этого, возможно, это связано с тем, что существует очень много параметров, которые повлияют на результаты. Это будет зависеть от того, что перехватывается и измеряется, от того, что делают программы BPF, от версий ядра и аппаратного обеспечения, от смягчения последствий Spectre и т. д. Все, что я могу вам сказать, это то, что накладные расходы на uprobe будут намного выше, потому что они должны передаваться в ядро. пространство для выполнения программы BPF.
Я не знаю хороших тестов для этого, возможно, это связано с тем, что существует очень много параметров, которые повлияют на результаты. Это будет зависеть от того, что перехватывается и измеряется, от того, что делают программы BPF, от версий ядра и аппаратного обеспечения, защиты от Spectre и т. д. Все, что я могу вам сказать, это то, что накладные расходы на uprobe будут намного выше, потому что они должны переходить в пространство ядра. для выполнения программы BPF.