<?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>307d149d - bpf, mips: Clean up config options about JIT</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/mips/net/Makefile#307d149d</link>
        <description>bpf, mips: Clean up config options about JITThe config options MIPS_CBPF_JIT and MIPS_EBPF_JIT are useless, removethem in arch/mips/Kconfig, and then modify arch/mips/net/Makefile.Signed-off-by: Tiezhu Yang &lt;yangtiezhu@loongson.cn&gt;Signed-off-by: Daniel Borkmann &lt;daniel@iogearbox.net&gt;Acked-by: Johan Almbladh &lt;johan.almbladh@anyfinetworks.com&gt;Link: https://lore.kernel.org/bpf/1633915150-13220-2-git-send-email-yangtiezhu@loongson.cn

            List of files:
            /linux-6.15/arch/mips/net/Makefile</description>
        <pubDate>Mon, 11 Oct 2021 01:19:09 +0000</pubDate>
        <dc:creator>Tiezhu Yang &lt;yangtiezhu@loongson.cn&gt;</dc:creator>
    </item>
<item>
        <title>e5c15a36 - mips, bpf: Fix Makefile that referenced a removed file</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/mips/net/Makefile#e5c15a36</link>
        <description>mips, bpf: Fix Makefile that referenced a removed fileThis patch removes a stale Makefile reference to the cBPF JIT that wasremoved.Fixes: ebcbacfa50ec (&quot;mips, bpf: Remove old BPF JIT implementations&quot;)Signed-off-by: Johan Almbladh &lt;johan.almbladh@anyfinetworks.com&gt;Signed-off-by: Daniel Borkmann &lt;daniel@iogearbox.net&gt;Link: https://lore.kernel.org/bpf/20211007142339.633899-1-johan.almbladh@anyfinetworks.com

            List of files:
            /linux-6.15/arch/mips/net/Makefile</description>
        <pubDate>Thu, 07 Oct 2021 14:23:39 +0000</pubDate>
        <dc:creator>Johan Almbladh &lt;johan.almbladh@anyfinetworks.com&gt;</dc:creator>
    </item>
<item>
        <title>01bdc58e - mips, bpf: Enable eBPF JITs</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/mips/net/Makefile#01bdc58e</link>
        <description>mips, bpf: Enable eBPF JITsThis patch enables the new eBPF JITs for 32-bit and 64-bit MIPS. It alsodisables the old cBPF JIT to so cBPF programs are converted to use thenew JIT.Workarounds for R4000 CPU errata are not implemented by the JIT, so theJIT is disabled if any of those workarounds are configured.Signed-off-by: Johan Almbladh &lt;johan.almbladh@anyfinetworks.com&gt;Signed-off-by: Daniel Borkmann &lt;daniel@iogearbox.net&gt;Signed-off-by: Andrii Nakryiko &lt;andrii@kernel.org&gt;Link: https://lore.kernel.org/bpf/20211005165408.2305108-7-johan.almbladh@anyfinetworks.com

            List of files:
            /linux-6.15/arch/mips/net/Makefile</description>
        <pubDate>Tue, 05 Oct 2021 16:54:07 +0000</pubDate>
        <dc:creator>Johan Almbladh &lt;johan.almbladh@anyfinetworks.com&gt;</dc:creator>
    </item>
<item>
        <title>eb63cfcd - mips, bpf: Add eBPF JIT for 32-bit MIPS</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/mips/net/Makefile#eb63cfcd</link>
        <description>mips, bpf: Add eBPF JIT for 32-bit MIPSThis is an implementation of an eBPF JIT for 32-bit MIPS I-V and MIPS32.The implementation supports all 32-bit and 64-bit ALU and JMP operations,including the recently-added atomics. 64-bit div/mod and 64-bit atomicsare implemented using function calls to math64 and atomic64 functions,respectively. All 32-bit operations are implemented natively by the JIT,except if the CPU lacks ll/sc instructions.Register mapping================All 64-bit eBPF registers are mapped to native 32-bit MIPS register pairs,and does not use any stack scratch space for register swapping. This meansthat all eBPF register data is kept in CPU registers all the time, andthis simplifies the register management a lot. It also reduces the JIT&apos;spressure on temporary registers since we do not have to move data around.Native register pairs are ordered according to CPU endiannes, followingthe O32 calling convention for passing 64-bit arguments and return values.The eBPF return value, arguments and callee-saved registers are mapped totheir native MIPS equivalents.Since the 32 highest bits in the eBPF FP (frame pointer) register arealways zero, only one general-purpose register is actually needed for themapping. The MIPS fp register is used for this purpose. The high bits aremapped to MIPS register r0. This saves us one CPU register, which is muchneeded for temporaries, while still allowing us to treat the R10 (FP)register just like any other eBPF register in the JIT.The MIPS gp (global pointer) and at (assembler temporary) registers areused as internal temporary registers for constant blinding. CPU registerst6-t9 are used internally by the JIT when constructing more complex 64-bitoperations. This is precisely what is needed - two registers to store anoperand value, and two more as scratch registers when performing theoperation.The register mapping is shown below.    R0 - $v1, $v0   return value    R1 - $a1, $a0   argument 1, passed in registers    R2 - $a3, $a2   argument 2, passed in registers    R3 - $t1, $t0   argument 3, passed on stack    R4 - $t3, $t2   argument 4, passed on stack    R5 - $t4, $t3   argument 5, passed on stack    R6 - $s1, $s0   callee-saved    R7 - $s3, $s2   callee-saved    R8 - $s5, $s4   callee-saved    R9 - $s7, $s6   callee-saved    FP - $r0, $fp   32-bit frame pointer    AX - $gp, $at   constant-blinding         $t6 - $t9  unallocated, JIT temporariesJump offsets============The JIT tries to map all conditional JMP operations to MIPS conditionalPC-relative branches. The MIPS branch offset field is 18 bits, in bytes,which is equivalent to the eBPF 16-bit instruction offset. However, sincethe JIT may emit more than one CPU instruction per eBPF instruction, thefield width may overflow. If that happens, the JIT converts the longconditional jump to a short PC-relative branch with the conditioninverted, jumping over a long unconditional absolute jmp (j).This conversion will change the instruction offset mapping used for jumps,and may in turn result in more branch offset overflows. The JIT thereforedry-runs the translation until no more branches are converted and theoffsets do not change anymore. There is an upper bound on this of course,and if the JIT hits that limit, the last two iterations are run with allbranches being converted.Tail call count===============The current tail call count is stored in the 16-byte area of the caller&apos;sstack frame that is reserved for the callee in the o32 ABI. The value isinitialized in the prologue, and propagated to the tail-callee by skippingthe initialization instructions when emitting the tail call.Signed-off-by: Johan Almbladh &lt;johan.almbladh@anyfinetworks.com&gt;Signed-off-by: Daniel Borkmann &lt;daniel@iogearbox.net&gt;Signed-off-by: Andrii Nakryiko &lt;andrii@kernel.org&gt;Link: https://lore.kernel.org/bpf/20211005165408.2305108-4-johan.almbladh@anyfinetworks.com

            List of files:
            /linux-6.15/arch/mips/net/Makefile</description>
        <pubDate>Tue, 05 Oct 2021 16:54:04 +0000</pubDate>
        <dc:creator>Johan Almbladh &lt;johan.almbladh@anyfinetworks.com&gt;</dc:creator>
    </item>
<item>
        <title>36366e36 - MIPS: BPF: Restore MIPS32 cBPF JIT</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/mips/net/Makefile#36366e36</link>
        <description>MIPS: BPF: Restore MIPS32 cBPF JITCommit 716850ab104d (&quot;MIPS: eBPF: Initial eBPF support for MIPS32architecture.&quot;) enabled our eBPF JIT for MIPS32 kernels, whereas it haspreviously only been availailable for MIPS64. It was my understanding atthe time that the BPF test suite was passing &amp; JITing a comparablenumber of tests to our cBPF JIT [1], but it turns out that was not thecase.The eBPF JIT has a number of problems on MIPS32:- Most notably various code paths still result in emission of MIPS64  instructions which will cause reserved instruction exceptions &amp; kernel  panics when run on MIPS32 CPUs.- The eBPF JIT doesn&apos;t account for differences between the O32 ABI used  by MIPS32 kernels versus the N64 ABI used by MIPS64 kernels. Notably  arguments beyond the first 4 are passed on the stack in O32, and this  is entirely unhandled when JITing a BPF_CALL instruction. Stack space  must be reserved for arguments even if they all fit in registers, and  the callee is free to assume that stack space has been reserved for  its use - with the eBPF JIT this is not the case, so calling any  function can result in clobbering values on the stack &amp; unpredictable  behaviour. Function arguments in eBPF are always 64-bit values which  is also entirely unhandled - the JIT still uses a single (32-bit)  register per argument. As a result all function arguments are always  passed incorrectly when JITing a BPF_CALL instruction, leading to  kernel crashes or strange behavior.- The JIT attempts to bail our on use of ALU64 instructions or 64-bit  memory access instructions. The code doing this at the start of  build_one_insn() incorrectly checks whether BPF_OP() equals BPF_DW,  when it should really be checking BPF_SIZE() &amp; only doing so when  BPF_CLASS() is one of BPF_{LD,LDX,ST,STX}. This results in false  positives that cause more bailouts than intended, and that in turns  hides some of the problems described above.- The kernel&apos;s cBPF-&gt;eBPF translation makes heavy use of 64-bit eBPF  instructions that the MIPS32 eBPF JIT bails out on, leading to most  cBPF programs not being JITed at all.Until these problems are resolved, revert the removal of the cBPF JITperformed by commit 716850ab104d (&quot;MIPS: eBPF: Initial eBPF support forMIPS32 architecture.&quot;). Together with commit f8fffebdea75 (&quot;MIPS: BPF:Disable MIPS32 eBPF JIT&quot;) this restores MIPS32 BPF JIT behavior back tothe same state it was prior to the introduction of the broken eBPF JITsupport.[1] https://lore.kernel.org/linux-mips/MWHPR2201MB13583388481F01A422CE7D66D4410@MWHPR2201MB1358.namprd22.prod.outlook.com/Signed-off-by: Paul Burton &lt;paulburton@kernel.org&gt;Fixes: 716850ab104d (&quot;MIPS: eBPF: Initial eBPF support for MIPS32 architecture.&quot;)Cc: Daniel Borkmann &lt;daniel@iogearbox.net&gt;Cc: Hassan Naveed &lt;hnaveed@wavecomp.com&gt;Cc: Tony Ambardar &lt;itugrok@yahoo.com&gt;Cc: bpf@vger.kernel.orgCc: netdev@vger.kernel.orgCc: linux-mips@vger.kernel.orgCc: linux-kernel@vger.kernel.org

            List of files:
            /linux-6.15/arch/mips/net/Makefile</description>
        <pubDate>Thu, 05 Dec 2019 18:23:18 +0000</pubDate>
        <dc:creator>Paul Burton &lt;paulburton@kernel.org&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/mips/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/mips/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>716850ab - MIPS: eBPF: Initial eBPF support for MIPS32 architecture.</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/mips/net/Makefile#716850ab</link>
        <description>MIPS: eBPF: Initial eBPF support for MIPS32 architecture.Currently MIPS32 supports a JIT for classic BPF only, not extended BPF.This patch adds JIT support for extended BPF on MIPS32, so code isactually JIT&apos;ed instead of being only interpreted. Instructions with64-bit operands are not supported at this point.We can delete classic BPF because the kernel will translate classic BPFprograms into extended BPF and JIT them, eliminating the need forclassic BPF.Signed-off-by: Hassan Naveed &lt;hnaveed@wavecomp.com&gt;Signed-off-by: Paul Burton &lt;paul.burton@mips.com&gt;Cc: kafai@fb.comCc: songliubraving@fb.comCc: yhs@fb.comCc: netdev@vger.kernel.orgCc: bpf@vger.kernel.orgCc: linux-mips@vger.kernel.orgCc: Ralf Baechle &lt;ralf@linux-mips.org&gt;Cc: James Hogan &lt;jhogan@kernel.org&gt;Cc: Alexei Starovoitov &lt;ast@kernel.org&gt;Cc: Daniel Borkmann &lt;daniel@iogearbox.net&gt;Cc: open list:MIPS &lt;linux-mips@linux-mips.org&gt;Cc: open list &lt;linux-kernel@vger.kernel.org&gt;

            List of files:
            /linux-6.15/arch/mips/net/Makefile</description>
        <pubDate>Tue, 12 Mar 2019 22:48:12 +0000</pubDate>
        <dc:creator>Hassan Naveed &lt;hnaveed@wavecomp.com&gt;</dc:creator>
    </item>
<item>
        <title>f381bf6d - MIPS: Add support for eBPF JIT.</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/mips/net/Makefile#f381bf6d</link>
        <description>MIPS: Add support for eBPF JIT.Since the eBPF machine has 64-bit registers, we only support this in64-bit kernels.  As of the writing of this commit log test-bpf is showing:  test_bpf: Summary: 316 PASSED, 0 FAILED, [308/308 JIT&apos;ed]All current test cases are successfully compiled.Many examples in samples/bpf are usable, specifically tracex5 whichuses tail calls works.Signed-off-by: David Daney &lt;david.daney@cavium.com&gt;Cc: Alexei Starovoitov &lt;ast@kernel.org&gt;Cc: Daniel Borkmann &lt;daniel@iogearbox.net&gt;Cc: Markos Chandras &lt;markos.chandras@imgtec.com&gt;Cc: Matt Redfearn &lt;matt.redfearn@imgtec.com&gt;Cc: netdev@vger.kernel.orgCc: linux-kernel@vger.kernel.orgCc: linux-mips@linux-mips.orgPatchwork: https://patchwork.linux-mips.org/patch/16369/Signed-off-by: Ralf Baechle &lt;ralf@linux-mips.org&gt;

            List of files:
            /linux-6.15/arch/mips/net/Makefile</description>
        <pubDate>Tue, 13 Jun 2017 22:28:46 +0000</pubDate>
        <dc:creator>David Daney &lt;david.daney@cavium.com&gt;</dc:creator>
    </item>
<item>
        <title>266a88e2 - MIPS: BPF: Introduce BPF ASM helpers</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/mips/net/Makefile#266a88e2</link>
        <description>MIPS: BPF: Introduce BPF ASM helpersThis commit introduces BPF ASM helpers for MIPS and MIPS64 kernels.The purpose of this patch is to twofold:1) We are now able to handle negative offsets instead of eitherfalling back to the interpreter or to simply not do anything andbail out.2) Optimize reads from the packet header instead of calling the ChelpersBecause of this patch, we are now able to get rid of quite a bit ofcode in the JIT generation process by using MIPS optimized assemblycode. The new assembly code makes the test_bpf testsuite happy withall 60 test passing successfully compared to the previousimplementation where 2 tests were failing.Doing some basic analysis in the results between the oldimplementation and the new one we can obtain the followingsummary running current mainline on an ER8 board (+/- 30us delta isignored to prevent noise from kernel scheduling or IRQ latencies):Summary: 22 tests are faster, 7 are slower and 47 saw no improvementwith the most notable improvement being the tcpdump tests. The 7 teststhat seem to be a bit slower is because they all follow the slow path(bpf_internal_load_pointer_neg_helper) which is meant to be slow sothat&apos;s not a problem.Signed-off-by: Markos Chandras &lt;markos.chandras@imgtec.com&gt;Cc: netdev@vger.kernel.orgCc: &quot;David S. Miller&quot; &lt;davem@davemloft.net&gt;Cc: Alexei Starovoitov &lt;ast@plumgrid.com&gt;Cc: Daniel Borkmann &lt;dborkman@redhat.com&gt;Cc: Hannes Frederic Sowa &lt;hannes@stressinduktion.org&gt;Cc: linux-kernel@vger.kernel.orgCc: linux-mips@linux-mips.orgCc: netdev@vger.kernel.orgPatchwork: http://patchwork.linux-mips.org/patch/10530/Signed-off-by: Ralf Baechle &lt;ralf@linux-mips.org&gt;

            List of files:
            /linux-6.15/arch/mips/net/Makefile</description>
        <pubDate>Thu, 04 Jun 2015 10:56:16 +0000</pubDate>
        <dc:creator>Markos Chandras &lt;markos.chandras@imgtec.com&gt;</dc:creator>
    </item>
<item>
        <title>c6610de3 - MIPS: net: Add BPF JIT</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/mips/net/Makefile#c6610de3</link>
        <description>MIPS: net: Add BPF JITThis adds initial support for BPF-JIT on MIPSTested on mips32 LE/BE and mips64 BE/n64 usingdhcp, ping and various tcpdump filters.Benchmarking:Assuming the remote MIPS target uses 192.168.154.181as its IP address, and the local host uses 192.168.154.136,the following results can be obtained using the followingtcpdump filter (catches no frames) and a simple&apos;time ping -f -c 1000000&apos; command.[root@(none) ~]# tcpdump -p -n -s 0 -i eth0 net 10.0.0.0/24 -d(000) ldh      [12](001) jeq      #0x800           jt 2	jf 8(002) ld       [26](003) and      #0xffffff00(004) jeq      #0xa000000       jt 16	jf 5(005) ld       [30](006) and      #0xffffff00(007) jeq      #0xa000000       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      #0xa000000       jt 16	jf 13(013) ld       [38](014) and      #0xffffff00(015) jeq      #0xa000000       jt 16	jf 17(016) ret      #65535- BPF-JIT Disabledreal    1m38.005suser    0m1.510ssys     0m6.710s- BPF-JIT Enabledreal    1m35.215suser    0m1.200ssys     0m4.140s[ralf@linux-mips.org: Resolved conflict.]Signed-off-by: Markos Chandras &lt;markos.chandras@imgtec.com&gt;

            List of files:
            /linux-6.15/arch/mips/net/Makefile</description>
        <pubDate>Tue, 08 Apr 2014 11:47:14 +0000</pubDate>
        <dc:creator>Markos Chandras &lt;markos.chandras@imgtec.com&gt;</dc:creator>
    </item>
</channel>
</rss>
