Вопросы по теме 'ebpf'

golang, ebpf и продолжительность функций
Я играю с gobpf и у меня проблема с вычислением продолжительности отслеживаемой функции пользовательского пространства. Я использую bpf_ktime_get_ns () для чтения времени, а затем пытаюсь вычислить дельту, но получаю огромные числа, хотя...
498 просмотров
schedule 22.09.2021

Создать исполняемый файл из скрипта bcc python
bcc использует python для компиляции программ ebpf, есть ли удобный способ сгенерировать исполняемый файл из этих сценариев python чтобы я мог запускать эти программы трассировки на серверах, на которых не установлены среды clang и llvm?
133 просмотров
schedule 08.11.2021

Печать чего-либо из текстового файла в eBPF
Я хотел бы загрузить текст из файла и распечатать его с помощью eBPF. Такое вообще возможно? Я сделал что-то подобное, используя bpf_probe_read, но мне интересно, есть ли более простой способ сделать что-то подобное, просто указав местоположение? Я...
28 просмотров
schedule 14.08.2022

Взять имя вызываемой функции в eBPF
Я хотел бы отслеживать функции конкретного PID и собирать некоторую статистику (общее количество вызовов, общее время и т. д.), и мне не совсем понятно, как создать BPF_HASH с парами funcname+my_struct. Есть ли способ получить имена вызываемых...
794 просмотров
schedule 29.08.2022

Не удалось скомпилировать код bindsnoop eBPF c вне дерева ядра.
Я пытаюсь создать программу BPF, написанную на C, в байт-код bpf. Код программы на C взят с https://github.com/iovisor/bcc/blob/master/tools/bindsnoop.py (я использовал код C из bpf_text с некоторыми настройками). Я не хотел использовать...
56 просмотров
schedule 20.09.2022

Как собрать ядро ​​​​Linux для поддержки опции сокета SO_ATTACH_BPF?
Я хочу создать приложение, которое поддерживает eBPF на CentOS 7 (версия ядра 3.10.0 ): if(setsockopt(sock, SOL_SOCKET, SO_ATTACH_BPF, prog_fd, sizeof(prog_f)) { ...... } Итак, я загружаю версию 4.0.5 , делаю следующие настройки:...
566 просмотров
schedule 14.10.2022

не удается прикрепить большой двоичный объект eBPF
Я только что скомпилировал примеры BPF из ядра tools/testing/selftests/bpf и попытался загрузить их, как описано в http://cilium.readthedocs.io/en/v0.10/bpf/ : % tc filter add dev enp0s1 ingress bpf \ object-file...
579 просмотров
schedule 02.04.2023

eBPF: работает в пространствах имен Linux
Таким образом, BPF программы являются объектами ядра, поскольку они выполняются в пространстве ядра. С другой стороны, пространства имен Linux, также известные как контейнеры, обеспечивают изоляцию на уровне приложений, и в этом случае все они...
796 просмотров
schedule 02.05.2023

поддерживает ли eBPF события?
Возможно ли, чтобы ebpf программа генерировала событие, например, счетчик пакетов достиг предопределенного порогового значения, а ebpf генерировало некоторое уведомление/событие для пользователя, что-то похожее на то, что обеспечивает netlink ....
107 просмотров
schedule 04.08.2023

Программа eBPF для пересылки HTTP-запросов на другой порт
Я пытаюсь реализовать функцию, в которой в зависимости от пути HTTP-запроса я могу перенаправить запрос на другой порт. Например, если запрос GET /foo, я бы хотел перенаправить его на порт 81, а если это /bar, я бы хотел перенаправить его на порт...
760 просмотров
schedule 22.02.2023

eBPF против системы против DTrace
Какой из них будет основным, который будет поддерживаться CentOS в будущем? Я не являюсь экспертом ни в одном из этих инструментов, поэтому я хотел бы знать, какой из них я должен изучить намного глубже. Спасибо
586 просмотров
schedule 16.04.2023

У меня ошибка при попытке получить доступ к iphdr с помощью eBPF
Поэтому я пытался получить доступ к iphdr с помощью eBPF. static inline int parse_ipv4(void *data, u64 nh_off, void *data_end) { struct iphdr *iph = data + nh_off; if ((void*)&iph[1] > data_end) return 0; return iph->protocol; }...
123 просмотров
schedule 08.06.2023

Как удалить skb_buff, используя ebpf/bcc?
Я запускаю пример скрытой копии https://github.com/iovisor/bcc/blob/master/examples/networking/http_filter/http-parse-simple.c , в котором комментарий поясняет: /* eBPF program. Filter IP and TCP packets, having payload not empty and...
408 просмотров
schedule 06.10.2023

Каков реальный адрес `%fs:0xffffffffffffffff8`?
Я хочу отслеживать goid программ go с помощью ebpf . После прочтения некоторых сообщений и блогов я знаю, что %fs:0xfffffffffffffff8 указывает на структуру g функции go, а инструкция mov %fs:0xfffffffffffffff8,%rcx всегда появляется в начале...
343 просмотров
schedule 14.07.2023

Как я могу перенаправить трафик с одного порта на другой в том же интерфейсе?
Мне нужно, чтобы трафик, попадающий в докер-контейнер на определенный порт, перенаправлялся на другой контейнер, ip которого я знаю, на другой порт с помощью xdp. Для этого я меняю контрольную сумму структуры iphdr: // Backup old dest address...
93 просмотров
schedule 28.05.2023

Проверка процесса пользовательского пространства с помощью systemtap поверх ebpf begin probe не работает
Я пытаюсь исследовать процесс пользовательского пространства с помощью зонда begin , который, похоже, ничего не делает. начало.stp: probe process("a.out").begin { printf("%s %d\n", execname(), pid()) } выход стп:...
65 просмотров
schedule 07.03.2023

Динамическое изменение размера карты eBPF
В ядре карты eBPF могут быть определены как: struct bpf_map_def SEC("maps") my_map = { .type = BPF_MAP_TYPE_HASH, .key_size = sizeof(uint32_t), .value_size = sizeof(struct task_prov_struct), .max_entries = 4096, };...
343 просмотров
schedule 12.12.2022

Хэш-карта BPF не показывает правильное значение при извлечении
Я пытаюсь создать хэш-карту в BPF в коде ядра следующим образом: struct bpf_map_def SEC("maps") hash_map = { .type = BPF_MAP_TYPE_HASH, .key_size = sizeof(__u32), .value_size = sizeof(__u32), .max_entries = 1000, };...
35 просмотров
schedule 30.06.2023

Низкая пропускная способность с XDP_TX по сравнению с XDP_DROP/REDIRECT
Я разработал программу XDP, которая фильтрует пакеты на основе определенных правил, а затем либо отбрасывает их ( XDP_DROP ), либо перенаправляет ( xdp_redirect_map ) на другой интерфейс. Эта программа вполне справлялась с синтетической нагрузкой...
133 просмотров
schedule 23.12.2022

Попытка подсчитать правильное количество символов в строке в BPF
Я пытаюсь подсчитать переданную строку указателя в BPF, но у меня остается очень длинная ошибка, которую я не могу понять. В основном я пытаюсь воссоздать strlen в BPF, чтобы подсчитать размер моей переданной строки *. Интересную область ошибки...
16 просмотров
schedule 27.07.2023