<?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 Kbuild</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>f122668d - ARC: Add eBPF JIT support</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/arc/Kbuild#f122668d</link>
        <description>ARC: Add eBPF JIT supportThis will add eBPF JIT support to the 32-bit ARCv2 processors. Theimplementation is qualified by running the BPF tests on a Synopsys HSDKboard with &quot;ARC HS38 v2.1c at 500 MHz&quot; as the 4-core CPU.The test_bpf.ko reports 2-10 fold improvements in execution time of itstests. For instance:test_bpf: #33 tcpdump port 22 jited:0 704 1766 2104 PASStest_bpf: #33 tcpdump port 22 jited:1 120  224  260 PASStest_bpf: #141 ALU_DIV_X: 4294967295 / 4294967295 = 1 jited:0 238 PASStest_bpf: #141 ALU_DIV_X: 4294967295 / 4294967295 = 1 jited:1  23 PASStest_bpf: #776 JMP32_JGE_K: all ... magnitudes jited:0 2034681 PASStest_bpf: #776 JMP32_JGE_K: all ... magnitudes jited:1 1020022 PASSDeployment and structure------------------------The related codes are added to &quot;arch/arc/net&quot;:- bpf_jit.h       -- The interface that a back-end translator must provide- bpf_jit_core.c  -- Knows how to handle the input eBPF byte stream- bpf_jit_arcv2.c -- The back-end code that knows the translation logicThe bpf_int_jit_compile() at the end of bpf_jit_core.c is the entranceto the whole process. Normally, the translation is done in one pass,namely the &quot;normal pass&quot;. In case some relocations are not known duringthis pass, some data (arc_jit_data) is allocated for the next pass tocome. This possible next (and last) pass is called the &quot;extra pass&quot;.1. Normal pass       # The necessary pass     1a. Dry run       # Get the whole JIT length, epilogue offset, etc.     1b. Emit phase    # Allocate memory and start emitting instructions2. Extra pass        # Only needed if there are relocations to be fixed     2a. Patch relocationsSupport status--------------The JIT compiler supports BPF instructions up to &quot;cpu=v4&quot;. However, itdoes not yet provide support for:- Tail calls- Atomic operations- 64-bit division/remainder- BPF_PROBE_MEM* (exception table)The result of &quot;test_bpf&quot; test suite on an HSDK board is:hsdk-lnx# insmod test_bpf.ko test_suite=test_bpf  test_bpf: Summary: 863 PASSED, 186 FAILED, [851/851 JIT&apos;ed]All the failing test cases are due to the ones that were not JIT&apos;ed.Categorically, they can be represented as:  .-----------.------------.-------------.  | test type |   opcodes  | # of cases  |  |-----------+------------+-------------|  | atomic    | 0xC3, 0xDB |         149 |  | div64     | 0x37, 0x3F |          22 |  | mod64     | 0x97, 0x9F |          15 |  `-----------^------------+-------------|                           | (total) 186 |                           `-------------&apos;Setup: build config-------------------The following configs must be set to have a working JIT test:  CONFIG_BPF_JIT=y  CONFIG_BPF_JIT_ALWAYS_ON=y  CONFIG_TEST_BPF=mThe following options are not necessary for the tests module,but are good to have:  CONFIG_DEBUG_INFO=y             # prerequisite for below  CONFIG_DEBUG_INFO_BTF=y         # so bpftool can generate vmlinux.h  CONFIG_FTRACE=y                 #  CONFIG_BPF_SYSCALL=y            # all these options lead to  CONFIG_KPROBE_EVENTS=y          # having CONFIG_BPF_EVENTS=y  CONFIG_PERF_EVENTS=y            #Some BPF programs provide data through /sys/kernel/debug:  CONFIG_DEBUG_FS=yarc# mount -t debugfs debugfs /sys/kernel/debugSetup: elfutils---------------The libdw.{so,a} library that is used by pahole for processingthe final binary must come from elfutils 0.189 or newer. Thesupport for ARCv2 [1] has been added since that version.[1]https://sourceware.org/git/?p=elfutils.git;a=commit;h=de3d46b3e7Setup: pahole-------------The line below in linux/scripts/Makefile.btf must be commented out:pahole-flags-$(call test-ge, $(pahole-ver), 121) += --btf_gen_floatsOr else, the build will fail:$ make V=1  ...  BTF     .btf.vmlinux.bin.opahole -J --btf_gen_floats                    \       -j --lang_exclude=rust                 \       --skip_encoding_btf_inconsistent_proto \       --btf_gen_optimized .tmp_vmlinux.btfComplex, interval and imaginary float types are not supportedEncountered error while encoding BTF.  ...  BTFIDS  vmlinux./tools/bpf/resolve_btfids/resolve_btfids vmlinuxlibbpf: failed to find &apos;.BTF&apos; ELF section in vmlinuxFAILED: load BTF from vmlinux: No data availableThis is due to the fact that the ARC toolchains generate&quot;complex float&quot; DIE entries in libgcc and at the moment, paholecan&apos;t handle such entries.Running the tests-----------------host$ scp /bld/linux/lib/test_bpf.ko arc:arc # sysctl net.core.bpf_jit_enable=1arc # insmod test_bpf.ko test_suite=test_bpf      ...      test_bpf: #1048 Staggered jumps: JMP32_JSLE_X jited:1 697811 PASS      test_bpf: Summary: 863 PASSED, 186 FAILED, [851/851 JIT&apos;ed]Acknowledgments---------------- Claudiu Zissulescu for his unwavering support- Yuriy Kolerov for testing and troubleshooting- Vladimir Isaev for the pahole workaround- Sergey Matyukevich for paving the road by adding the interpreter supportSigned-off-by: Shahab Vahedi &lt;shahab@synopsys.com&gt;Link: https://lore.kernel.org/r/20240430145604.38592-1-list+bpf@vahedi.orgSigned-off-by: Alexei Starovoitov &lt;ast@kernel.org&gt;

            List of files:
            /linux-6.15/arch/arc/Kbuild</description>
        <pubDate>Tue, 30 Apr 2024 14:56:04 +0000</pubDate>
        <dc:creator>Shahab Vahedi &lt;shahab@synopsys.com&gt;</dc:creator>
    </item>
<item>
        <title>8212f898 - kbuild: use more subdir- for visiting subdirectories while cleaning</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/arc/Kbuild#8212f898</link>
        <description>kbuild: use more subdir- for visiting subdirectories while cleaningDocumentation/kbuild/makefiles.rst suggests to use &quot;archclean&quot; forcleaning arch/$(SRCARCH)/boot/, but it is not a hard requirement.Since commit d92cc4d51643 (&quot;kbuild: require all architectures to havearch/$(SRCARCH)/Kbuild&quot;), we can use the &quot;subdir- += boot&quot; trick forall architectures. This can take advantage of the parallel option (-j)for &quot;make clean&quot;.I also cleaned up the comments in arch/$(SRCARCH)/Makefile. The &quot;archdep&quot;target no longer exists.Signed-off-by: Masahiro Yamada &lt;masahiroy@kernel.org&gt;Reviewed-by: Kees Cook &lt;keescook@chromium.org&gt;Acked-by: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;Acked-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt; (powerpc)

            List of files:
            /linux-6.15/arch/arc/Kbuild</description>
        <pubDate>Wed, 13 Oct 2021 06:36:22 +0000</pubDate>
        <dc:creator>Masahiro Yamada &lt;masahiroy@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>96ac6d43 - treewide: Add SPDX license identifier - Kbuild</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/arc/Kbuild#96ac6d43</link>
        <description>treewide: Add SPDX license identifier - KbuildAdd 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.0Reported-by: Masahiro Yamada &lt;yamada.masahiro@socionext.com&gt;Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;Reviewed-by: Kate Stewart &lt;kstewart@linuxfoundation.org&gt;Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

            List of files:
            /linux-6.15/arch/arc/Kbuild</description>
        <pubDate>Thu, 30 May 2019 12:03:44 +0000</pubDate>
        <dc:creator>Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;</dc:creator>
    </item>
<item>
        <title>cfdbc2e1 - ARC: Build system: Makefiles, Kconfig, Linker script</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/arc/Kbuild#cfdbc2e1</link>
        <description>ARC: Build system: Makefiles, Kconfig, Linker scriptArnd in his review pointed out that arch Kconfig organisation has severaldeficiencies:* Build time entries for things which can be runtime extracted from DT  (e.g. SDRAM size, core clk frequency..)* Not multi-platform-image-build friendly (choice .. endchoice constructs)* cpu variants support (750/770) is exclusive.The first 2 have been fixed in subsequent patches.Due to the nature of the 750 and 770, it is not possible to build forboth together, w/o special runtime glue code which would hurtperformance.Signed-off-by: Vineet Gupta &lt;vgupta@synopsys.com&gt;Cc: Arnd Bergmann &lt;arnd@arndb.de&gt;Cc: Sam Ravnborg &lt;sam@ravnborg.org&gt;Acked-by: Sam Ravnborg &lt;sam@ravnborg.org&gt;

            List of files:
            /linux-6.15/arch/arc/Kbuild</description>
        <pubDate>Fri, 18 Jan 2013 09:42:20 +0000</pubDate>
        <dc:creator>Vineet Gupta &lt;vgupta@synopsys.com&gt;</dc:creator>
    </item>
</channel>
</rss>
