<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in Makefile</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>5f316b65 - riscv, bpf: Add RV32G eBPF JIT</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/riscv/net/Makefile#5f316b65</link>
        <description>riscv, bpf: Add RV32G eBPF JITThis is an eBPF JIT for RV32G, adapted from the JIT for RV64G andthe 32-bit ARM JIT.There are two main changes required for this to work compared tothe RV64 JIT.First, eBPF registers are 64-bit, while RV32G registers are 32-bit.BPF registers either map directly to 2 RISC-V registers, or residein stack scratch space and are saved and restored when used.Second, many 64-bit ALU operations do not trivially map to 32-bitoperations. Operations that move bits between high and low words,such as ADD, LSH, MUL, and others must emulate the 64-bit behaviorin terms of 32-bit instructions.This patch also makes related changes to bpf_jit.h, suchas adding RISC-V instructions required by the RV32 JIT.Supported features:The RV32 JIT supports the same features and instructions as theRV64 JIT, with the following exceptions:- ALU64 DIV/MOD: Requires loops to implement on 32-bit hardware.- BPF_XADD | BPF_DW: There&apos;s no 8-byte atomic instruction in RV32.These features are also unsupported on other BPF JITs for 32-bitarchitectures.Testing:- lib/test_bpf.ctest_bpf: Summary: 378 PASSED, 0 FAILED, [349/366 JIT&apos;ed]test_bpf: test_skb_segment: Summary: 2 PASSED, 0 FAILEDThe tests that are not JITed are all due to use of 64-bit div/modor 64-bit xadd.- tools/testing/selftests/bpf/test_verifier.cSummary: 1415 PASSED, 122 SKIPPED, 43 FAILEDTested both with and without BPF JIT hardening.This is the same set of tests that pass using the BPF interpreterwith the JIT disabled.Verification and synthesis:We developed the RV32 JIT using our automated verification tool,Serval. We have used Serval in the past to verify patches to theRV64 JIT. We also used Serval to superoptimize the resulting codethrough program synthesis.You can find the tool and a guide to the approach and results here:https://github.com/uw-unsat/serval-bpf/tree/rv32-jit-v5Co-developed-by: Xi Wang &lt;xi.wang@gmail.com&gt;Signed-off-by: Xi Wang &lt;xi.wang@gmail.com&gt;Signed-off-by: Luke Nelson &lt;luke.r.nels@gmail.com&gt;Signed-off-by: Daniel Borkmann &lt;daniel@iogearbox.net&gt;Reviewed-by: Bj&#246;rn T&#246;pel &lt;bjorn.topel@gmail.com&gt;Acked-by: Bj&#246;rn T&#246;pel &lt;bjorn.topel@gmail.com&gt;Link: https://lore.kernel.org/bpf/20200305050207.4159-3-luke.r.nels@gmail.com

            List of files:
            /linux-6.15/arch/riscv/net/Makefile</description>
        <pubDate>Thu, 05 Mar 2020 05:02:05 +0000</pubDate>
        <dc:creator>Luke Nelson &lt;lukenels@cs.washington.edu&gt;</dc:creator>
    </item>
<item>
        <title>ca6cb544 - riscv, bpf: Factor common RISC-V JIT code</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/riscv/net/Makefile#ca6cb544</link>
        <description>riscv, bpf: Factor common RISC-V JIT codeThis patch factors out code that can be used by both the RV64 and RV32BPF JITs to a common bpf_jit.h and bpf_jit_core.c.Move struct definitions and macro-like functions to header. Renamerv_sb_insn/rv_uj_insn to rv_b_insn/rv_j_insn to match the RISC-Vspecification.Move reusable functions emit_body() and bpf_int_jit_compile() tobpf_jit_core.c with minor simplifications. Rename emit_insn() andbuild_{prologue,epilogue}() to be prefixed with &quot;bpf_jit_&quot; as they areno longer static.Rename bpf_jit_comp.c to bpf_jit_comp64.c to be more explicit.Co-developed-by: Xi Wang &lt;xi.wang@gmail.com&gt;Signed-off-by: Xi Wang &lt;xi.wang@gmail.com&gt;Signed-off-by: Luke Nelson &lt;luke.r.nels@gmail.com&gt;Signed-off-by: Daniel Borkmann &lt;daniel@iogearbox.net&gt;Reviewed-by: Bj&#246;rn T&#246;pel &lt;bjorn.topel@gmail.com&gt;Acked-by: Bj&#246;rn T&#246;pel &lt;bjorn.topel@gmail.com&gt;Link: https://lore.kernel.org/bpf/20200305050207.4159-2-luke.r.nels@gmail.com

            List of files:
            /linux-6.15/arch/riscv/net/Makefile</description>
        <pubDate>Thu, 05 Mar 2020 05:02:04 +0000</pubDate>
        <dc:creator>Luke Nelson &lt;lukenels@cs.washington.edu&gt;</dc:creator>
    </item>
<item>
        <title>ec8f24b7 - treewide: Add SPDX license identifier - Makefile/Kconfig</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/riscv/net/Makefile#ec8f24b7</link>
        <description>treewide: Add SPDX license identifier - Makefile/KconfigAdd SPDX license identifiers to all Make/Kconfig files which: - Have no license information of any formThese files fall under the project license, GPL v2 only. The resulting SPDXlicense identifier is:  GPL-2.0-onlySigned-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

            List of files:
            /linux-6.15/arch/riscv/net/Makefile</description>
        <pubDate>Sun, 19 May 2019 12:07:45 +0000</pubDate>
        <dc:creator>Thomas Gleixner &lt;tglx@linutronix.de&gt;</dc:creator>
    </item>
<item>
        <title>2353ecc6 - bpf, riscv: add BPF JIT for RV64G</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/riscv/net/Makefile#2353ecc6</link>
        <description>bpf, riscv: add BPF JIT for RV64GThis commit adds a BPF JIT for RV64G.The JIT is a two-pass JIT, and has a dynamic prolog/epilogue (similarto the MIPS64 BPF JIT) instead of static ones (e.g. x86_64).At the moment the RISC-V Linux port does not supportCONFIG_HAVE_KPROBES, which means that CONFIG_BPF_EVENTS is notsupported. Thus, no tests involving BPF_PROG_TYPE_TRACEPOINT,BPF_PROG_TYPE_PERF_EVENT, BPF_PROG_TYPE_KPROBE andBPF_PROG_TYPE_RAW_TRACEPOINT passes.The implementation does not support &quot;far branching&quot; (&gt;4KiB).Test results:  # modprobe test_bpf  test_bpf: Summary: 378 PASSED, 0 FAILED, [366/366 JIT&apos;ed]  # echo 1 &gt; /proc/sys/kernel/unprivileged_bpf_disabled  # ./test_verifier  ...  Summary: 761 PASSED, 507 SKIPPED, 2 FAILEDNote that &quot;test_verifier&quot; was run with one build withCONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y and one without, otherwisemany of the the tests that require unaligned access were skipped.CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y:  # echo 1 &gt; /proc/sys/kernel/unprivileged_bpf_disabled  # ./test_verifier | grep -c &apos;NOTE.*unknown align&apos;  0No CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS:  # echo 1 &gt; /proc/sys/kernel/unprivileged_bpf_disabled  # ./test_verifier | grep -c &apos;NOTE.*unknown align&apos;  59The two failing test_verifier tests are:  &quot;ld_abs: vlan + abs, test 1&quot;  &quot;ld_abs: jump around ld_abs&quot;This is due to that &quot;far branching&quot; involved in those tests.All tests where done on QEMU (QEMU emulator version 3.1.50(v3.1.0-688-g8ae951fbc106)).Signed-off-by: Bj&#246;rn T&#246;pel &lt;bjorn.topel@gmail.com&gt;Signed-off-by: Daniel Borkmann &lt;daniel@iogearbox.net&gt;

            List of files:
            /linux-6.15/arch/riscv/net/Makefile</description>
        <pubDate>Tue, 05 Feb 2019 12:41:22 +0000</pubDate>
        <dc:creator>Bj&#246;rn T&#246;pel &lt;bjorn.topel@gmail.com&gt;</dc:creator>
    </item>
</channel>
</rss>
