Libseccomp: RFE: добавить поддержку RISC-V

Созданный на 20 февр. 2018  ·  28Комментарии  ·  Источник: seccomp/libseccomp

Из @rwmjones :

RISC-V - это бесплатный ISA с открытым исходным кодом, который разрабатывается в UCB с 2010 года (https://riscv.org/).

У нас есть один более старый PR от @rwmjones в №50, в котором добавлена ​​поддержка libseccomp до того, как поддержка ядра появилась (осень 2016 г.).

У нас есть более свежий PR от @Icenowy в # 108, в котором добавлена ​​поддержка libseccomp, хотя поддержка ядра все еще неизвестна (февраль 2018 г.).

Этот выпуск предназначен для отслеживания заметок и прогресса по PR.

enhancement prioritlow

Самый полезный комментарий

Я подожду, пока "[GIT PULL] seccomp updates for v5.5-rc1" также не объединятся. Там есть один небольшой патч RISC-V.

Все 28 Комментарий

@pcmoore Поддержка ядра находится в апстриме 4.15.0. (Для загрузки требуется больше драйверов, они ожидаются в 4.17, но в 4.15 есть полный uapi)

@sorear Я думаю, что можно просто прокомментировать один раз в другом PR для вещей, подобных вышеизложенному.

... и для меня в будущем не похоже, что v4.16-rc2 + имеет необходимую поддержку HAVE_ARCH_SECCOMP_FILTER для RISC-V.

Быстрое обновление, поддержка ядра по-прежнему отсутствует в дереве Линуса:

# grep "HAVE_ARCH_SECCOMP_FILTER" $(find arch/*/  -type f)
arch/arm/Kconfig:       select HAVE_ARCH_SECCOMP_FILTER if (AEABI && !OABI_COMPAT)
arch/arm/kernel/ptrace.c:#ifdef CONFIG_HAVE_ARCH_SECCOMP_FILTER
arch/arm64/Kconfig:     select HAVE_ARCH_SECCOMP_FILTER
arch/mips/Kconfig:      select HAVE_ARCH_SECCOMP_FILTER
arch/parisc/Kconfig:    select HAVE_ARCH_SECCOMP_FILTER
arch/powerpc/Kconfig:   select HAVE_ARCH_SECCOMP_FILTER
arch/s390/Kconfig:      select HAVE_ARCH_SECCOMP_FILTER
arch/um/Kconfig.common: select HAVE_ARCH_SECCOMP_FILTER
arch/x86/Kconfig:       select HAVE_ARCH_SECCOMP_FILTER

Я отправил фиксацию прототипа в нашу ветку ядра risc-v для разработки здесь: https://github.com/riscv/riscv-linux/commit/0712587b63964272397ed34864130912d2a87020

Однако я не совсем уверен, как это проверить.

Привет @terpstra

Если вы еще не связались с @kees , возможно, вы захотите поговорить с ним, поскольку он поддерживает код seccomp в ядре. Что касается тестирования, libseccomp имеет несколько «живых» тестов (cd tests; ./regression -T live) которые проверяют код seccomp в ядре; в исходных кодах ядра также есть samples / seccomp, но у меня нет прямого опыта работы с ними.

Думаю, в openSUSE есть третий патч: https://build.opensuse.org/package/view_file/openSUSE : Factory: RISCV / libseccomp / riscv.patch? Expand = 1

но отсутствует __NR_riscv_flush_icache .

Последний PR libseccomp: https://github.com/seccomp/libseccomp/pull/134

Привет, @terpstra , есть ли патч https://github.com/riscv/riscv-linux/commit/0712587b63964272397ed34864130912d2a87020, интегрированный в основное ядро? Есть идеи по графику для этого? Может быть, @ palmer-dabbelt поможет в этом.

Я отправил Полу все свои драйверы Linux, которые написал для U540.
и Палмер. Я больше не в курсе апстрима.

В среду, 5 июня 2019 г., в 12:53 Карлос Эдуардо [email protected]
написал:

Привет @terpstra https://github.com/terpstra , есть патч
riscv / riscv-linux @ 0712587
https://github.com/riscv/riscv-linux/commit/0712587b63964272397ed34864130912d2a87020
объединены с ядром Mainline? Есть идеи по графику для этого? Может быть
@ palmer-dabbelt https://github.com/palmer-dabbelt может помочь в этом.

-
Вы получаете это, потому что вас упомянули.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/seccomp/libseccomp/issues/110?email_source=notifications&email_token=AAIM7CU2KQFCLUTSCO2VYILPZAKUXA5CNFSM4ERS6NOKYY3PNVWWK3TUL52HS4DFVREXG63LNVBOD5
или отключить поток
https://github.com/notifications/unsubscribe-auth/AAIM7CXIDCVBETFXJLBRY73PZAKUXANCNFSM4ERS6NOA
.

Несколько месяцев назад я разослал патчи seccomp v1 (я думаю), которые проходили тесты libseccomp testsuite и ядра. Мне нужно найти время, чтобы повторно протестировать последнюю версию ядра, чтобы отправить v2. Патч libseccomp находится здесь: https://github.com/seccomp/libseccomp/pull/134

@carlosedp как быстро он вам нужен?

Я бы не стал беспокоиться об этом, пока патч ядра не попал в дерево Линуса, но PR # 134 выглядит так, как будто ему нужен прямой порт для текущей основной ветки libseccomp.

Я какое-то время не смотрел на RISC-V, есть ли какое-либо оборудование RISC-V по разумной цене и разумно работающее для разработки / тестирования, которое будет запускать стандартный дистрибутив?

@davidlt Я вытащил и применил патч PR134, и он отлично тестирует даже без патчей ядра. Было бы здорово дать libseccomp открыть возможность построения других зависимостей. Я уже запускаю Docker, построенный локально с этим.

@pcmoore Что

Я отслеживаю зависимости на https://github.com/carlosedp/riscv-bringup

На самом деле я только что перепроверил Совет с PR134. Я получил 6 неудачных тестов.

Результаты можно увидеть на https://gist.github.com/carlosedp/7e1e222e5ccb4b45faa357dd6b30ac9a

Хм, это странно. Согласно результатам теста выясняется, что тест 46 не работает с ENOMEM, что немного необычно (см. Tools / scmp_bpf_sim.c). На данный момент я довольно занят, и у меня нет виртуальной машины RISC-V, чтобы проверить это, но если вам нужны советы о том, как это отлаживать, не стесняйтесь спрашивать.

У меня есть и Qemu VM, и плата Risc-V. К моему текущему ядру не применены патчи seccomp. Если у вас есть советы, как я могу помочь, я буду рад!
В противном случае, если вам нужна виртуальная машина RiscV Qemu, я собрал пакет на https://github.com/carlosedp/riscv-bringup#virtual -machine-and-pre-built-docker.

@davidlt есть ли обновления о поддержке ядра RISC-V?

https://lkml.org/lkml/2019/10/14/811

Кажется, он был полностью рассмотрен, но последний патч потерян между двумя разработчиками.

Патч был отправлен Линусу для ядра 5.4, но он не хотел так далеко втягивать его в RC. Патч появится в окне слияния 5.5.

Обратите внимание, что патч уже находится в linux-next, если это важно.

Это хорошие новости, спасибо всем! Поскольку похоже, что до того, как мы увидим это в дереве Линуса, осталось несколько недель, я собираюсь продолжить и отметить это как веху libseccomp v2.5.

Кто-нибудь хочет добровольно обновить / протестировать / повторно отправить PR после закрытия окна слияния?

Я пришлю новую версию PR, как только libseccomp попадет в дерево Линуса.

Отлично, спасибо @davidlt.

Поддержка seccomp только что появилась в дереве Линуса:

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5340627e3fe08030988bdda46dd86cd5d5fb7517

Я подожду, пока "[GIT PULL] seccomp updates for v5.5-rc1" также не объединятся. Там есть один небольшой патч RISC-V.

Спасибо всем. У нас все еще есть ряд вещей в списке TODO для выпуска v2.5, так что я думаю, у нас есть время.

Быстрое обновление. Я начал обновлять Fedora / RISCV до 5.5-rc2, и тут возник ряд проблем. Возможно, я нашел одну проблему, созданную SECCOMP в ядре, и сначала работал над ее исправлением. Эти проблемы не были обнаружены набором тестов libseccomp или самотестированием ядра seccomp.

Спасибо за обновления. FWIW, тесты libseccomp не тестируют ядро ​​агрессивно, они больше ориентированы на библиотеку (запуск кода через симулятор BPF).

Это должно быть решено через # 197, закрытие.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги