Из @rwmjones :
RISC-V - это бесплатный ISA с открытым исходным кодом, который разрабатывается в UCB с 2010 года (https://riscv.org/).
У нас есть один более старый PR от @rwmjones в №50, в котором добавлена поддержка libseccomp до того, как поддержка ядра появилась (осень 2016 г.).
У нас есть более свежий PR от @Icenowy в # 108, в котором добавлена поддержка libseccomp, хотя поддержка ядра все еще неизвестна (февраль 2018 г.).
Этот выпуск предназначен для отслеживания заметок и прогресса по PR.
@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 только что появилась в дереве Линуса:
Я подожду, пока "[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, закрытие.
Самый полезный комментарий
Я подожду, пока "[GIT PULL] seccomp updates for v5.5-rc1" также не объединятся. Там есть один небольшой патч RISC-V.