<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/source/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>03ab8e6297acd1bc0eedaa050e2a1635c576fd11 - Merge tag &apos;v5.18&apos;</title>
        <link>http://kernelsources.org:8080/source/history/linux/arch/mips/net/Makefile#03ab8e6297acd1bc0eedaa050e2a1635c576fd11</link>
        <description>Merge tag &apos;v5.18&apos;Linux 5.18

            List of files:
            /linux/arch/mips/net/Makefile</description>
        <pubDate>Tue, 31 May 2022 15:13:23 +0200</pubDate>
        <dc:creator>Konstantin Komarov &lt;almaz.alexandrovich@paragon-software.com&gt;</dc:creator>
    </item>
<item>
        <title>1136fa0c07de570dc17858745af8be169d1440ba - Merge tag &apos;v5.17-rc4&apos; into for-linus</title>
        <link>http://kernelsources.org:8080/source/history/linux/arch/mips/net/Makefile#1136fa0c07de570dc17858745af8be169d1440ba</link>
        <description>Merge tag &apos;v5.17-rc4&apos; into for-linusMerge with mainline to get the Intel ASoC generic helpers header andother changes.

            List of files:
            /linux/arch/mips/net/Makefile</description>
        <pubDate>Tue, 01 Mar 2022 08:12:55 +0100</pubDate>
        <dc:creator>Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>87a0b2fafc09766d8c55461a18345a1cfb10a7fe - Merge tag &apos;v5.16&apos; into next</title>
        <link>http://kernelsources.org:8080/source/history/linux/arch/mips/net/Makefile#87a0b2fafc09766d8c55461a18345a1cfb10a7fe</link>
        <description>Merge tag &apos;v5.16&apos; into nextSync up with mainline to bring in the latest API changes.

            List of files:
            /linux/arch/mips/net/Makefile</description>
        <pubDate>Tue, 18 Jan 2022 03:03:39 +0100</pubDate>
        <dc:creator>Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>f81483aaeb59da530b286fe5d081e1705eb5c886 - Merge branch &apos;for-next&apos; into for-linus</title>
        <link>http://kernelsources.org:8080/source/history/linux/arch/mips/net/Makefile#f81483aaeb59da530b286fe5d081e1705eb5c886</link>
        <description>Merge branch &apos;for-next&apos; into for-linusPull 5.17 materials.Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;

            List of files:
            /linux/arch/mips/net/Makefile</description>
        <pubDate>Wed, 05 Jan 2022 15:38:11 +0100</pubDate>
        <dc:creator>Takashi Iwai &lt;tiwai@suse.de&gt;</dc:creator>
    </item>
<item>
        <title>1758047057dbe329be712a31b79db7151b5871f8 - Merge drm/drm-next into drm-misc-next-fixes</title>
        <link>http://kernelsources.org:8080/source/history/linux/arch/mips/net/Makefile#1758047057dbe329be712a31b79db7151b5871f8</link>
        <description>Merge drm/drm-next into drm-misc-next-fixesBackmerging to bring drm-misc-next-fixes up to the latest state forthe current release cycle.Signed-off-by: Thomas Zimmermann &lt;tzimmermann@suse.de&gt;

            List of files:
            /linux/arch/mips/net/Makefile</description>
        <pubDate>Fri, 17 Dec 2021 11:33:33 +0100</pubDate>
        <dc:creator>Thomas Zimmermann &lt;tzimmermann@suse.de&gt;</dc:creator>
    </item>
<item>
        <title>8632987380765dee716d460640aa58d58d52998e - Merge branch &apos;reset/of-get-optional-exclusive&apos; of git://git.pengutronix.de/pza/linux into timers/drivers/next</title>
        <link>http://kernelsources.org:8080/source/history/linux/arch/mips/net/Makefile#8632987380765dee716d460640aa58d58d52998e</link>
        <description>Merge branch &apos;reset/of-get-optional-exclusive&apos; of git://git.pengutronix.de/pza/linux into timers/drivers/next&quot;Add optional variant of of_reset_control_get_exclusive(). If therequested reset is not specified in the device tree, this functionreturns NULL instead of an error.&quot;This dependency is needed for the Generic Timer Module (a.k.a OSTM)support for RZ/G2L.Signed-off-by: Daniel Lezcano &lt;daniel.lezcano@linaro.org&gt;

            List of files:
            /linux/arch/mips/net/Makefile</description>
        <pubDate>Thu, 09 Dec 2021 13:57:57 +0100</pubDate>
        <dc:creator>Daniel Lezcano &lt;daniel.lezcano@linaro.org&gt;</dc:creator>
    </item>
<item>
        <title>448cc2fb3a7b327823a9afd374808c37b8e6194f - Merge drm/drm-next into drm-intel-next</title>
        <link>http://kernelsources.org:8080/source/history/linux/arch/mips/net/Makefile#448cc2fb3a7b327823a9afd374808c37b8e6194f</link>
        <description>Merge drm/drm-next into drm-intel-nextSync up with drm-next to get v5.16-rc2.Signed-off-by: Jani Nikula &lt;jani.nikula@intel.com&gt;

            List of files:
            /linux/arch/mips/net/Makefile</description>
        <pubDate>Mon, 22 Nov 2021 16:35:32 +0100</pubDate>
        <dc:creator>Jani Nikula &lt;jani.nikula@intel.com&gt;</dc:creator>
    </item>
<item>
        <title>8626afb170dc44ed0512e04131e4d8eac0c5ec57 - Merge drm/drm-next into drm-intel-gt-next</title>
        <link>http://kernelsources.org:8080/source/history/linux/arch/mips/net/Makefile#8626afb170dc44ed0512e04131e4d8eac0c5ec57</link>
        <description>Merge drm/drm-next into drm-intel-gt-nextThomas needs the dma_resv_for_each_fence API for i915/ttm async migrationwork.Signed-off-by: Tvrtko Ursulin &lt;tvrtko.ursulin@intel.com&gt;

            List of files:
            /linux/arch/mips/net/Makefile</description>
        <pubDate>Mon, 22 Nov 2021 13:18:15 +0100</pubDate>
        <dc:creator>Tvrtko Ursulin &lt;tvrtko.ursulin@intel.com&gt;</dc:creator>
    </item>
<item>
        <title>a713ca234ea9d946235ac7248995c5fddfd9e523 - Merge drm/drm-next into drm-misc-next</title>
        <link>http://kernelsources.org:8080/source/history/linux/arch/mips/net/Makefile#a713ca234ea9d946235ac7248995c5fddfd9e523</link>
        <description>Merge drm/drm-next into drm-misc-nextBackmerging from drm/drm-next for v5.16-rc1.Signed-off-by: Thomas Zimmermann &lt;tzimmermann@suse.de&gt;

            List of files:
            /linux/arch/mips/net/Makefile</description>
        <pubDate>Thu, 18 Nov 2021 09:36:39 +0100</pubDate>
        <dc:creator>Thomas Zimmermann &lt;tzimmermann@suse.de&gt;</dc:creator>
    </item>
<item>
        <title>467dd91e2f783d34b2205751bdf88bcdcac55984 - Merge drm/drm-fixes into drm-misc-fixes</title>
        <link>http://kernelsources.org:8080/source/history/linux/arch/mips/net/Makefile#467dd91e2f783d34b2205751bdf88bcdcac55984</link>
        <description>Merge drm/drm-fixes into drm-misc-fixesWe need -rc1 to address a breakage in drm/scheduler affecting panfrost.Signed-off-by: Maxime Ripard &lt;maxime@cerno.tech&gt;

            List of files:
            /linux/arch/mips/net/Makefile</description>
        <pubDate>Tue, 16 Nov 2021 08:51:39 +0100</pubDate>
        <dc:creator>Maxime Ripard &lt;maxime@cerno.tech&gt;</dc:creator>
    </item>
<item>
        <title>7f9f879243d6cf5d2d60d12065e93189cc343387 - Merge remote-tracking branch &apos;torvalds/master&apos; into perf/core</title>
        <link>http://kernelsources.org:8080/source/history/linux/arch/mips/net/Makefile#7f9f879243d6cf5d2d60d12065e93189cc343387</link>
        <description>Merge remote-tracking branch &apos;torvalds/master&apos; into perf/coreTo pick up some tools/perf/ patches that went via tip/perf/core, suchas:  tools/perf: Add mem_hops field in perf_mem_data_src structureSigned-off-by: Arnaldo Carvalho de Melo &lt;acme@redhat.com&gt;

            List of files:
            /linux/arch/mips/net/Makefile</description>
        <pubDate>Sat, 06 Nov 2021 19:49:33 +0100</pubDate>
        <dc:creator>Arnaldo Carvalho de Melo &lt;acme@redhat.com&gt;</dc:creator>
    </item>
<item>
        <title>fc02cb2b37fe2cbf1d3334b9f0f0eab9431766c4 - Merge tag &apos;net-next-for-5.16&apos; of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next</title>
        <link>http://kernelsources.org:8080/source/history/linux/arch/mips/net/Makefile#fc02cb2b37fe2cbf1d3334b9f0f0eab9431766c4</link>
        <description>Merge tag &apos;net-next-for-5.16&apos; of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-nextPull networking updates from Jakub Kicinski: &quot;Core:   - Remove socket skb caches   - Add a SO_RESERVE_MEM socket op to forward allocate buffer space and     avoid memory accounting overhead on each message sent   - Introduce managed neighbor entries - added by control plane and     resolved by the kernel for use in acceleration paths (BPF / XDP     right now, HW offload users will benefit as well)   - Make neighbor eviction on link down controllable by userspace to     work around WiFi networks with bad roaming implementations   - vrf: Rework interaction with netfilter/conntrack   - fq_codel: implement L4S style ce_threshold_ect1 marking   - sch: Eliminate unnecessary RCU waits in mini_qdisc_pair_swap()  BPF:   - Add support for new btf kind BTF_KIND_TAG, arbitrary type tagging     as implemented in LLVM14   - Introduce bpf_get_branch_snapshot() to capture Last Branch Records   - Implement variadic trace_printk helper   - Add a new Bloomfilter map type   - Track &lt;8-byte scalar spill and refill   - Access hw timestamp through BPF&apos;s __sk_buff   - Disallow unprivileged BPF by default   - Document BPF licensing  Netfilter:   - Introduce egress hook for looking at raw outgoing packets   - Allow matching on and modifying inner headers / payload data   - Add NFT_META_IFTYPE to match on the interface type either from     ingress or egress  Protocols:   - Multi-Path TCP:      - increase default max additional subflows to 2      - rework forward memory allocation      - add getsockopts: MPTCP_INFO, MPTCP_TCPINFO, MPTCP_SUBFLOW_ADDRS   - MCTP flow support allowing lower layer drivers to configure msg     muxing as needed   - Automatic Multicast Tunneling (AMT) driver based on RFC7450   - HSR support the redbox supervision frames (IEC-62439-3:2018)   - Support for the ip6ip6 encapsulation of IOAM   - Netlink interface for CAN-FD&apos;s Transmitter Delay Compensation   - Support SMC-Rv2 eliminating the current same-subnet restriction, by     exploiting the UDP encapsulation feature of RoCE adapters   - TLS: add SM4 GCM/CCM crypto support   - Bluetooth: initial support for link quality and audio/codec offload  Driver APIs:   - Add a batched interface for RX buffer allocation in AF_XDP buffer     pool   - ethtool: Add ability to control transceiver modules&apos; power mode   - phy: Introduce supported interfaces bitmap to express MAC     capabilities and simplify PHY code   - Drop rtnl_lock from DSA .port_fdb_{add,del} callbacks  New drivers:   - WiFi driver for Realtek 8852AE 802.11ax devices (rtw89)   - Ethernet driver for ASIX AX88796C SPI device (x88796c)  Drivers:   - Broadcom PHYs      - support 72165, 7712 16nm PHYs      - support IDDQ-SR for additional power savings   - PHY support for QCA8081, QCA9561 PHYs   - NXP DPAA2: support for IRQ coalescing   - NXP Ethernet (enetc): support for software TCP segmentation   - Renesas Ethernet (ravb) - support DMAC and EMAC blocks of     Gigabit-capable IP found on RZ/G2L SoC   - Intel 100G Ethernet      - support for eswitch offload of TC/OvS flow API, including        offload of GRE, VxLAN, Geneve tunneling      - support application device queues - ability to assign Rx and Tx        queues to application threads      - PTP and PPS (pulse-per-second) extensions   - Broadcom Ethernet (bnxt)      - devlink health reporting and device reload extensions   - Mellanox Ethernet (mlx5)      - offload macvlan interfaces      - support HW offload of TC rules involving OVS internal ports      - support HW-GRO and header/data split      - support application device queues   - Marvell OcteonTx2:      - add XDP support for PF      - add PTP support for VF   - Qualcomm Ethernet switch (qca8k): support for QCA8328   - Realtek Ethernet DSA switch (rtl8366rb)      - support bridge offload      - support STP, fast aging, disabling address learning      - support for Realtek RTL8365MB-VC, a 4+1 port 10M/100M/1GE switch   - Mellanox Ethernet/IB switch (mlxsw)      - multi-level qdisc hierarchy offload (e.g. RED, prio and shaping)      - offload root TBF qdisc as port shaper      - support multiple routing interface MAC address prefixes      - support for IP-in-IP with IPv6 underlay   - MediaTek WiFi (mt76)      - mt7921 - ASPM, 6GHz, SDIO and testmode support      - mt7915 - LED and TWT support   - Qualcomm WiFi (ath11k)      - include channel rx and tx time in survey dump statistics      - support for 80P80 and 160 MHz bandwidths      - support channel 2 in 6 GHz band      - spectral scan support for QCN9074      - support for rx decapsulation offload (data frames in 802.3        format)   - Qualcomm phone SoC WiFi (wcn36xx)      - enable Idle Mode Power Save (IMPS) to reduce power consumption        during idle   - Bluetooth driver support for MediaTek MT7922 and MT7921   - Enable support for AOSP Bluetooth extension in Qualcomm WCN399x and     Realtek 8822C/8852A   - Microsoft vNIC driver (mana)      - support hibernation and kexec   - Google vNIC driver (gve)      - support for jumbo frames      - implement Rx page reuse  Refactor:   - Make all writes to netdev-&gt;dev_addr go thru helpers, so that we can     add this address to the address rbtree and handle the updates   - Various TCP cleanups and optimizations including improvements to     CPU cache use   - Simplify the gnet_stats, Qdisc stats&apos; handling and remove     qdisc-&gt;running sequence counter   - Driver changes and API updates to address devlink locking     deficiencies&quot;* tag &apos;net-next-for-5.16&apos; of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next: (2122 commits)  Revert &quot;net: avoid double accounting for pure zerocopy skbs&quot;  selftests: net: add arp_ndisc_evict_nocarrier  net: ndisc: introduce ndisc_evict_nocarrier sysctl parameter  net: arp: introduce arp_evict_nocarrier sysctl parameter  libbpf: Deprecate AF_XDP support  kbuild: Unify options for BTF generation for vmlinux and modules  selftests/bpf: Add a testcase for 64-bit bounds propagation issue.  bpf: Fix propagation of signed bounds from 64-bit min/max into 32-bit.  bpf: Fix propagation of bounds from 64-bit min/max into 32-bit and var_off.  net: vmxnet3: remove multiple false checks in vmxnet3_ethtool.c  net: avoid double accounting for pure zerocopy skbs  tcp: rename sk_wmem_free_skb  netdevsim: fix uninit value in nsim_drv_configure_vfs()  selftests/bpf: Fix also no-alu32 strobemeta selftest  bpf: Add missing map_delete_elem method to bloom filter map  selftests/bpf: Add bloom map success test for userspace calls  bpf: Add alignment padding for &quot;map_extra&quot; + consolidate holes  bpf: Bloom filter map naming fixups  selftests/bpf: Add test cases for struct_ops prog  bpf: Add dummy BPF STRUCT_OPS for test purpose  ...

            List of files:
            /linux/arch/mips/net/Makefile</description>
        <pubDate>Tue, 02 Nov 2021 14:20:58 +0100</pubDate>
        <dc:creator>Linus Torvalds &lt;torvalds@linux-foundation.org&gt;</dc:creator>
    </item>
<item>
        <title>b7b98f868987cd3e86c9bd9a6db048614933d7a0 - Merge https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next</title>
        <link>http://kernelsources.org:8080/source/history/linux/arch/mips/net/Makefile#b7b98f868987cd3e86c9bd9a6db048614933d7a0</link>
        <description>Merge https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-nextAlexei Starovoitov says:====================pull-request: bpf-next 2021-11-01We&apos;ve added 181 non-merge commits during the last 28 day(s) which containa total of 280 files changed, 11791 insertions(+), 5879 deletions(-).The main changes are:1) Fix bpf verifier propagation of 64-bit bounds, from Alexei.2) Parallelize bpf test_progs, from Yucong and Andrii.3) Deprecate various libbpf apis including af_xdp, from Andrii, Hengqi, Magnus.4) Improve bpf selftests on s390, from Ilya.5) bloomfilter bpf map type, from Joanne.6) Big improvements to JIT tests especially on Mips, from Johan.7) Support kernel module function calls from bpf, from Kumar.8) Support typeless and weak ksym in light skeleton, from Kumar.9) Disallow unprivileged bpf by default, from Pawan.10) BTF_KIND_DECL_TAG support, from Yonghong.11) Various bpftool cleanups, from Quentin.* https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next: (181 commits)  libbpf: Deprecate AF_XDP support  kbuild: Unify options for BTF generation for vmlinux and modules  selftests/bpf: Add a testcase for 64-bit bounds propagation issue.  bpf: Fix propagation of signed bounds from 64-bit min/max into 32-bit.  bpf: Fix propagation of bounds from 64-bit min/max into 32-bit and var_off.  selftests/bpf: Fix also no-alu32 strobemeta selftest  bpf: Add missing map_delete_elem method to bloom filter map  selftests/bpf: Add bloom map success test for userspace calls  bpf: Add alignment padding for &quot;map_extra&quot; + consolidate holes  bpf: Bloom filter map naming fixups  selftests/bpf: Add test cases for struct_ops prog  bpf: Add dummy BPF STRUCT_OPS for test purpose  bpf: Factor out helpers for ctx access checking  bpf: Factor out a helper to prepare trampoline for struct_ops prog  selftests, bpf: Fix broken riscv build  riscv, libbpf: Add RISC-V (RV64) support to bpf_tracing.h  tools, build: Add RISC-V to HOSTARCH parsing  riscv, bpf: Increase the maximum number of iterations  selftests, bpf: Add one test for sockmap with strparser  selftests, bpf: Fix test_txmsg_ingress_parser error  ...====================Link: https://lore.kernel.org/r/20211102013123.9005-1-alexei.starovoitov@gmail.comSigned-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;

            List of files:
            /linux/arch/mips/net/Makefile</description>
        <pubDate>Tue, 02 Nov 2021 03:59:45 +0100</pubDate>
        <dc:creator>Jakub Kicinski &lt;kuba@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>307d149d9435e5514268d6020d430245813d82cc - bpf, mips: Clean up config options about JIT</title>
        <link>http://kernelsources.org:8080/source/history/linux/arch/mips/net/Makefile#307d149d9435e5514268d6020d430245813d82cc</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/arch/mips/net/Makefile</description>
        <pubDate>Mon, 11 Oct 2021 03:19:09 +0200</pubDate>
        <dc:creator>Tiezhu Yang &lt;yangtiezhu@loongson.cn&gt;</dc:creator>
    </item>
<item>
        <title>e5c15a363de6f87d5aff9a2674f77c49f70a9ca2 - mips, bpf: Fix Makefile that referenced a removed file</title>
        <link>http://kernelsources.org:8080/source/history/linux/arch/mips/net/Makefile#e5c15a363de6f87d5aff9a2674f77c49f70a9ca2</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/arch/mips/net/Makefile</description>
        <pubDate>Thu, 07 Oct 2021 16:23:39 +0200</pubDate>
        <dc:creator>Johan Almbladh &lt;johan.almbladh@anyfinetworks.com&gt;</dc:creator>
    </item>
<item>
        <title>f438ee21ef21f9fa4e7745e9a4a6dd8a6422c7e2 - Merge branch &apos;bpf-mips-jit&apos;</title>
        <link>http://kernelsources.org:8080/source/history/linux/arch/mips/net/Makefile#f438ee21ef21f9fa4e7745e9a4a6dd8a6422c7e2</link>
        <description>Merge branch &apos;bpf-mips-jit&apos;Johan Almbladh says:====================This is an implementation of an eBPF JIT for MIPS I-V and MIPS32/64 r1-r6.The new JIT is written from scratch, but uses the same overall structureas other eBPF JITs.Before, the MIPS JIT situation looked like this.  - 32-bit: MIPS32, cBPF-only, tests fail  - 64-bit: MIPS64r2-r6, eBPF, tests fail, incomplete eBPF ISA supportThe new JIT implementation raises the bar to the following level.  - 32/64-bit: all MIPS ISA, eBPF, all tests pass, full eBPF ISA supportOverview--------The implementation supports all 32-bit and 64-bit eBPF instructionsdefined as of this writing, including the recently-added atomics. It isintended to provide good performance for native word size operations,while also being complete so the JIT never has to fall back to theinterpreter. The new JIT replaces the current cBPF and eBPF JITs for MIPS.The implementation is divided into separate files as follows. The sourcefiles contains comments describing internal mechanisms and details onthings like eBPF-to-CPU register mappings, so I won&apos;t repeat that here.  - jit_comp.[ch]    code shared between 32-bit and 64-bit JITs  - jit_comp32.c     32-bit JIT implementation  - jit_comp64.c     64-bit JIT implementationBoth the 32-bit and 64-bit versions map all eBPF registers to native MIPSCPU registers. There are also enough unmapped CPU registers available toallow all eBPF operations implemented natively by the JIT to use only CPUregisters without having to resort to stack scratch space.Some operations are deemed too complex to implement natively in the JIT.Those are instead implemented as a function call to a helper that performsthe operation. This is done in the following cases.  - 64-bit div and mod on a 32-bit CPU  - 64-bit atomics on a 32-bit CPU  - 32-bit atomics on a 32-bit CPU that lacks ll/sc instructionsCPU errata workarounds----------------------The JIT implements workarounds for R10000, Loongson-2F and Loongson-3 CPUerrata. For the Loongson workarounds, I have used the public informationavailable on the matter.Link: https://sourceware.org/legacy-ml/binutils/2009-11/msg00387.htmlTesting-------During the development of the JIT, I have added a number of new test casesto the test_bpf.ko test suite to be able to verify correctness of JITimplementations in a more systematic way. The new additions increase thetest suite roughly three-fold, with many of the new tests being veryextensive and even exhaustive when feasible.Link: https://lore.kernel.org/bpf/20211001130348.3670534-1-johan.almbladh@anyfinetworks.com/Link: https://lore.kernel.org/bpf/20210914091842.4186267-1-johan.almbladh@anyfinetworks.com/Link: https://lore.kernel.org/bpf/20210809091829.810076-1-johan.almbladh@anyfinetworks.com/The JIT has been tested by running the test_bpf.ko test suite in QEMU withthe following MIPS ISAs, in both big and little endian mode, with andwithout JIT hardening enabled.  MIPS32r2, MIPS32r6, MIPS64r2, MIPS64r6For the QEMU r2 targets, the correctness of pre-r2 code emitted has beentested by manually overriding each of the following macros with 0.  cpu_has_llsc, cpu_has_mips_2, cpu_has_mips_r1, cpu_has_mips_r2Similarly, CPU errata workaround code has been tested by enabling theeach of the following configurations for the MIPS64r2 targets.  CONFIG_WAR_R10000  CONFIG_CPU_LOONGSON3_WORKAROUNDS  CONFIG_CPU_NOP_WORKAROUNDS  CONFIG_CPU_JUMP_WORKAROUNDSThe JIT passes all tests in all configurations. Below is the summary forMIPS32r2 in little endian mode.  test_bpf: Summary: 1006 PASSED, 0 FAILED, [994/994 JIT&apos;ed]  test_bpf: test_tail_calls: Summary: 8 PASSED, 0 FAILED, [8/8 JIT&apos;ed]  test_bpf: test_skb_segment: Summary: 2 PASSED, 0 FAILEDAccording to MIPS ISA reference documentation, the result of a 32-bit ALUarithmetic operation on a 64-bit CPU is unpredictable if an operandregister value is not properly sign-extended to 64 bits. To verify thecode emitted by the JIT, the code generation engine in QEMU was modifed toflip all low 32 bits if the above condition was not met. With thistrip-wire installed, the kernel booted properly in qemu-system-mips64eland all test_bpf.ko tests passed.Remaining features------------------While the JIT is complete is terms of eBPF ISA support, this series doesnot include support for BPF-to-BPF calls and BPF trampolines. Thosefeatures are planned to be added in another patch series.The BPF_ST | BPF_NOSPEC instruction currently emits nothing. This isconsistent with the behavior if the MIPS interpreter and the existingeBPF JIT.Why not build on the existing eBPF JIT?---------------------------------------The existing eBPF JIT was originally written for MIPS64. An effort wasmade to add MIPS32 support to it in commit 716850ab104d (&quot;MIPS: eBPF:Initial eBPF support for MIPS32 architecture.&quot;). That turned out tocontain a number of flaws, so eBPF support for MIPS32 was disabled incommit 36366e367ee9 (&quot;MIPS: BPF: Restore MIPS32 cBPF JIT&quot;).Link: https://lore.kernel.org/bpf/5deaa994.1c69fb81.97561.647e@mx.google.com/The current eBPF JIT for MIPS64 lacks a lot of functionality regardingALU32, JMP32 and atomic operations. It also lacks 32-bit CPU support on afundamental level, for example 32-bit CPU register mappings and o32 ABIcalling conventions. For optimization purposes, it tracks register usagethrough the program control flow in order to do zero-extension and sign-extension only when necessary, a static analysis of sorts. In my opinion,having this kind of complexity in JITs, and for which there is notadequate test coverage, is a problem. Such analysis should be done by theverifier, if needed at all. Finally, when I run the BPF test suitetest_bpf.ko on the current JIT, there are errors and warnings.I believe that an eBPF JIT should strive to be correct, complete andoptimized, and in that order. The JIT runs after the verifer has auditedthe program and given its approval. If the JIT then emits code that doessomething else, it will undermine the eBPF security model. A simpleimplementation is easier to get correct than a complex one. Furthermore,the real performance hit is not an extra CPU instruction here and there,but when the JIT bails on an unimplemented eBPF instruction and cause thewhole program to fall back to the interpreter. My reasoning here boilsdown to the following.* The JIT should not contain a static analyzer that tracks branches.* It is acceptable to emit possibly superfluous sign-/zero-extensions for  ALU32 and JMP32 operations on a 64-bit MIPS to guarantee correctness.* The JIT should handle all eBPF instructions on all MIPS CPUs.I conclude that the current eBPF MIPS JIT is complex, incomplete andincorrect. For the reasons stated above, I decided to not use the existingJIT implementation.====================Signed-off-by: Daniel Borkmann &lt;daniel@iogearbox.net&gt;Signed-off-by: Andrii Nakryiko &lt;andrii@kernel.org&gt;

            List of files:
            /linux/arch/mips/net/Makefile</description>
        <pubDate>Wed, 06 Oct 2021 15:52:24 +0200</pubDate>
        <dc:creator>Daniel Borkmann &lt;daniel@iogearbox.net&gt;</dc:creator>
    </item>
<item>
        <title>01bdc58e94b46b88d4921f46f423bdeb8b137f28 - mips, bpf: Enable eBPF JITs</title>
        <link>http://kernelsources.org:8080/source/history/linux/arch/mips/net/Makefile#01bdc58e94b46b88d4921f46f423bdeb8b137f28</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/arch/mips/net/Makefile</description>
        <pubDate>Tue, 05 Oct 2021 18:54:07 +0200</pubDate>
        <dc:creator>Johan Almbladh &lt;johan.almbladh@anyfinetworks.com&gt;</dc:creator>
    </item>
<item>
        <title>eb63cfcd2ee8ec3805f6881f43341f589c3d2278 - mips, bpf: Add eBPF JIT for 32-bit MIPS</title>
        <link>http://kernelsources.org:8080/source/history/linux/arch/mips/net/Makefile#eb63cfcd2ee8ec3805f6881f43341f589c3d2278</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/arch/mips/net/Makefile</description>
        <pubDate>Tue, 05 Oct 2021 18:54:04 +0200</pubDate>
        <dc:creator>Johan Almbladh &lt;johan.almbladh@anyfinetworks.com&gt;</dc:creator>
    </item>
<item>
        <title>8dd06ef34b6e2f41b29fbf5fc1663780f2524285 - Merge branch &apos;next&apos; into for-linus</title>
        <link>http://kernelsources.org:8080/source/history/linux/arch/mips/net/Makefile#8dd06ef34b6e2f41b29fbf5fc1663780f2524285</link>
        <description>Merge branch &apos;next&apos; into for-linusPrepare input updates for 5.8 merge window.

            List of files:
            /linux/arch/mips/net/Makefile</description>
        <pubDate>Sat, 06 Jun 2020 19:45:37 +0200</pubDate>
        <dc:creator>Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>d053cf0d771f6547cb0537759a9af63cf402908d - Merge branch &apos;for-5.8&apos; into for-linus</title>
        <link>http://kernelsources.org:8080/source/history/linux/arch/mips/net/Makefile#d053cf0d771f6547cb0537759a9af63cf402908d</link>
        <description>Merge branch &apos;for-5.8&apos; into for-linus

            List of files:
            /linux/arch/mips/net/Makefile</description>
        <pubDate>Mon, 01 Jun 2020 10:15:16 +0200</pubDate>
        <dc:creator>Petr Mladek &lt;pmladek@suse.com&gt;</dc:creator>
    </item>
</channel>
</rss>
