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

Можно ли использовать eBPF или perf для расчета времени, затрачиваемого на отдельные отслеживаемые функции?
В настоящее время я могу сказать trace-cmd (внешний интерфейс ftrace) использовать инфраструктуру графа функций ftrace для трассировки указанной рабочей нагрузки. Используя некоторые инструменты обработки данных трассировки, я могу просмотреть...
1294 просмотров
schedule 20.01.2023

заголовки не работают на уровне ядра в коде eBPF
Итак, я разрабатываю что-то на eBPF. Мне нужно было использовать заголовок unistd.h, потому что я хотел использовать функцию сна. Однако я понял, что когда я набираю #include <unistd.h> эти заголовки не включаются, и я получаю...
198 просмотров
schedule 09.09.2022

Новичок в EBPF: нужна помощь, возникла ошибка при загрузке кода EBF
Я написал код bpf и скомпилировал с clang, при попытке загрузить я получаю ошибку. Не могу понять почему и как решить, нужен совет знатоков. Я запускаю этот код в ОС виртуальной машины: Ubuntu 18.04.2 Ядро: Linux 4.18.0-15-generic x86_64 Я...
173 просмотров
schedule 21.05.2023

Карты eBPF для одного элемента. Тип карты и взаимодействие между ядром и пользовательским пространством
Я бы создал карту для хранения только одного элемента (номер порта), и он должен быть прочитан/записан как из пользовательского пространства, так и из пространства ядра. Какой тип карты мне следует использовать? Какой размер ключа и значения...
997 просмотров
schedule 24.03.2023

net/core/filter.c и linux/bpf/verifier.c
Если я правильно понял, изначально верификатор и интерпретатор cBPF находились внутри net/core/fiter.c , например, sk_run_filter здесь https://elixir.bootlin.com/linux/v3.2/source/net/core/filter.c#L112 просто преобразуйте инструкции cBPF,...
137 просмотров
schedule 29.07.2023

Каковы ограничения виртуальной машины bpf и карты bpf?
Я использую ebpf+XDP для создания демонстрации. когда я использую большую КАРТУ памяти, например: BPF_HASH(cache, u64, u64, 10240000); BPF_HASH(filter1, u32, u64, 10240000); BPF_HASH(filter2, struct XXX, u16, 10240000); когда я запускаю...
1144 просмотров
schedule 26.10.2022

образцы/bpf/xdpsock_user.c:xsk_configure_socket:331: errno: 1/Операция не разрешена
У меня аналогичная проблема с IP-ссылка программы XDP ошибка: раздел программы отклонен: операция не разрешена , кроме Linux 5.4.0. Я могу запускать некоторые программы XDP eBPF, но не AF_XDP: ➜ uname -r 5.4.0 ➜ sudo strace -e bpf...
209 просмотров
schedule 17.05.2023

Почему верификатор BPF выдает ошибку с нулевым ключом при использовании BPF_MAP_TYPE_QUEUE?
Я пытаюсь загрузить программу BPF с картой очереди. Кажется, я получаю сообщение об ошибке, связанное с нулевым ключом. libbpf: -- BEGIN DUMP LOG --- libbpf: 0: (b7) r1 = 123 1: (63) *(u32 *)(r10 -4) = r1 2: (bf) r3 = r10 3: (07) r3 += -4 4:...
133 просмотров
schedule 17.11.2022

Как изменить память пользовательского пространства с помощью eBPF?
Я пытаюсь написать пример кода и посмотреть, как он работает на практике. Как сказано здесь и обсуждается здесь . Если все верно, вывод должен быть: $ cat foo1 this is foo1 content $ cat foo2 this is foo2 content $ sudo bcc_mangle_open.py...
381 просмотров
schedule 03.09.2022

Недопустимый аргумент кольцевого буфера BPF (-22)?
Я хотел использовать последнюю карту eBPF, BPF_MAP_TYPE_RINGBUF , но я не могу найти много информации в Интернете о том, как я могу ее использовать, поэтому я просто пробую и ошибаюсь здесь. Я определил и использовал его следующим образом: struct...
240 просмотров
schedule 22.09.2023

Ошибка загрузки программы EBPF без журнала проверки
Пытаюсь написать программу EBPF, но в каком-то месте застрял. В документации сказано, что функции, которые определены вами, являются абсолютно валидными и вызываемыми, однако даже в этом простейшем примере (правда, с использованием карты) я получаю...
184 просмотров
schedule 10.11.2022

Может ли eBPF вызывать динамические библиотеки?
Можно ли написать программу eBPF, которая может динамически вызывать внешнюю библиотеку? т.е. предположим, что эта конкретная библиотека присутствует на хосте, на котором выполняется код eBPF. Сейчас меня не волнует, проходит ли программа...
31 просмотров
schedule 01.03.2023

Как отслеживать процесс Java с помощью eBPF (BCC)
Я хочу использовать Upprobe в eBPF для трассировки написанной мной Java-программы, но я не знаю, как найти таблицу символов, соответствующую этой Java-программе. На языке C исполняемые файлы, связанные с платформой, будут созданы после компиляции, и...
190 просмотров
schedule 07.10.2022

Ошибка: недопустимый доступ к памяти 'inv' при использовании bpf_probe_read_*()
Вот проблема: Я пишу программу BPF, проверяющую функцию ядра vfs_read() с помощью kprobe: ssize_t vfs_read(struct file *file, char __user *buf, size_t count, loff_t *pos) Соответствующая информация (внутри *file ) собирается с...
40 просмотров
schedule 13.04.2024

Регистрировать ошибки при попытке разделить строки и распечатать их с помощью BCC
Я хотел бы разделить некоторые строки и распечатать их одну за другой, но из-за этих ошибок это кажется почти невозможным. Попытка изменить const char str[] на const char *str, кажется, только что привела меня к ошибке кода операции 00. Кажется, я...
15 просмотров
schedule 31.10.2022

Отправка строк в пространство карты BPF и их печать
У меня есть небольшой текстовый файл, который я хотел бы записать здесь в BPF. Вот как выглядит мой код Python для BPF, но я пока не могу ничего распечатать. Я продолжаю получать сообщение «Не удалось загрузить программу: неверный аргумент с кучей...
20 просмотров
schedule 12.06.2023