<?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 atomic_xor.c</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>d0034a7a4ac7fae708146ac0059b9c47a1543f0d - Merge branch &apos;next&apos; into for-linus</title>
        <link>http://kernelsources.org:8080/source/history/linux/tools/testing/selftests/bpf/verifier/atomic_xor.c#d0034a7a4ac7fae708146ac0059b9c47a1543f0d</link>
        <description>Merge branch &apos;next&apos; into for-linusPrepare input updates for 5.13 merge window.

            List of files:
            /linux/tools/testing/selftests/bpf/verifier/atomic_xor.c</description>
        <pubDate>Tue, 04 May 2021 20:46:00 +0200</pubDate>
        <dc:creator>Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>b7f8f259896f669f131713b0c74ba4d008daa71d - Merge tag &apos;v5.12-rc7&apos; into ecryptfs/next</title>
        <link>http://kernelsources.org:8080/source/history/linux/tools/testing/selftests/bpf/verifier/atomic_xor.c#b7f8f259896f669f131713b0c74ba4d008daa71d</link>
        <description>Merge tag &apos;v5.12-rc7&apos; into ecryptfs/nextRequired to pick up idmapped mount changes which changed some functionparameters.

            List of files:
            /linux/tools/testing/selftests/bpf/verifier/atomic_xor.c</description>
        <pubDate>Mon, 19 Apr 2021 06:39:17 +0200</pubDate>
        <dc:creator>Tyler Hicks &lt;code@tyhicks.com&gt;</dc:creator>
    </item>
<item>
        <title>5acac83bf2e42f51ab9fd315d657798754bf0bb8 - Merge tag &apos;v5.12-rc4&apos; into next</title>
        <link>http://kernelsources.org:8080/source/history/linux/tools/testing/selftests/bpf/verifier/atomic_xor.c#5acac83bf2e42f51ab9fd315d657798754bf0bb8</link>
        <description>Merge tag &apos;v5.12-rc4&apos; into nextSync up with the mainline to bring in newest APIs.

            List of files:
            /linux/tools/testing/selftests/bpf/verifier/atomic_xor.c</description>
        <pubDate>Thu, 25 Mar 2021 19:46:10 +0100</pubDate>
        <dc:creator>Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>f8bade6c9a6213c2c5ba6e5bf32415ecab6e41e5 - Merge drm/drm-next into drm-misc-next</title>
        <link>http://kernelsources.org:8080/source/history/linux/tools/testing/selftests/bpf/verifier/atomic_xor.c#f8bade6c9a6213c2c5ba6e5bf32415ecab6e41e5</link>
        <description>Merge drm/drm-next into drm-misc-nextNoralf needs some patches in 5.12-rc3, and we&apos;ve been delaying the 5.12merge due to the swap issue so it looks like a good time.Signed-off-by: Maxime Ripard &lt;maxime@cerno.tech&gt;

            List of files:
            /linux/tools/testing/selftests/bpf/verifier/atomic_xor.c</description>
        <pubDate>Tue, 16 Mar 2021 09:06:23 +0100</pubDate>
        <dc:creator>Maxime Ripard &lt;maxime@cerno.tech&gt;</dc:creator>
    </item>
<item>
        <title>b470ebc9e0e57f53d1db9c49b8a3de4086babd05 - Merge tag &apos;irqchip-fixes-5.12-1&apos; of git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms into irq/urgent</title>
        <link>http://kernelsources.org:8080/source/history/linux/tools/testing/selftests/bpf/verifier/atomic_xor.c#b470ebc9e0e57f53d1db9c49b8a3de4086babd05</link>
        <description>Merge tag &apos;irqchip-fixes-5.12-1&apos; of git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms into irq/urgentPull irqchip fixes from Marc Zyngier:  - More compatible strings for the Ingenic irqchip (introducing the    JZ4760B SoC)  - Select GENERIC_IRQ_MULTI_HANDLER on the ARM ep93xx platform  - Drop all GENERIC_IRQ_MULTI_HANDLER selections from the irqchip    Kconfig, now relying on the architecture to get it right  - Drop the debugfs_file field from struct irq_domain, now that    debugfs can track things on its own

            List of files:
            /linux/tools/testing/selftests/bpf/verifier/atomic_xor.c</description>
        <pubDate>Sun, 14 Mar 2021 16:34:35 +0100</pubDate>
        <dc:creator>Thomas Gleixner &lt;tglx@linutronix.de&gt;</dc:creator>
    </item>
<item>
        <title>35bb28ece90dfb7f72b77ba529f25f79323d9581 - Merge drm/drm-next into drm-intel-next</title>
        <link>http://kernelsources.org:8080/source/history/linux/tools/testing/selftests/bpf/verifier/atomic_xor.c#35bb28ece90dfb7f72b77ba529f25f79323d9581</link>
        <description>Merge drm/drm-next into drm-intel-nextSync up with upstream.Signed-off-by: Jani Nikula &lt;jani.nikula@intel.com&gt;

            List of files:
            /linux/tools/testing/selftests/bpf/verifier/atomic_xor.c</description>
        <pubDate>Thu, 11 Mar 2021 07:19:46 +0100</pubDate>
        <dc:creator>Jani Nikula &lt;jani.nikula@intel.com&gt;</dc:creator>
    </item>
<item>
        <title>4c9f4865f4604744d4f1a43db22ac6ec9dc8e587 - Merge branch &apos;fixes-rc2&apos; into fixes</title>
        <link>http://kernelsources.org:8080/source/history/linux/tools/testing/selftests/bpf/verifier/atomic_xor.c#4c9f4865f4604744d4f1a43db22ac6ec9dc8e587</link>
        <description>Merge branch &apos;fixes-rc2&apos; into fixes

            List of files:
            /linux/tools/testing/selftests/bpf/verifier/atomic_xor.c</description>
        <pubDate>Mon, 08 Mar 2021 10:34:12 +0100</pubDate>
        <dc:creator>Tony Lindgren &lt;tony@atomide.com&gt;</dc:creator>
    </item>
<item>
        <title>cdd38c5f1ce4398ec58fec95904b75824daab7b5 - Merge remote-tracking branch &apos;net/master&apos;</title>
        <link>http://kernelsources.org:8080/source/history/linux/tools/testing/selftests/bpf/verifier/atomic_xor.c#cdd38c5f1ce4398ec58fec95904b75824daab7b5</link>
        <description>Merge remote-tracking branch &apos;net/master&apos;

            List of files:
            /linux/tools/testing/selftests/bpf/verifier/atomic_xor.c</description>
        <pubDate>Wed, 24 Feb 2021 13:36:58 +0100</pubDate>
        <dc:creator>Stefan Schmidt &lt;stefan@datenfreihafen.org&gt;</dc:creator>
    </item>
<item>
        <title>72d6e4871f0457dc9e498f8437ea344ee6b78075 - Merge commit &apos;3e10585335b7967326ca7b4118cada0d2d00a2ab&apos; into v5.12/vfio/next</title>
        <link>http://kernelsources.org:8080/source/history/linux/tools/testing/selftests/bpf/verifier/atomic_xor.c#72d6e4871f0457dc9e498f8437ea344ee6b78075</link>
        <description>Merge commit &apos;3e10585335b7967326ca7b4118cada0d2d00a2ab&apos; into v5.12/vfio/nextUpdate to new follow_pte() definition

            List of files:
            /linux/tools/testing/selftests/bpf/verifier/atomic_xor.c</description>
        <pubDate>Mon, 22 Feb 2021 18:14:24 +0100</pubDate>
        <dc:creator>Alex Williamson &lt;alex.williamson@redhat.com&gt;</dc:creator>
    </item>
<item>
        <title>51e6d17809c85e1934600ec4cdb85552e9bda254 - Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next</title>
        <link>http://kernelsources.org:8080/source/history/linux/tools/testing/selftests/bpf/verifier/atomic_xor.c#51e6d17809c85e1934600ec4cdb85552e9bda254</link>
        <description>Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-nextPull networking updates from David Miller: &quot;Here is what we have this merge window:   1) Support SW steering for mlx5 Connect-X6Dx, from Yevgeny Kliteynik.   2) Add RSS multi group support to octeontx2-pf driver, from Geetha      Sowjanya.   3) Add support for KS8851 PHY. From Marek Vasut.   4) Add support for GarfieldPeak bluetooth controller from Kiran K.   5) Add support for half-duplex tcan4x5x can controllers.   6) Add batch skb rx processing to bcrm63xx_enet, from Sieng Piaw      Liew.   7) Rework RX port offload infrastructure, particularly wrt, UDP      tunneling, from Jakub Kicinski.   8) Add BCM72116 PHY support, from Florian Fainelli.   9) Remove Dsa specific notifiers, they are unnecessary. From Vladimir      Oltean.  10) Add support for picosecond rx delay in dwmac-meson8b chips. From      Martin Blumenstingl.  11) Support TSO on xfrm interfaces from Eyal Birger.  12) Add support for MP_PRIO to mptcp stack, from Geliang Tang.  13) Support BCM4908 integrated switch, from Rafa&#322; Mi&#322;ecki.  14) Support for directly accessing kernel module variables via module      BTF info, from Andrii Naryiko.  15) Add DASH (esktop and mobile Architecture for System Hardware)      support to r8169 driver, from Heiner Kallweit.  16) Add rx vlan filtering to dpaa2-eth, from Ionut-robert Aron.  17) Add support for 100 base0x SFP devices, from Bjarni Jonasson.  18) Support link aggregation in DSA, from Tobias Waldekranz.  19) Support for bitwidse atomics in bpf, from Brendan Jackman.  20) SmartEEE support in at803x driver, from Russell King.  21) Add support for flow based tunneling to GTP, from Pravin B Shelar.  22) Allow arbitrary number of interconnrcts in ipa, from Alex Elder.  23) TLS RX offload for bonding, from Tariq Toukan.  24) RX decap offklload support in mac80211, from Felix Fietkou.  25) devlink health saupport in octeontx2-af, from George Cherian.  26) Add TTL attr to SCM_TIMESTAMP_OPT_STATS, from Yousuk Seung  27) Delegated actionss support in mptcp, from Paolo Abeni.  28) Support receive timestamping when doin zerocopy tcp receive. From      Arjun Ray.  29) HTB offload support for mlx5, from Maxim Mikityanskiy.  30) UDP GRO forwarding, from Maxim Mikityanskiy.  31) TAPRIO offloading in dsa hellcreek driver, from Kurt Kanzenbach.  32) Weighted random twos choice algorithm for ipvs, from Darby Payne.  33) Fix netdev registration deadlock, from Johannes Berg.  34) Various conversions to new tasklet api, from EmilRenner Berthing.  35) Bulk skb allocations in veth, from Lorenzo Bianconi.  36) New ethtool interface for lane setting, from Danielle Ratson.  37) Offload failiure notifications for routes, from Amit Cohen.  38) BCM4908 support, from Rafa&#322; Mi&#322;ecki.  39) Support several new iwlwifi chips, from Ihab Zhaika.  40) Flow drector support for ipv6 in i40e, from Przemyslaw Patynowski.  41) Support for mhi prrotocols, from Loic Poulain.  42) Optimize bpf program stats.  43) Implement RFC6056, for better port randomization, from Eric      Dumazet.  44) hsr tag offloading support from George McCollister.  45) Netpoll support in qede, from Bhaskar Upadhaya.  46) 2005/400g speed support in bonding 3ad mode, from Nikolay      Aleksandrov.  47) Netlink event support in mptcp, from Florian Westphal.  48) Better skbuff caching, from Alexander Lobakin.  49) MRP (Media Redundancy Protocol) offloading in DSA and a few      drivers, from Horatiu Vultur.  50) mqprio saupport in mvneta, from Maxime Chevallier.  51) Remove of_phy_attach, no longer needed, from Florian Fainelli&quot;* git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next: (1766 commits)  octeontx2-pf: Fix otx2_get_fecparam()  cteontx2-pf: cn10k: Prevent harmless double shift bugs  net: stmmac: Add PCI bus info to ethtool driver query output  ptp: ptp_clockmatrix: clean-up - parenthesis around a == b are unnecessary  ptp: ptp_clockmatrix: Simplify code - remove unnecessary `err` variable.  ptp: ptp_clockmatrix: Coding style - tighten vertical spacing.  ptp: ptp_clockmatrix: Clean-up dev_*() messages.  ptp: ptp_clockmatrix: Remove unused header declarations.  ptp: ptp_clockmatrix: Add alignment of 1 PPS to idtcm_perout_enable.  ptp: ptp_clockmatrix: Add wait_for_sys_apll_dpll_lock.  net: stmmac: dwmac-sun8i: Add a shutdown callback  net: stmmac: dwmac-sun8i: Minor probe function cleanup  net: stmmac: dwmac-sun8i: Use reset_control_reset  net: stmmac: dwmac-sun8i: Remove unnecessary PHY power check  net: stmmac: dwmac-sun8i: Return void from PHY unpower  r8169: use macro pm_ptr  net: mdio: Remove of_phy_attach()  net: mscc: ocelot: select PACKING in the Kconfig  net: re-solve some conflicts after net -&gt; net-next merge  net: dsa: tag_rtl4_a: Support also egress tags  ...

            List of files:
            /linux/tools/testing/selftests/bpf/verifier/atomic_xor.c</description>
        <pubDate>Sun, 21 Feb 2021 02:45:32 +0100</pubDate>
        <dc:creator>Linus Torvalds &lt;torvalds@linux-foundation.org&gt;</dc:creator>
    </item>
<item>
        <title>b8af417e4d93caeefb89bbfbd56ec95dedd8dab5 - Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next</title>
        <link>http://kernelsources.org:8080/source/history/linux/tools/testing/selftests/bpf/verifier/atomic_xor.c#b8af417e4d93caeefb89bbfbd56ec95dedd8dab5</link>
        <description>Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-nextDaniel Borkmann says:====================pull-request: bpf-next 2021-02-16The following pull-request contains BPF updates for your *net-next* tree.There&apos;s a small merge conflict between 7eeba1706eba (&quot;tcp: Add receive timestampsupport for receive zerocopy.&quot;) from net-next tree and 9cacf81f8161 (&quot;bpf: Removeextra lock_sock for TCP_ZEROCOPY_RECEIVE&quot;) from bpf-next tree. Resolve as follows:  [...]                lock_sock(sk);                err = tcp_zerocopy_receive(sk, &amp;zc, &amp;tss);                err = BPF_CGROUP_RUN_PROG_GETSOCKOPT_KERN(sk, level, optname,                                                          &amp;zc, &amp;len, err);                release_sock(sk);  [...]We&apos;ve added 116 non-merge commits during the last 27 day(s) which containa total of 156 files changed, 5662 insertions(+), 1489 deletions(-).The main changes are:1) Adds support of pointers to types with known size among global function   args to overcome the limit on max # of allowed args, from Dmitrii Banshchikov.2) Add bpf_iter for task_vma which can be used to generate information similar   to /proc/pid/maps, from Song Liu.3) Enable bpf_{g,s}etsockopt() from all sock_addr related program hooks. Allow   rewriting bind user ports from BPF side below the ip_unprivileged_port_start   range, both from Stanislav Fomichev.4) Prevent recursion on fentry/fexit &amp; sleepable programs and allow map-in-map   as well as per-cpu maps for the latter, from Alexei Starovoitov.5) Add selftest script to run BPF CI locally. Also enable BPF ringbuffer   for sleepable programs, both from KP Singh.6) Extend verifier to enable variable offset read/write access to the BPF   program stack, from Andrei Matei.7) Improve tc &amp; XDP MTU handling and add a new bpf_check_mtu() helper to   query device MTU from programs, from Jesper Dangaard Brouer.8) Allow bpf_get_socket_cookie() helper also be called from [sleepable] BPF   tracing programs, from Florent Revest.9) Extend x86 JIT to pad JMPs with NOPs for helping image to converge when   otherwise too many passes are required, from Gary Lin.10) Verifier fixes on atomics with BPF_FETCH as well as function-by-function    verification both related to zero-extension handling, from Ilya Leoshkevich.11) Better kernel build integration of resolve_btfids tool, from Jiri Olsa.12) Batch of AF_XDP selftest cleanups and small performance improvement    for libbpf&apos;s xsk map redirect for newer kernels, from Bj&#246;rn T&#246;pel.13) Follow-up BPF doc and verifier improvements around atomics with    BPF_FETCH, from Brendan Jackman.14) Permit zero-sized data sections e.g. if ELF .rodata section contains    read-only data from local variables, from Yonghong Song.15) veth driver skb bulk-allocation for ndo_xdp_xmit, from Lorenzo Bianconi.====================Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;

            List of files:
            /linux/tools/testing/selftests/bpf/verifier/atomic_xor.c</description>
        <pubDate>Tue, 16 Feb 2021 22:14:06 +0100</pubDate>
        <dc:creator>David S. Miller &lt;davem@davemloft.net&gt;</dc:creator>
    </item>
<item>
        <title>45df3052682564327acc0a0fdb0f9adc3a27a50b - selftests/bpf: Fix endianness issues in atomic tests</title>
        <link>http://kernelsources.org:8080/source/history/linux/tools/testing/selftests/bpf/verifier/atomic_xor.c#45df3052682564327acc0a0fdb0f9adc3a27a50b</link>
        <description>selftests/bpf: Fix endianness issues in atomic testsAtomic tests store a DW, but then load it back as a W from the sameaddress. This doesn&apos;t work on big-endian systems, and since the pointof those tests is not testing narrow loads, fix simply by loading aDW.Fixes: 98d666d05a1d (&quot;bpf: Add tests for new BPF atomic operations&quot;)Signed-off-by: Ilya Leoshkevich &lt;iii@linux.ibm.com&gt;Signed-off-by: Andrii Nakryiko &lt;andrii@kernel.org&gt;Link: https://lore.kernel.org/bpf/20210210020713.77911-1-iii@linux.ibm.com

            List of files:
            /linux/tools/testing/selftests/bpf/verifier/atomic_xor.c</description>
        <pubDate>Wed, 10 Feb 2021 03:07:13 +0100</pubDate>
        <dc:creator>Ilya Leoshkevich &lt;iii@linux.ibm.com&gt;</dc:creator>
    </item>
<item>
        <title>2d9116be760793491827f30b7f77e88b5c44b81a - Merge https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next</title>
        <link>http://kernelsources.org:8080/source/history/linux/tools/testing/selftests/bpf/verifier/atomic_xor.c#2d9116be760793491827f30b7f77e88b5c44b81a</link>
        <description>Merge https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-nextDaniel Borkmann says:====================pull-request: bpf-next 2021-01-161) Extend atomic operations to the BPF instruction set along with x86-64 JIT support,   that is, atomic{,64}_{xchg,cmpxchg,fetch_{add,and,or,xor}}, from Brendan Jackman.2) Add support for using kernel module global variables (__ksym externs in BPF   programs) retrieved via module&apos;s BTF, from Andrii Nakryiko.3) Generalize BPF stackmap&apos;s buildid retrieval and add support to have buildid   stored in mmap2 event for perf, from Jiri Olsa.4) Various fixes for cross-building BPF sefltests out-of-tree which then will   unblock wider automated testing on ARM hardware, from Jean-Philippe Brucker.5) Allow to retrieve SOL_SOCKET opts from sock_addr progs, from Daniel Borkmann.6) Clean up driver&apos;s XDP buffer init and split into two helpers to init per-   descriptor and non-changing fields during processing, from Lorenzo Bianconi.7) Minor misc improvements to libbpf &amp; bpftool, from Ian Rogers.* https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next: (41 commits)  perf: Add build id data in mmap2 event  bpf: Add size arg to build_id_parse function  bpf: Move stack_map_get_build_id into lib  bpf: Document new atomic instructions  bpf: Add tests for new BPF atomic operations  bpf: Add bitwise atomic instructions  bpf: Pull out a macro for interpreting atomic ALU operations  bpf: Add instructions for atomic_[cmp]xchg  bpf: Add BPF_FETCH field / create atomic_fetch_add instruction  bpf: Move BPF_STX reserved field check into BPF_STX verifier code  bpf: Rename BPF_XADD and prepare to encode other atomics in .imm  bpf: x86: Factor out a lookup table for some ALU opcodes  bpf: x86: Factor out emission of REX byte  bpf: x86: Factor out emission of ModR/M for *(reg + off)  tools/bpftool: Add -Wall when building BPF programs  bpf, libbpf: Avoid unused function warning on bpf_tail_call_static  selftests/bpf: Install btf_dump test cases  selftests/bpf: Fix installation of urandom_read  selftests/bpf: Move generated test files to $(TEST_GEN_FILES)  selftests/bpf: Fix out-of-tree build  ...====================Link: https://lore.kernel.org/r/20210116012922.17823-1-daniel@iogearbox.netSigned-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;

            List of files:
            /linux/tools/testing/selftests/bpf/verifier/atomic_xor.c</description>
        <pubDate>Sat, 16 Jan 2021 02:57:26 +0100</pubDate>
        <dc:creator>Jakub Kicinski &lt;kuba@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>7064a7341a0d2fcfeff56be7e3917421fbb8b024 - Merge branch &apos;Atomics for eBPF&apos;</title>
        <link>http://kernelsources.org:8080/source/history/linux/tools/testing/selftests/bpf/verifier/atomic_xor.c#7064a7341a0d2fcfeff56be7e3917421fbb8b024</link>
        <description>Merge branch &apos;Atomics for eBPF&apos;Brendan Jackman says:====================There&apos;s still one unresolved review comment from John[3] which Iwill resolve with a followup patch.Differences from v6-&gt;v7 [1]:* Fixed riscv build error detected by 0-day robot.Differences from v5-&gt;v6 [1]:* Carried Bj&#246;rn T&#246;pel&apos;s ack for RISC-V code, plus a couple more acks from  Yonhgong.* Doc fixups.* Trivial cleanups.Differences from v4-&gt;v5 [1]:* Fixed bogus type casts in interpreter that led to warnings from  the 0day robot.* Dropped feature-detection for Clang per Andrii&apos;s suggestion in [4].  The selftests will now fail to build unless you have llvm-project  commit 286daafd6512. The ENABLE_ATOMICS_TEST macro is still needed  to support the no_alu32 tests.* Carried some Acks from John and Yonghong.* Dropped confusing usage of __atomic_exchange from prog_test in  favour of __sync_lock_test_and_set.* [Really] got rid of all the forest of instruction macros  (BPF_ATOMIC_FETCH_ADD and friends); now there&apos;s just BPF_ATOMIC_OP  to define all the instructions as we use them in the verifier  tests. This makes the atomic ops less special in that API, and I  don&apos;t think the resulting usage is actually any harder to read.Differences from v3-&gt;v4 [1]:* Added one Ack from Yonghong. He acked some other patches but those  have now changed non-trivally so I didn&apos;t add those acks.* Fixups to commit messages.* Fixed disassembly and comments: first arg to atomic_fetch_* is a  pointer.* Improved prog_test efficiency. BPF progs are now all loaded in a  single call, then the skeleton is re-used for each subtest.* Dropped use of tools/build/feature in favour of a one-liner in the  Makefile.* Dropped the commit that created an emit_neg helper in the x86  JIT. It&apos;s not used any more (it wasn&apos;t used in v3 either).* Combined all the different filter.h macros (used to be  BPF_ATOMIC_ADD, BPF_ATOMIC_FETCH_ADD, BPF_ATOMIC_AND, etc) into  just BPF_ATOMIC32 and BPF_ATOMIC64.* Removed some references to BPF_STX_XADD from tools/, samples/ and  lib/ that I missed before.Differences from v2-&gt;v3 [1]:* More minor fixes and naming/comment changes* Dropped atomic subtract: compilers can implement this by preceding  an atomic add with a NEG instruction (which is what the x86 JIT did  under the hood anyway).* Dropped the use of -mcpu=v4 in the Clang BPF command-line; there is  no longer an architecture version bump. Instead a feature test is  added to Kbuild - it builds a source file to check if Clang  supports BPF atomics.* Fixed the prog_test so it no longer breaks  test_progs-no_alu32. This requires some ifdef acrobatics to avoid  complicating the prog_tests model where the same userspace code  exercises both the normal and no_alu32 BPF test objects, using the  same skeleton header.Differences from v1-&gt;v2 [1]:* Fixed mistakes in the netronome driver* Addd sub, add, or, xor operations* The above led to some refactors to keep things readable. (Maybe I  should have just waited until I&apos;d implemented these before starting  the review...)* Replaced BPF_[CMP]SET | BPF_FETCH with just BPF_[CMP]XCHG, which  include the BPF_FETCH flag* Added a bit of documentation. Suggestions welcome for more places  to dump this info...The prog_test that&apos;s added depends on Clang/LLVM features added byYonghong in commit 286daafd6512 (washttps://reviews.llvm.org/D72184).This only includes a JIT implementation for x86_64 - I don&apos;t plan toimplement JIT support myself for other architectures.Operations==========This patchset adds atomic operations to the eBPF instruction set. Theuse-case that motivated this work was a trivial and efficient way togenerate globally-unique cookies in BPF progs, but I think it&apos;sobvious that these features are pretty widely applicable.  Theinstructions that are added here can be summarised with this list ofkernel operations:* atomic[64]_[fetch_]add* atomic[64]_[fetch_]and* atomic[64]_[fetch_]or* atomic[64]_xchg* atomic[64]_cmpxchgThe following are left out of scope for this effort:* 16 and 8 bit operations* Explicit memory barriersEncoding========I originally planned to add new values for bpf_insn.opcode. This wasrather unpleasant: the opcode space has holes in it but no entireinstruction classes[2]. Yonghong Song had a better idea: use theimmediate field of the existing STX XADD instruction to encode theoperation. This works nicely, without breaking existing programs,because the immediate field is currently reserved-must-be-zero, andextra-nicely because BPF_ADD happens to be zero.Note that this of course makes immediate-source atomic operationsimpossible. It&apos;s hard to imagine a measurable speedup from suchinstructions, and if it existed it would certainly not benefit x86,which has no support for them.The BPF_OP opcode fields are re-used in the immediate, and anadditional flag BPF_FETCH is used to mark instructions that shouldfetch a pre-modification value from memory.So, BPF_XADD is now called BPF_ATOMIC (the old name is kept to avoidbreaking userspace builds), and where we previously had .imm = 0, wenow have .imm = BPF_ADD (which is 0).Operands========Reg-source eBPF instructions only have two operands, while theseatomic operations have up to four. To avoid needing to encodeadditional operands, then:- One of the input registers is re-used as an output register  (e.g. atomic_fetch_add both reads from and writes to the source  register).- Where necessary (i.e. for cmpxchg) , R0 is &quot;hard-coded&quot; as one of  the operands.This approach also allows the new eBPF instructions to map directlyto single x86 instructions.[1] Previous iterations:    v1: https://lore.kernel.org/bpf/20201123173202.1335708-1-jackmanb@google.com/    v2: https://lore.kernel.org/bpf/20201127175738.1085417-1-jackmanb@google.com/    v3: https://lore.kernel.org/bpf/X8kN7NA7bJC7aLQI@google.com/    v4: https://lore.kernel.org/bpf/20201207160734.2345502-1-jackmanb@google.com/    v5: https://lore.kernel.org/bpf/20201215121816.1048557-1-jackmanb@google.com/    v6: https://lore.kernel.org/bpf/20210112154235.2192781-1-jackmanb@google.com/[2] Visualisation of eBPF opcode space:    https://gist.github.com/bjackman/00fdad2d5dfff601c1918bc29b16e778[3] Comment from John about propagating bounds in verifier:    https://lore.kernel.org/bpf/5fcf0fbcc8aa8_9ab320853@john-XPS-13-9370.notmuch/[4] Mail from Andrii about not supporting old Clang in selftests:    https://lore.kernel.org/bpf/CAEf4BzYBddPaEzRUs=jaWSo5kbf=LZdb7geAUVj85GxLQztuAQ@mail.gmail.com/====================Signed-off-by: Alexei Starovoitov &lt;ast@kernel.org&gt;

            List of files:
            /linux/tools/testing/selftests/bpf/verifier/atomic_xor.c</description>
        <pubDate>Fri, 15 Jan 2021 03:34:30 +0100</pubDate>
        <dc:creator>Alexei Starovoitov &lt;ast@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>98d666d05a1d9706bb3fe972157fa6155dbb180f - bpf: Add tests for new BPF atomic operations</title>
        <link>http://kernelsources.org:8080/source/history/linux/tools/testing/selftests/bpf/verifier/atomic_xor.c#98d666d05a1d9706bb3fe972157fa6155dbb180f</link>
        <description>bpf: Add tests for new BPF atomic operationsThe prog_test that&apos;s added depends on Clang/LLVM features added byYonghong in commit 286daafd6512 (was https://reviews.llvm.org/D72184).Note the use of a define called ENABLE_ATOMICS_TESTS: this is usedto: - Avoid breaking the build for people on old versions of Clang - Avoid needing separate lists of test objects for no_alu32, where   atomics are not supported even if Clang has the feature.The atomics_test.o BPF object is built unconditionally both fortest_progs and test_progs-no_alu32. For test_progs, if Clang supportsatomics, ENABLE_ATOMICS_TESTS is defined, so it includes the propertest code. Otherwise, progs and global vars are defined anyway, asstubs; this means that the skeleton user code still builds.The atomics_test.o userspace object is built once and used for bothtest_progs and test_progs-no_alu32. A variable called skip_tests isdefined in the BPF object&apos;s data section, which tells the userspaceobject whether to skip the atomics test.Signed-off-by: Brendan Jackman &lt;jackmanb@google.com&gt;Signed-off-by: Alexei Starovoitov &lt;ast@kernel.org&gt;Acked-by: Yonghong Song &lt;yhs@fb.com&gt;Link: https://lore.kernel.org/bpf/20210114181751.768687-11-jackmanb@google.com

            List of files:
            /linux/tools/testing/selftests/bpf/verifier/atomic_xor.c</description>
        <pubDate>Thu, 14 Jan 2021 19:17:50 +0100</pubDate>
        <dc:creator>Brendan Jackman &lt;jackmanb@google.com&gt;</dc:creator>
    </item>
</channel>
</rss>
