<?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>2fb76182 - bpf, x86: Add x86 JIT support for timed may_goto</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/x86/net/Makefile#2fb76182</link>
        <description>bpf, x86: Add x86 JIT support for timed may_gotoImplement the arch_bpf_timed_may_goto function using inline assembly tohave control over which registers are spilled, and use our specialprotocol of using BPF_REG_AX as an argument into the function, and asthe return value when going back.Emit call depth accounting for the call made from this stub, and ensurewe don&apos;t have naked returns (when rethunk mitigations are enabled) byfalling back to the RET macro (instead of retq). After popping all savedregisters, the return address into the BPF program should be on top ofthe stack.Since the JIT support is now enabled, ensure selftests which arechecking the produced may_goto sequences do not break by adjusting them.Make sure we still test the old may_goto sequence on otherarchitectures, while testing the new sequence on x86_64.Signed-off-by: Kumar Kartikeya Dwivedi &lt;memxor@gmail.com&gt;Link: https://lore.kernel.org/r/20250304003239.2390751-3-memxor@gmail.comSigned-off-by: Alexei Starovoitov &lt;ast@kernel.org&gt;

            List of files:
            /linux-6.15/arch/x86/net/Makefile</description>
        <pubDate>Tue, 04 Mar 2025 00:32:39 +0000</pubDate>
        <dc:creator>Kumar Kartikeya Dwivedi &lt;memxor@gmail.com&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/x86/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/x86/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>e782bdcf - bpf, x64: remove ld_abs/ld_ind</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/x86/net/Makefile#e782bdcf</link>
        <description>bpf, x64: remove ld_abs/ld_indSince LD_ABS/LD_IND instructions are now removed from the core andreimplemented through a combination of inlined BPF instructions anda slow-path helper, we can get rid of the complexity from x64 JIT.Signed-off-by: Daniel Borkmann &lt;daniel@iogearbox.net&gt;Acked-by: Alexei Starovoitov &lt;ast@kernel.org&gt;Signed-off-by: Alexei Starovoitov &lt;ast@kernel.org&gt;

            List of files:
            /linux-6.15/arch/x86/net/Makefile</description>
        <pubDate>Thu, 03 May 2018 23:08:16 +0000</pubDate>
        <dc:creator>Daniel Borkmann &lt;daniel@iogearbox.net&gt;</dc:creator>
    </item>
<item>
        <title>03f5781b - bpf, x86_32: add eBPF JIT compiler for ia32</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/x86/net/Makefile#03f5781b</link>
        <description>bpf, x86_32: add eBPF JIT compiler for ia32The JIT compiler emits ia32 bit instructions. Currently, It supports eBPFonly. Classic BPF is supported because of the conversion by BPF core.Almost all instructions from eBPF ISA supported except the following:BPF_ALU64 | BPF_DIV | BPF_KBPF_ALU64 | BPF_DIV | BPF_XBPF_ALU64 | BPF_MOD | BPF_KBPF_ALU64 | BPF_MOD | BPF_XBPF_STX | BPF_XADD | BPF_WBPF_STX | BPF_XADD | BPF_DWIt doesn&apos;t support BPF_JMP|BPF_CALL with BPF_PSEUDO_CALL at the moment.IA32 has few general purpose registers, EAX|EDX|ECX|EBX|ESI|EDI. I useEAX|EDX|ECX|EBX as temporary registers to simulate instructions in eBPFISA, and allocate ESI|EDI to BPF_REG_AX for constant blinding, all otherseBPF registers, R0-R10, are simulated through scratch space on stack.The reasons behind the hardware registers allocation policy are:1:MUL need EAX:EDX, shift operation need ECX, so they aren&apos;t fit  for general eBPF 64bit register simulation.2:We need at least 4 registers to simulate most eBPF ISA operations  on registers operands instead of on register&amp;memory operands.3:We need to put BPF_REG_AX on hardware registers, or constant blinding  will degrade jit performance heavily.Tested on PC (Intel(R) Core(TM) i5-5200U CPU).Testing results on i5-5200U:1) test_bpf: Summary: 349 PASSED, 0 FAILED, [319/341 JIT&apos;ed]2) test_progs: Summary: 83 PASSED, 0 FAILED.3) test_lpm: OK4) test_lru_map: OK5) test_verifier: Summary: 828 PASSED, 0 FAILED.Above tests are all done in following two conditions separately:1:bpf_jit_enable=1 and bpf_jit_harden=02:bpf_jit_enable=1 and bpf_jit_harden=2Below are some numbers for this jit implementation:Note:  I run test_progs in kselftest 100 times continuously for every condition,  the numbers are in format: total/times=avg.  The numbers that test_bpf reports show almost the same relation.a:jit_enable=0 and jit_harden=0            b:jit_enable=1 and jit_harden=0  test_pkt_access:PASS:ipv4:15622/100=156    test_pkt_access:PASS:ipv4:10674/100=106  test_pkt_access:PASS:ipv6:9130/100=91      test_pkt_access:PASS:ipv6:4855/100=48  test_xdp:PASS:ipv4:240198/100=2401         test_xdp:PASS:ipv4:138912/100=1389  test_xdp:PASS:ipv6:137326/100=1373         test_xdp:PASS:ipv6:68542/100=685  test_l4lb:PASS:ipv4:61100/100=611          test_l4lb:PASS:ipv4:37302/100=373  test_l4lb:PASS:ipv6:101000/100=1010        test_l4lb:PASS:ipv6:55030/100=550c:jit_enable=1 and jit_harden=2  test_pkt_access:PASS:ipv4:10558/100=105  test_pkt_access:PASS:ipv6:5092/100=50  test_xdp:PASS:ipv4:131902/100=1319  test_xdp:PASS:ipv6:77932/100=779  test_l4lb:PASS:ipv4:38924/100=389  test_l4lb:PASS:ipv6:57520/100=575The numbers show we get 30%~50% improvement.See Documentation/networking/filter.txt for more information.Changelog: Changes v5-v6: 1:Add do {} while (0) to RETPOLINE_RAX_BPF_JIT for   consistence reason. 2:Clean up non-standard comments, reported by Daniel Borkmann. 3:Fix a memory leak issue, repoted by Daniel Borkmann. Changes v4-v5: 1:Delete is_on_stack, BPF_REG_AX is the only one   on real hardware registers, so just check with   it. 2:Apply commit 1612a981b766 (&quot;bpf, x64: fix JIT emission   for dead code&quot;), suggested by Daniel Borkmann. Changes v3-v4: 1:Fix changelog in commit.   I install llvm-6.0, then test_progs willn&apos;t report errors.   I submit another patch:   &quot;bpf: fix misaligned access for BPF_PROG_TYPE_PERF_EVENT program type on x86_32 platform&quot;   to fix another problem, after that patch, test_verifier willn&apos;t report errors too. 2:Fix clear r0[1] twice unnecessarily in *BPF_IND|BPF_ABS* simulation. Changes v2-v3: 1:Move BPF_REG_AX to real hardware registers for performance reason. 3:Using bpf_load_pointer instead of bpf_jit32.S, suggested by Daniel Borkmann. 4:Delete partial codes in 1c2a088a6626, suggested by Daniel Borkmann. 5:Some bug fixes and comments improvement. Changes v1-v2: 1:Fix bug in emit_ia32_neg64. 2:Fix bug in emit_ia32_arsh_r64. 3:Delete filename in top level comment, suggested by Thomas Gleixner. 4:Delete unnecessary boiler plate text, suggested by Thomas Gleixner. 5:Rewrite some words in changelog. 6:CodingSytle improvement and a little more comments.Signed-off-by: Wang YanQing &lt;udknight@gmail.com&gt;Signed-off-by: Daniel Borkmann &lt;daniel@iogearbox.net&gt;

            List of files:
            /linux-6.15/arch/x86/net/Makefile</description>
        <pubDate>Thu, 03 May 2018 06:10:43 +0000</pubDate>
        <dc:creator>Wang YanQing &lt;udknight@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>c207aee4 - objtool, x86: Add several functions and files to the objtool whitelist</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/x86/net/Makefile#c207aee4</link>
        <description>objtool, x86: Add several functions and files to the objtool whitelistIn preparation for an objtool rewrite which will have broader checks,whitelist functions and files which cause problems because they dounusual things with the stack.These whitelists serve as a TODO list for which functions and filesdon&apos;t yet have undwarf unwinder coverage.  Eventually most of thewhitelists can be removed in favor of manual CFI hint annotations orobjtool improvements.Signed-off-by: Josh Poimboeuf &lt;jpoimboe@redhat.com&gt;Cc: Andy Lutomirski &lt;luto@kernel.org&gt;Cc: Jiri Slaby &lt;jslaby@suse.cz&gt;Cc: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;Cc: live-patching@vger.kernel.orgLink: http://lkml.kernel.org/r/7f934a5d707a574bda33ea282e9478e627fb1829.1498659915.git.jpoimboe@redhat.comSigned-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;

            List of files:
            /linux-6.15/arch/x86/net/Makefile</description>
        <pubDate>Wed, 28 Jun 2017 15:11:06 +0000</pubDate>
        <dc:creator>Josh Poimboeuf &lt;jpoimboe@redhat.com&gt;</dc:creator>
    </item>
<item>
        <title>0a14842f - net: filter: Just In Time compiler for x86-64</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/x86/net/Makefile#0a14842f</link>
        <description>net: filter: Just In Time compiler for x86-64In order to speedup packet filtering, here is an implementation of aJIT compiler for x86_64It is disabled by default, and must be enabled by the admin.echo 1 &gt;/proc/sys/net/core/bpf_jit_enableIt uses module_alloc() and module_free() to get memory in the 2GB textkernel range since we call helpers functions from the generated code.EAX : BPF A accumulatorEBX : BPF X accumulatorRDI : pointer to skb   (first argument given to JIT function)RBP : frame pointer (even if CONFIG_FRAME_POINTER=n)r9d : skb-&gt;len - skb-&gt;data_len (headlen)r8  : skb-&gt;dataTo get a trace of generated code, use :echo 2 &gt;/proc/sys/net/core/bpf_jit_enableExample of generated code :# tcpdump -p -n -s 0 -i eth1 host 192.168.20.0/24flen=18 proglen=147 pass=3 image=ffffffffa00b5000JIT code: ffffffffa00b5000: 55 48 89 e5 48 83 ec 60 48 89 5d f8 44 8b 4f 60JIT code: ffffffffa00b5010: 44 2b 4f 64 4c 8b 87 b8 00 00 00 be 0c 00 00 00JIT code: ffffffffa00b5020: e8 24 7b f7 e0 3d 00 08 00 00 75 28 be 1a 00 00JIT code: ffffffffa00b5030: 00 e8 fe 7a f7 e0 24 00 3d 00 14 a8 c0 74 49 beJIT code: ffffffffa00b5040: 1e 00 00 00 e8 eb 7a f7 e0 24 00 3d 00 14 a8 c0JIT code: ffffffffa00b5050: 74 36 eb 3b 3d 06 08 00 00 74 07 3d 35 80 00 00JIT code: ffffffffa00b5060: 75 2d be 1c 00 00 00 e8 c8 7a f7 e0 24 00 3d 00JIT code: ffffffffa00b5070: 14 a8 c0 74 13 be 26 00 00 00 e8 b5 7a f7 e0 24JIT code: ffffffffa00b5080: 00 3d 00 14 a8 c0 75 07 b8 ff ff 00 00 eb 02 31JIT code: ffffffffa00b5090: c0 c9 c3BPF program is 144 bytes long, so native program is almost same size ;)(000) ldh      [12](001) jeq      #0x800           jt 2    jf 8(002) ld       [26](003) and      #0xffffff00(004) jeq      #0xc0a81400      jt 16   jf 5(005) ld       [30](006) and      #0xffffff00(007) jeq      #0xc0a81400      jt 16   jf 17(008) jeq      #0x806           jt 10   jf 9(009) jeq      #0x8035          jt 10   jf 17(010) ld       [28](011) and      #0xffffff00(012) jeq      #0xc0a81400      jt 16   jf 13(013) ld       [38](014) and      #0xffffff00(015) jeq      #0xc0a81400      jt 16   jf 17(016) ret      #65535(017) ret      #0Signed-off-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;Cc: Arnaldo Carvalho de Melo &lt;acme@infradead.org&gt;Cc: Ben Hutchings &lt;bhutchings@solarflare.com&gt;Cc: Hagen Paul Pfeifer &lt;hagen@jauu.net&gt;Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;

            List of files:
            /linux-6.15/arch/x86/net/Makefile</description>
        <pubDate>Wed, 20 Apr 2011 09:27:32 +0000</pubDate>
        <dc:creator>Eric Dumazet &lt;eric.dumazet@gmail.com&gt;</dc:creator>
    </item>
</channel>
</rss>
