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

Linux TC eBPF и параллелизм
Есть ли ограничение на количество экземпляров программ eBPF, которые ядро ​​​​может запускать одновременно на нескольких процессорах (аналогично проблеме с Python GIL) В частности, могут ли программы eBPF tc работать на нескольких процессорах...
520 просмотров
schedule 07.06.2023

не удалось создать карту: 22 Неверный аргумент
Я скомпилировал примеры программ bpf, представленные здесь — https://github.com/torvalds/linux/tree/master/samples/bpf , следуя инструкциям. Для большей части программы во время выполнения я получаю эту ошибку: sudo ./sockex1 failed to create...
1043 просмотров
schedule 22.05.2023

Как получить доступ к регистрам xmm в программе eBPF
Я пытаюсь использовать bcc-tools для отслеживания пользовательского процесса с помощью uprobe, но некоторые функции принимают аргументы с плавающей запятой. Согласно x86_64 ABI, эти значения обычно передаются в регистрах xmm. Функции eBPF в bcc...
191 просмотров
schedule 01.12.2022

Разрешены ли циклы в программах Linux BPF?
Я думаю о решении репликации пакетов в ядре и пересылке на 5 хостов (unicast). Планируется использовать для этого eBPF/XDP. Я пытаюсь зациклиться 5 раз, и внутри цикла я планирую клонировать пакет, изменить IP-адрес DST, обновить cksum и отправить...
1470 просмотров
schedule 07.02.2023

Можно ли отслеживать коды eBPF, использующие разные режимы?
Можно ли отслеживать коды eBPF, использующие разные режимы? Например, если я написал код, который printk("hello world") с помощью kprobe, смогу ли я впоследствии вызвать код XDP или наоборот? Я запрограммировал что-то на eBPF, которое...
221 просмотров
schedule 15.11.2022

Основное отличие загрузчиков ebpf
Если я правильно понял, есть разные загрузчики ebpf: bpf_load.c в исходный код ядра libbpf бпфтул tc ... ‹-- другие? Каковы основные различия между ними? Всегда ли они взаимозаменяемы? Должен ли я всегда предпочитать libbpf?
206 просмотров
schedule 28.04.2023

Реализует ли BPF_PROG_RUN резервный интерпретатор ebpf?
https://github.com/torvalds/linux/blob/33920f1ec5bf47c5c0a1d2113989bdd9dfb3fae9/include/linux/filter.h#L556-L571 это реализация резервного интерпретатора ebpf?
106 просмотров
schedule 09.11.2022

Зонд EBPF для скомпилированной встроенной функции
Я хотел бы создать программу EBPF для Golang, которая записывает, когда функция вводится и возвращается. Некоторые проблемы у меня есть: A. Функции встроены. B. Замыкания анонимны. C. Чтение структур Golang. Вопросы: A. В моем...
85 просмотров
schedule 10.07.2022

Как включить /kernel/sched/* в программу BPF?
Я пытаюсь создать пользовательскую программу bpf с помощью bpftrace в Linux, согласно книге BPF Performance Tools. Я попытался включить некоторые файлы из пути linux/kernel/sched/sched.h. Как я могу включить их? (не только из папки /include, но и...
105 просмотров
schedule 21.03.2023

Как получить путь к задаче cgroup в программе eBPF?
Я пытался поиграть с инструментом tcptop BCC от Брендана. Грегг, чтобы узнать больше о том, как работают программы eBPF. Я пытаюсь заставить его распечатать путь CGROUP к задачам. С моими заржавевшими знаниями системного программирования Linux...
443 просмотров
schedule 24.09.2022

Как подсчитать промахи кеша в памяти mmap (используя eBPF)?
Я хотел бы получить временные ряды t0, misses ... tN, misses где tN — отметка времени (секундное разрешение), а misses — количество раз, когда ядро ​​выполняло дисковый ввод-вывод для моего PID для загрузки отсутствующей страницы области...
171 просмотров
schedule 19.04.2023

Ошибка ebpf bpf_get_socket_uid: неверный рело для insn[0].code 0x85
Я создаю демо-версию ebpf в исходном коде ядра. демо код такой: cgroup_kern.c #include <uapi/linux/bpf.h> #include <uapi/linux/if_ether.h> #include <uapi/linux/if_packet.h> #include <uapi/linux/ip.h> #include...
88 просмотров
schedule 30.12.2023

Как разделить карту ebpf между интерфейсами
Можно ли разделить карту ebpf между двумя сетевыми интерфейсами. Я хочу написать программу XDP и подключить ее к двум устройствам, а именно к eth0 и eth1. Реализация требует, чтобы они оба использовали одну и ту же карту. Можно ли загрузить одну и...
200 просмотров
schedule 04.05.2024

eBPF: печать полезной нагрузки UDP и исходного IP-адреса в шестнадцатеричном формате
Я новичок в eBPF и хочу научиться делать несколько основных вещей. Мой вопрос заключается в том, как написать код C для моего кода eBPF, чтобы напечатать ( bpf_trace_printk ) полезную нагрузку UPD полученного пакета в HEX. Я пробовал безуспешно....
258 просмотров
schedule 16.04.2023

Как вы вычисляете влияние на производительность зонда eBPF?
eBPF стал важным инструментом для простого и быстрого мониторинга процессов. Однако мне не удалось найти, как можно вычислить влияние самого зонда на производительность. Я уверен, что если я перехватываю каждый системный вызов и добавляю какую-то...
156 просмотров
schedule 28.05.2023

eBPF — невозможно прочитать argv и envp из точки трассировки sys_enter_execve
Я изучаю BPF для собственного удовольствия, и мне трудно понять, как читать argv и envp из контекста, переданного моей программе eBPF для sys_enter_execve. Здесь я покажу свою программу BPF, а затем более подробно объясню, чего я пытаюсь...
101 просмотров
schedule 08.04.2024

Чтение sk_buff с ebpf внутри dev_queue_xmit дает сомнительные данные
Я пытаюсь захватить исходящие кадры Ethernet на локальном хосте до их отправки, вставив kprobe в __dev_queue_xmit() . Однако байты, которые я извлек из структуры sk_buff , не соответствуют захваченным впоследствии пакетам. До сих пор я пробовал...
48 просмотров
schedule 19.07.2023

Поиск eBPF BPF_ARRAY
Я пытаюсь создать счетчик пакетов с помощью eBPF и XDP. Мне нужен способ отслеживать общее количество полученных пакетов. Поскольку я использую XDP, я использую BPF_ARRAY и увеличиваю его каждый раз при получении пакета. Проблема в том, что я не...
33 просмотров
schedule 29.10.2022

Проблема с отправкой данных из пользовательского пространства в программу bpf с картами
У меня проблема с моей программой bpf. Я получаю сообщение об ошибке при загрузке этой программы. моя программа bpf: #include <linux/skbuff.h> #include <linux/netdevice.h> #include <uapi/linux/bpf.h> #include...
60 просмотров
schedule 11.04.2023