Описание тега bcc-bpf
Вопросы, связанные с разработкой инструментов BPF с использованием структуры bcc (BPF Compiler Collection).
1
ответ
Не установлены флаги выключенного режима XDP с ОЦК
Я пытаюсь запустить этот учебник XDP-код, который предоставляется в скрытой копии. Я использую следующий код: https://github.com/iovisor/bcc/blob/master/examples/networking/xdp/xdp_drop_count.py. и, насколько я понимаю, флаг XDP работает следующим о…
07 авг '19 в 04:35
0
ответов
Выполнение сравнения с использованием карты eBPF в пространстве ядра
Я экспериментирую с картой eBPF, и у меня возникают проблемы с использованием значений, полученных из карт eBPF, в предложении if. Я также использую BCC для экспериментов с этим кодом! Итак, когда я запускаю код, я пытаюсь сделать это: BPF_ARRAY(tes…
21 ноя '19 в 18:30
1
ответ
Как отследить функцию перехода с помощью BPF (BCC)
У меня есть go-код (myclient). Выглядит это как-то так (здесь актуален только mypackage): package mypackage import ( ... func (o *Client) CreateUser(ctx context.Context, user *User, ...) (User, error) { ... if err != nil ... return nil, err ... retu…
04 дек '19 в 00:00
0
ответов
Зонд EBPF для скомпилированной встроенной функции
Я хотел бы создать программу EBPF для Golang, которая записывает, когда функция вводится и возвращается. Некоторые проблемы у меня есть: A. Функции встроены. B. Закрытие анонимно. C. Чтение структур Голанга. Вопросы: А. В моем случае невозможно пред…
05 янв '20 в 01:49
1
ответ
Монитор пакетов eBPF теряет некоторые пакеты при команде ping -f
Я написал эту программу для захвата всех пакетов, которые поступают в мой сетевой интерфейс. Кажется, он отлично работает с такими вещами, как ping [IP]. Он также отлично работает с ping -f [IP] -c 10. Однако, когда количество пакетов, которые отпра…
11 фев '20 в 11:48
1
ответ
Создать исполняемый файл из скрипта bcc python
bcc использует python для компиляции программ ebpf, есть ли какой-либо удобный способ сгенерировать исполняемый файл из этих сценариев python, чтобы я мог запускать эти программы трассировки на серверах, где не установлены среда clang и llvm?
27 фев '20 в 20:29
1
ответ
Неспособность отследить некоторые системные вызовы с помощью eBPF
Я использую bcc для отслеживания нескольких системных вызовов, почему я могу отслеживать такие системные вызовы, как write, close, fchown используя простой attach_kprobe но не могу отслеживать системные вызовы, такие как stat, fstat? Я предполагаю, …
14 фев '20 в 02:57
1
ответ
Неспособность сравнить строки с eBPF
Когда я запускаю следующий код, я получаю сообщение об ошибке. #include <uapi/linux/utsname.h> #include <linux/pid_namespace.h> struct uts_namespace { struct kref kref; struct new_utsname name; }; static __always_inline char * get_task_u…
25 фев '20 в 00:01
1
ответ
Как распечатать путь к файлу из открытого системного вызова с помощью ebpf python?
Я использую bpf из модуля python bcc, и я хочу, чтобы моя функция проверки распечатывала путь к текущему файлу (своего рода настраиваемый упрощенный opensnoop). Как я могу это сделать? Вот что у меня есть на данный момент: b = BPF(text=""" #include …
02 мар '20 в 01:42
1
ответ
взаимодействие python с картами BPF
Мне интересно, можно ли легко инициализировать карты BPF из пользовательского пространства Python. Для моего проекта у меня будет страшно выглядящий массив NxN 2d с плавающей запятой для каждого процесса. Для простоты предположим, что N постоянно во…
23 апр '20 в 20:07
2
ответа
Как изменить память пользовательского пространства с помощью eBPF?
Я пытаюсь написать образец кода и посмотреть, как он работает на практике. Как сказано здесь и обсуждается здесь. Если все правильно, вывод должен быть: $ cat foo1 this is foo1 content $ cat foo2 this is foo2 content $ sudo bcc_mangle_open.py & …
27 июл '20 в 14:15
1
ответ
bpftrace: целевой файл uprobe не существует или не исполняется
Я хочу использовать bpftrace для отслеживания функций внутри библиотеки libasan, которая находится внутри /usr/lib/x86_64-linux-gnu/. Однако sudo bpftrace -e 'uretprobe:/usr/lib/x86_64-linux-gnu/libasan.so.4: __interceptor_malloc { printf("pid: %d, …
25 дек '19 в 17:43
1
ответ
kprobe из tcp_retransmit_skb. вместо tcp_retransmit_skb @tcp_states я хочу kprobe __napi_schedule
В книге BPF Performance Tools есть реализация kprobe tcp_retransmit_skb. Я хочу сделать то же самое, но вместо tcp_retransmit_skb @tcp_states я хочу kprobe _napi_schedule и инвертировать перечисление NAPI_STATE* из include/linux/netdevice.h. Вот моя…
27 авг '20 в 10:41
2
ответа
Как скомпилировать BCC на Ubuntu 20.04?
Я пытаюсь скомпилировать структуру BCC BPF (https://github.com/iovisor/bcc) на Ubuntu 20.04. Я выполнил все инструкции на 18.04, но конечно; они терпят неудачу. У меня проблема, похоже, связана с лязгом In file included from /usr/local/include/clang…
23 май '20 в 23:27
1
ответ
Как создавать и развертывать приложения BPF BCC C++?
Существует множество документов для разработчиков на Python, но, как разработчику C++, который очень плохо знаком с BCC/BPF, мне очень сложно определить, с чего начать создание и развертывание приложений C++ на основе BCC. С чего мне начать? Я просм…
23 май '20 в 16:43
2
ответа
Как получить путь к задаче cgroup в программе eBPF?
Я пытался поиграть с инструментом tcptop BCC от Брендана Грегга, чтобы узнать больше о том, как работают программы eBPF. Я пытаюсь заставить его распечатать путь CGROUP задач. С моими ржавыми знаниями системного программирования Linux я подумал, что…
04 июн '20 в 10:19
0
ответов
Не удалось запустить профилировщик bcc-tools
Я пытаюсь запустить инструмент скрытой копии "profile.py" и обнаружил следующую ошибку: ./bcc/tools/profile.py Sampling at 49 Hertz of all threads by user + kernel stack... Hit Ctrl-C to end. In file included from <built-in>:1: ././include/lin…
16 июл '20 в 23:28
1
ответ
Как сбросить skb_buff с помощью ebpf/bcc?
Я запускаю пример bcc /http_filter/http-parse-simple.c, в котором поясняется в комментарии: /* eBPF program. Filter IP and TCP packets, having payload not empty and containing "HTTP", "GET", "POST" ... as first bytes of payload if the program is loa…
07 янв '20 в 06:32
1
ответ
Фильтр пакетов eBPF не дает мне правильных данных
Итак, я пытался посмотреть, могу ли я подключить фильтр пакетов eBPF к сетевому интерфейсу, enp32s0np1. Я пытаюсь перехватить все IP-адреса входящих отправителей. Однако выполнение приведенного ниже кода вызывает у меня странную реакцию. Вместо того…
06 янв '20 в 10:28
1
ответ
Несовместимый указатель на целочисленное преобразование, присвоенное 'u32' (также известному как 'unsigned int') из 'struct net *'
Что я хочу: Чтобы добавить параметр сетевого пространства имен в инструмент execsnoop bcc для отслеживания только журналов с указанным сетевым пространством имен, как у нас есть параметр PID фильтра во многих других инструментах bcc. Например: execs…
18 май '20 в 07:17