Libseccomp: RFE: RISC-V-Unterstützung hinzufügen

Erstellt am 20. Feb. 2018  ·  28Kommentare  ·  Quelle: seccomp/libseccomp

Von @rwmjones :

RISC-V ist ein Open Source, kostenloses ISA, das seit 2010 an der UCB entwickelt wird (https://riscv.org/).

Wir haben eine ältere PR von @rwmjones in #50, die libseccomp-Unterstützung hinzugefügt hat, bevor die Kernel-Unterstützung vorhanden war (Herbst 2016).

Wir haben eine neuere PR von @Icenowy in #108, die libseccomp-Unterstützung hinzufügt, obwohl die Kernel-Unterstützung noch unbekannt ist (Februar 2018).

Diese Ausgabe wurde entwickelt, um Notizen und Fortschritte über PRs hinweg zu verfolgen.

enhancement prioritlow

Hilfreichster Kommentar

Ich werde warten, bis auch "[GIT PULL] seccomp updates for v5.5-rc1" zusammengeführt wird. Es gibt dort einen kleinen RISC-V-Patch.

Alle 28 Kommentare

@pcmoore Kernel-Unterstützung ist Upstream in 4.15.0. (Es werden mehr Treiber zum Booten benötigt, sie werden in 4.17 erwartet, aber 4.15 hat die vollständige uapi)

@sorear Ich denke, es ist in Ordnung, Dinge wie die oben genannten nur einmal in der anderen PR zu kommentieren.

... und für mein zukünftiges Ich scheint es nicht, dass v4.16-rc2+ die notwendige HAVE_ARCH_SECCOMP_FILTER Unterstützung für RISC-V hat.

Schnelles Update, Kernel-Unterstützung fehlt noch in Linus' Baum:

# 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

Ich habe hier einen Prototyp-Commit in unseren Entwicklungs-risc-v-Kernel-Zweig verschoben: https://github.com/riscv/riscv-linux/commit/0712587b63964272397ed34864130912d2a87020

Ich bin mir aber nicht ganz sicher, wie ich das testen soll.

Hallo @terpstra

Wenn Sie noch nicht mit @kees in Kontakt waren, (cd tests; ./regression -T live) die den seccomp-Code im Kernel ausüben; Es gibt auch Samples/seccomp in den Kernelquellen, aber ich habe keine direkten Erfahrungen damit.

Ich denke, es gibt einen 3. Patch in openSUSE: https://build.opensuse.org/package/view_file/openSUSE : Factory:RISCV/libseccomp/riscv.patch?expand=1

aber es fehlt __NR_riscv_flush_icache .

Hallo @terpstra , hast du den Patch https://github.com/riscv/riscv-linux/commit/0712587b63964272397ed34864130912d2a87020 in den Mainline Kernel eingebunden ? Irgendeine Idee für einen Zeitplan dafür? Vielleicht kann @palmer-dabbelt dabei helfen.

Ich habe alle Linux-Treiber, die ich für das U540 geschrieben habe, an Paul ausgelagert
und Palmer. Ich bin beim Upstreaming nicht mehr auf dem Laufenden.

Am Mi, 5. Juni 2019 um 12:53 Uhr Carlos Eduardo [email protected]
schrieb:

Hallo @terpstra https://github.com/terpstra , habe den Patch
riscv/ riscv-linux@0712587
https://github.com/riscv/riscv-linux/commit/0712587b63964272397ed34864130912d2a87020
in den Mainline-Kernel eingebunden? Irgendeine Idee für einen Zeitplan dafür? Vielleicht
@palmer-dabbelt https://github.com/palmer-dabbelt kann dabei helfen.


Sie erhalten dies, weil Sie erwähnt wurden.
Antworten Sie direkt auf diese E-Mail und zeigen Sie sie auf GitHub an
https://github.com/seccomp/libseccomp/issues/110?email_source=notifications&email_token=AAIM7CU2KQFCLUTSCO2VYILPZAKUXA5CNFSM4ERS6NOKYY3PNVWWK3TUL52HS4DFVREXG43VMVKYBW63LNMV2KQFCLUTSCO2VYILPZAKUXA5CNFSM4ERS6NOKYY3PNVWWK3TUL52HS4DFVREXG43VMVKYBW63LNMV2KQFCLUTSCO2
oder den Thread stumm schalten
https://github.com/notifications/unsubscribe-auth/AAIM7CXIDCVBETFXJLBRY73PZAKUXANCNFSM4ERS6NOA
.

Ich habe vor einigen Monaten (glaube ich) seccomp v1-Patches verschickt, die die libseccomp-Testsuite und die Kernel-Selbsttests bestanden haben. Ich muss Zeit finden, um den neuesten Kernel erneut zu testen, um v2 auszusenden. Der libseccomp-Patch ist hier: https://github.com/seccomp/libseccomp/pull/134

@carlosedp wie schnell brauchst du es?

Ich würde mir keine Sorgen machen, bis der Kernel-Patch in Linus' Baum gelandet ist, aber PR #134 sieht so aus, als ob es einen Forward-Port zum aktuellen libseccomp-Master-Zweig benötigt.

Ich habe mir RISC-V seit einiger Zeit nicht mehr angeschaut. Gibt es RISC-V-Hardware zu vernünftigen Preisen und angemessener Leistung für Entwicklung/Tests, die eine Standard-Distribution ausführen kann?

@davidlt Ich habe den PR134-Patch gezogen und angewendet und er testet auch ohne Kernel-Patches perfekt. Es wäre großartig, libseccomp zu geben, um andere Abhängigkeiten aufzubauen. Ich verwende bereits Docker, das lokal damit erstellt wurde.

@pcmoore Auf der Hardwareseite ist nur das SiFive Unleashed-Board teuer. Es gibt eine Qemu-VM, die ich mit Debian gepackt habe (aber es gibt auch ein Fedora-Rootfs, das ich packen könnte). Es kann für die Entwicklung verwendet werden.

Ich verfolge die Abhängigkeiten auf https://github.com/carlosedp/riscv-bringup

Eigentlich habe ich gerade mit dem Tip mit PR134 nachgetestet. Ich habe 6 fehlgeschlagene Tests.

Die Ergebnisse können auf https://gist.github.com/carlosedp/7e1e222e5ccb4b45faa357dd6b30ac9a eingesehen werden

Hm, das ist seltsam. Laut Testausgabe scheint Test 46 mit ENOMEM fehlzuschlagen, was etwas ungewöhnlich ist (siehe tools/scmp_bpf_sim.c). Ich bin im Moment ziemlich beschäftigt und habe keine RISC-V-VM zur Hand, um dies zu testen, aber wenn Sie einige Hinweise zum Debuggen benötigen, zögern Sie nicht, zu fragen.

Ich habe sowohl eine Qemu-VM als auch ein Risc-V-Board. Auf meinem aktuellen Kernel sind keine seccomp-Patches angewendet. Wenn Sie Tipps haben, wie ich helfen kann, freue ich mich!
Ansonsten, wenn Sie eine RiscV Qemu VM wollen, habe ich ein Paket auf https://github.com/carlosedp/riscv-bringup#virtual -machine-and-pre-built-docker zusammengestellt.

@davidlt ein Update zur RISC-V-

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

Es scheint vollständig überprüft worden zu sein, aber der letzte Patch ging zwischen zwei Entwicklern verloren.

Der Patch wurde für den 5.4-Kernel an Linus geschickt, aber er wollte ihn nicht so weit in RCs ziehen. Der Patch wird im Merge-Fenster von 5.5 landen.

Beachten Sie, dass sich der Patch bereits in linux-next befindet, falls das wichtig ist.

Das sind gute Nachrichten, danke an alle! Da es so aussieht, als wären wir noch ein paar Wochen davon entfernt, dies in Linus' Baum zu sehen, werde ich dies für den libseccomp v2.5-Meilenstein markieren.

Möchte sich jemand freiwillig melden, um die PR zu aktualisieren/testen/erneut einzureichen, sobald das Zusammenführungsfenster geschlossen wird?

Ich werde eine neue Version von PR senden, sobald libseccomp in Linus' Baum landet.

Super, danke @davidlt.

Ich werde warten, bis auch "[GIT PULL] seccomp updates for v5.5-rc1" zusammengeführt wird. Es gibt dort einen kleinen RISC-V-Patch.

Danke an alle. Wir haben noch eine Reihe von Dingen auf der TODO-Liste für die Version 2.5, also denke ich, dass wir noch etwas Zeit haben.

Schnelles Update. Ich habe angefangen Fedora/RISCV auf 5.5-rc2 zu aktualisieren und es gibt eine Reihe von Problemen. Ich habe möglicherweise ein von SECCOMP erstelltes Problem im Kernel gefunden und arbeite daran, dieses zuerst zu beheben. Dieses Problem wurde bei den libseccomp-Testsuite- oder Kernel-seccomp-Selbsttests nicht angezeigt.

Danke für das Update. FWIW, die libseccomp-Tests testen den Kernel nicht aggressiv, sondern konzentrieren sich mehr auf die Bibliotheksseite (Ausführen von Code durch einen BPF-Simulator).

Dies sollte über #197, Schließen, gelöst werden.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen