10 Aug, 2019

3 commits

  • Make it clear that this XDP program depend on the network
    stack to do the ARP resolution. This is connected with the
    BPF_FIB_LKUP_RET_NO_NEIGH return code from bpf_fib_lookup().

    Another common mistake (seen via XDP-tutorial) is that users
    don't realize that sysctl net.ipv{4,6}.conf.all.forwarding
    setting is honored by bpf_fib_lookup.

    Reported-by: Anton Protopopov
    Signed-off-by: Jesper Dangaard Brouer
    Reviewed-by: David Ahern
    Acked-by: Yonghong Song
    Reviewed-by: Toke Høiland-Jørgensen
    Signed-off-by: Daniel Borkmann

    Jesper Dangaard Brouer
     
  • This address the TODO in samples/bpf/xdp_fwd_kern.c, which points out
    that the chosen egress index should be checked for existence in the
    devmap. This can now be done via taking advantage of Toke's work in
    commit 0cdbb4b09a06 ("devmap: Allow map lookups from eBPF").

    This change makes xdp_fwd more practically usable, as this allows for
    a mixed environment, where IP-forwarding fallback to network stack, if
    the egress device isn't configured to use XDP.

    Signed-off-by: Jesper Dangaard Brouer
    Reviewed-by: David Ahern
    Reviewed-by: Toke Høiland-Jørgensen
    Acked-by: Yonghong Song
    Signed-off-by: Daniel Borkmann

    Jesper Dangaard Brouer
     
  • The devmap name 'tx_port' came from a copy-paste from xdp_redirect_map
    which only have a single TX port. Change name to xdp_tx_ports
    to make it more descriptive.

    Signed-off-by: Jesper Dangaard Brouer
    Reviewed-by: David Ahern
    Acked-by: Yonghong Song
    Reviewed-by: Toke Høiland-Jørgensen
    Signed-off-by: Daniel Borkmann

    Jesper Dangaard Brouer
     

24 Jul, 2019

2 commits


16 Jul, 2019

1 commit

  • While $ARCH can be relatively flexible (see Makefile and
    tools/scripts/Makefile.arch), $SRCARCH always corresponds to a directory
    name under arch/.

    Therefore, build samples with -D__TARGET_ARCH_$(SRCARCH), since that
    matches the expectations of bpf_helpers.h.

    Signed-off-by: Ilya Leoshkevich
    Acked-by: Vasily Gorbik
    Acked-by: Andrii Nakryiko
    Signed-off-by: Daniel Borkmann

    Ilya Leoshkevich
     

09 Jul, 2019

1 commit


04 Jul, 2019

1 commit

  • Daniel Borkmann says:

    ====================
    pull-request: bpf 2019-07-03

    The following pull-request contains BPF updates for your *net* tree.

    The main changes are:

    1) Fix the interpreter to properly handle BPF_ALU32 | BPF_ARSH
    on BE architectures, from Jiong.

    2) Fix several bugs in the x32 BPF JIT for handling shifts by 0,
    from Luke and Xi.

    3) Fix NULL pointer deref in btf_type_is_resolve_source_only(),
    from Stanislav.

    4) Properly handle the check that forwarding is enabled on the device
    in bpf_ipv6_fib_lookup() helper code, from Anton.

    5) Fix UAPI bpf_prog_info fields alignment for archs that have 16 bit
    alignment such as m68k, from Baruch.

    6) Fix kernel hanging in unregister_netdevice loop while unregistering
    device bound to XDP socket, from Ilya.

    7) Properly terminate tail update in xskq_produce_flush_desc(), from Nathan.

    8) Fix broken always_inline handling in test_lwt_seg6local, from Jiri.

    9) Fix bpftool to use correct argument in cgroup errors, from Jakub.

    10) Fix detaching dummy prog in XDP redirect sample code, from Prashant.

    11) Add Jonathan to AF_XDP reviewers, from Björn.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     

03 Jul, 2019

3 commits

  • Copy-paste, should be detach, not attach.

    Signed-off-by: Stanislav Fomichev
    Acked-by: Soheil Hassas Yeganeh
    Acked-by: Yuchung Cheng
    Signed-off-by: Daniel Borkmann

    Stanislav Fomichev
     
  • Uses new RTT callback to dump stats every second.

    $ mkdir -p /tmp/cgroupv2
    $ mount -t cgroup2 none /tmp/cgroupv2
    $ mkdir -p /tmp/cgroupv2/foo
    $ echo $$ >> /tmp/cgroupv2/foo/cgroup.procs
    $ bpftool prog load ./tcp_dumpstats_kern.o /sys/fs/bpf/tcp_prog
    $ bpftool cgroup attach /tmp/cgroupv2/foo sock_ops pinned /sys/fs/bpf/tcp_prog
    $ bpftool prog tracelog
    $ # run neper/netperf/etc

    Used neper to compare performance with and without this program attached
    and didn't see any noticeable performance impact.

    Sample output:
    -0 [015] ..s. 2074.128800: 0: dsack_dups=0 delivered=242526
    -0 [015] ..s. 2074.128808: 0: delivered_ce=0 icsk_retransmits=0
    -0 [015] ..s. 2075.130133: 0: dsack_dups=0 delivered=323599
    -0 [015] ..s. 2075.130138: 0: delivered_ce=0 icsk_retransmits=0
    -0 [005] .Ns. 2076.131440: 0: dsack_dups=0 delivered=404648
    -0 [005] .Ns. 2076.131447: 0: delivered_ce=0 icsk_retransmits=0

    Cc: Eric Dumazet
    Cc: Priyaranjan Jha
    Cc: Yuchung Cheng
    Cc: Soheil Hassas Yeganeh
    Acked-by: Soheil Hassas Yeganeh
    Acked-by: Yuchung Cheng
    Signed-off-by: Stanislav Fomichev
    Signed-off-by: Daniel Borkmann

    Stanislav Fomichev
     
  • Adds support for fq's Earliest Departure Time to HBM (Host Bandwidth
    Manager). Includes a new BPF program supporting EDT, and also updates
    corresponding programs.

    It will drop packets with an EDT of more than 500us in the future
    unless the packet belongs to a flow with less than 2 packets in flight.
    This is done so each flow has at least 2 packets in flight, so they
    will not starve, and also to help prevent delayed ACK timeouts.

    It will also work with ECN enabled traffic, where the packets will be
    CE marked if their EDT is more than 50us in the future.

    The table below shows some performance numbers. The flows are back to
    back RPCS. One server sending to another, either 2 or 4 flows.
    One flow is a 10KB RPC, the rest are 1MB RPCs. When there are more
    than one flow of a given RPC size, the numbers represent averages.

    The rate limit applies to all flows (they are in the same cgroup).
    Tests ending with "-edt" ran with the new BPF program supporting EDT.
    Tests ending with "-hbt" ran on top HBT qdisc with the specified rate
    (i.e. no HBM). The other tests ran with the HBM BPF program included
    in the HBM patch-set.

    EDT has limited value when using DCTCP, but it helps in many cases when
    using Cubic. It usually achieves larger link utilization and lower
    99% latencies for the 1MB RPCs.
    HBM ends up queueing a lot of packets with its default parameter values,
    reducing the goodput of the 10KB RPCs and increasing their latency. Also,
    the RTTs seen by the flows are quite large.

    Aggr 10K 10K 10K 1MB 1MB 1MB
    Limit rate drops RTT rate P90 P99 rate P90 P99
    Test rate Flows Mbps % us Mbps us us Mbps ms ms
    -------- ---- ----- ---- ----- --- ---- ---- ---- ---- ---- ----
    cubic 1G 2 904 0.02 108 257 511 539 647 13.4 24.5
    cubic-edt 1G 2 982 0.01 156 239 656 967 743 14.0 17.2
    dctcp 1G 2 977 0.00 105 324 408 744 653 14.5 15.9
    dctcp-edt 1G 2 981 0.01 142 321 417 811 660 15.7 17.0
    cubic-htb 1G 2 919 0.00 1825 40 2822 4140 879 9.7 9.9

    cubic 200M 2 155 0.30 220 81 532 655 74 283 450
    cubic-edt 200M 2 188 0.02 222 87 1035 1095 101 84 85
    dctcp 200M 2 188 0.03 111 77 912 939 111 76 325
    dctcp-edt 200M 2 188 0.03 217 74 1416 1738 114 76 79
    cubic-htb 200M 2 188 0.00 5015 8 14ms 15ms 180 48 50

    cubic 1G 4 952 0.03 110 165 516 546 262 38 154
    cubic-edt 1G 4 973 0.01 190 111 1034 1314 287 65 79
    dctcp 1G 4 951 0.00 103 180 617 905 257 37 38
    dctcp-edt 1G 4 967 0.00 163 151 732 1126 272 43 55
    cubic-htb 1G 4 914 0.00 3249 13 7ms 8ms 300 29 34

    cubic 5G 4 4236 0.00 134 305 490 624 1310 10 17
    cubic-edt 5G 4 4865 0.00 156 306 425 759 1520 10 16
    dctcp 5G 4 4936 0.00 128 485 221 409 1484 7 9
    dctcp-edt 5G 4 4924 0.00 148 390 392 623 1508 11 26

    v1 -> v2: Incorporated Andrii's suggestions
    v2 -> v3: Incorporated Yonghong's suggestions
    v3 -> v4: Removed credit update that is not needed

    Signed-off-by: Lawrence Brakmo
    Acked-by: Yonghong Song
    Signed-off-by: Daniel Borkmann

    brakmo
     

28 Jun, 2019

1 commit

  • The typical XDP memory scheme is one packet per page. Change the AF_XDP
    frame size in libbpf to 4096, which is the page size on x86, to allow
    libbpf to be used with the drivers with the packet-per-page scheme.

    Add a command line option -f to xdpsock to allow to specify a custom
    frame size.

    Signed-off-by: Maxim Mikityanskiy
    Signed-off-by: Tariq Toukan
    Acked-by: Saeed Mahameed
    Signed-off-by: Daniel Borkmann

    Maxim Mikityanskiy
     

26 Jun, 2019

1 commit

  • Currently, each xdp samples are inconsistent in the use.
    Most of the samples fetch the interface with it's name.
    (ex. xdp1, xdp2skb, xdp_redirect_cpu, xdp_sample_pkts, etc.)

    But some of the xdp samples are fetching the interface with
    ifindex by command argument.

    This commit enables xdp samples to fetch interface with it's name
    without changing the original index interface fetching.
    ( fetching in the same way as xdp_sample_pkts_user.c does.)

    Signed-off-by: Daniel T. Lee
    Acked-by: Toke Høiland-Jørgensen
    Acked-by: Jesper Dangaard Brouer
    Acked-by: Song Liu
    Signed-off-by: Daniel Borkmann

    Daniel T. Lee
     

25 Jun, 2019

1 commit


24 Jun, 2019

1 commit

  • When we terminate xdp_redirect, it ends up with following message:
    "Program on iface OUT changed, not removing"
    This results in dummy prog still attached to OUT interface.
    It is because signal handler checks if the programs are the same that
    we had attached. But while fetching dummy_prog_id, current code uses
    prog_fd instead of dummy_prog_fd. This patch passes the correct fd.

    Fixes: 3b7a8ec2dec3 ("samples/bpf: Check the prog id before exiting")
    Signed-off-by: Prashant Bhole
    Acked-by: Toke Høiland-Jørgensen
    Signed-off-by: Daniel Borkmann

    Prashant Bhole
     

22 Jun, 2019

2 commits

  • Minor SPDX change conflict.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Pull still more SPDX updates from Greg KH:
    "Another round of SPDX updates for 5.2-rc6

    Here is what I am guessing is going to be the last "big" SPDX update
    for 5.2. It contains all of the remaining GPLv2 and GPLv2+ updates
    that were "easy" to determine by pattern matching. The ones after this
    are going to be a bit more difficult and the people on the spdx list
    will be discussing them on a case-by-case basis now.

    Another 5000+ files are fixed up, so our overall totals are:
    Files checked: 64545
    Files with SPDX: 45529

    Compared to the 5.1 kernel which was:
    Files checked: 63848
    Files with SPDX: 22576

    This is a huge improvement.

    Also, we deleted another 20000 lines of boilerplate license crud,
    always nice to see in a diffstat"

    * tag 'spdx-5.2-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/spdx: (65 commits)
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 507
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 506
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 505
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 504
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 503
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 502
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 501
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 499
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 498
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 497
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 496
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 495
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 491
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 490
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 489
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 488
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 487
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 486
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 485
    ...

    Linus Torvalds
     

20 Jun, 2019

1 commit

  • Alexei Starovoitov says:

    ====================
    pull-request: bpf-next 2019-06-19

    The following pull-request contains BPF updates for your *net-next* tree.

    The main changes are:

    1) new SO_REUSEPORT_DETACH_BPF setsocktopt, from Martin.

    2) BTF based map definition, from Andrii.

    3) support bpf_map_lookup_elem for xskmap, from Jonathan.

    4) bounded loops and scalar precision logic in the verifier, from Alexei.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     

19 Jun, 2019

1 commit

  • Based on 1 normalized pattern(s):

    gplv2

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-only

    has been chosen to replace the boilerplate/reference in 58 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Enrico Weigelt
    Reviewed-by: Allison Randal
    Reviewed-by: Kate Stewart
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190604081207.556988620@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     

18 Jun, 2019

4 commits

  • Honestly all the conflicts were simple overlapping changes,
    nothing really interesting to report.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Pull networking fixes from David Miller:
    "Lots of bug fixes here:

    1) Out of bounds access in __bpf_skc_lookup, from Lorenz Bauer.

    2) Fix rate reporting in cfg80211_calculate_bitrate_he(), from John
    Crispin.

    3) Use after free in psock backlog workqueue, from John Fastabend.

    4) Fix source port matching in fdb peer flow rule of mlx5, from Raed
    Salem.

    5) Use atomic_inc_not_zero() in fl6_sock_lookup(), from Eric Dumazet.

    6) Network header needs to be set for packet redirect in nfp, from
    John Hurley.

    7) Fix udp zerocopy refcnt, from Willem de Bruijn.

    8) Don't assume linear buffers in vxlan and geneve error handlers,
    from Stefano Brivio.

    9) Fix TOS matching in mlxsw, from Jiri Pirko.

    10) More SCTP cookie memory leak fixes, from Neil Horman.

    11) Fix VLAN filtering in rtl8366, from Linus Walluij.

    12) Various TCP SACK payload size and fragmentation memory limit fixes
    from Eric Dumazet.

    13) Use after free in pneigh_get_next(), also from Eric Dumazet.

    14) LAPB control block leak fix from Jeremy Sowden"

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (145 commits)
    lapb: fixed leak of control-blocks.
    tipc: purge deferredq list for each grp member in tipc_group_delete
    ax25: fix inconsistent lock state in ax25_destroy_timer
    neigh: fix use-after-free read in pneigh_get_next
    tcp: fix compile error if !CONFIG_SYSCTL
    hv_sock: Suppress bogus "may be used uninitialized" warnings
    be2net: Fix number of Rx queues used for flow hashing
    net: handle 802.1P vlan 0 packets properly
    tcp: enforce tcp_min_snd_mss in tcp_mtu_probing()
    tcp: add tcp_min_snd_mss sysctl
    tcp: tcp_fragment() should apply sane memory limits
    tcp: limit payload size of sacked skbs
    Revert "net: phylink: set the autoneg state in phylink_phy_change"
    bpf: fix nested bpf tracepoints with per-cpu data
    bpf: Fix out of bounds memory access in bpf_sk_storage
    vsock/virtio: set SOCK_DONE on peer shutdown
    net: dsa: rtl8366: Fix up VLAN filtering
    net: phylink: set the autoneg state in phylink_phy_change
    net: add high_order_alloc_disable sysctl/static key
    tcp: add tcp_tx_skb_cache sysctl
    ...

    Linus Torvalds
     
  • Currently, header inclusion in each file is inconsistent.
    For example, "libbpf.h" header is included as multiple ways.

    #include "bpf/libbpf.h"
    #include "libbpf.h"

    Due to commit b552d33c80a9 ("samples/bpf: fix include path
    in Makefile"), $(srctree)/tools/lib/bpf/ path had been included
    during build, path "bpf/" in header isn't necessary anymore.

    This commit removes path "bpf/" in header inclusion.

    Signed-off-by: Daniel T. Lee
    Signed-off-by: Daniel Borkmann

    Daniel T. Lee
     
  • Due to recent change of include path at commit b552d33c80a9
    ("samples/bpf: fix include path in Makefile"), some of the
    previous include options became unnecessary.

    This commit removes duplicated include options in Makefile.

    Signed-off-by: Daniel T. Lee
    Signed-off-by: Daniel Borkmann

    Daniel T. Lee
     

15 Jun, 2019

1 commit

  • Recent commit included libbpf.h in selftests/bpf/bpf_util.h.
    Since some samples use bpf_util.h and samples/bpf/Makefile doesn't
    have libbpf.h path included, build was failing. Let's add the path
    in samples/bpf/Makefile.

    Signed-off-by: Prashant Bhole
    Signed-off-by: Daniel Borkmann

    Prashant Bhole
     

11 Jun, 2019

1 commit

  • Quentin reports that commit 07c3bbdb1a9b ("samples: bpf: print
    a warning about headers_install") is producing the false
    positive when make is invoked locally, from the samples/bpf/
    directory.

    When make is run locally it hits the "all" target, which
    will recursively invoke make through the full build system.

    Speed up the "local" run which doesn't actually build anything,
    and avoid false positives by skipping all the probes if not in
    kbuild environment (cover both the new warning and the BTF
    probes).

    Reported-by: Quentin Monnet
    Signed-off-by: Jakub Kicinski
    Reviewed-by: Quentin Monnet
    Signed-off-by: Alexei Starovoitov

    Jakub Kicinski
     

08 Jun, 2019

2 commits

  • Daniel Borkmann says:

    ====================
    pull-request: bpf 2019-06-07

    The following pull-request contains BPF updates for your *net* tree.

    The main changes are:

    1) Fix several bugs in riscv64 JIT code emission which forgot to clear high
    32-bits for alu32 ops, from Björn and Luke with selftests covering all
    relevant BPF alu ops from Björn and Jiong.

    2) Two fixes for UDP BPF reuseport that avoid calling the program in case of
    __udp6_lib_err and UDP GRO which broke reuseport_select_sock() assumption
    that skb->data is pointing to transport header, from Martin.

    3) Two fixes for BPF sockmap: a use-after-free from sleep in psock's backlog
    workqueue, and a missing restore of sk_write_space when psock gets dropped,
    from Jakub and John.

    4) Fix unconnected UDP sendmsg hook API which is insufficient as-is since it
    breaks standard applications like DNS if reverse NAT is not performed upon
    receive, from Daniel.

    5) Fix an out-of-bounds read in __bpf_skc_lookup which in case of AF_INET6
    fails to verify that the length of the tuple is long enough, from Lorenz.

    6) Fix libbpf's libbpf__probe_raw_btf to return an fd instead of 0/1 (for
    {un,}successful probe) as that is expected to be propagated as an fd to
    load_sk_storage_btf() and thus closing the wrong descriptor otherwise,
    from Michal.

    7) Fix bpftool's JSON output for the case when a lookup fails, from Krzesimir.

    8) Minor misc fixes in docs, samples and selftests, from various others.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Some ISDN files that got removed in net-next had some changes
    done in mainline, take the removals.

    Signed-off-by: David S. Miller

    David S. Miller
     

06 Jun, 2019

1 commit

  • It seems like periodically someone posts patches to "fix"
    header includes. The issue is that samples expect the
    include path to have the uAPI headers (from usr/) first,
    and then tools/ headers, so that locally installed uAPI
    headers take precedence. This means that if users didn't
    run headers_install they will see all sort of strange
    compilation errors, e.g.:

    HOSTCC samples/bpf/test_lru_dist
    samples/bpf/test_lru_dist.c:39:8: error: redefinition of ‘struct list_head’
    struct list_head {
    ^~~~~~~~~
    In file included from samples/bpf/test_lru_dist.c:9:0:
    ../tools/include/linux/types.h:69:8: note: originally defined here
    struct list_head {
    ^~~~~~~~~

    Try to detect this situation, and print a helpful warning.

    v2: just use HOSTCC (Jiong).

    Signed-off-by: Jakub Kicinski
    Reviewed-by: Quentin Monnet
    Acked-by: Martin KaFai Lau
    Signed-off-by: Daniel Borkmann

    Jakub Kicinski
     

05 Jun, 2019

1 commit

  • Based on 1 normalized pattern(s):

    this program is free software you can redistribute it and or modify
    it under the terms of version 2 of the gnu general public license as
    published by the free software foundation this program is
    distributed in the hope that it will be useful but without any
    warranty without even the implied warranty of merchantability or
    fitness for a particular purpose see the gnu general public license
    for more details

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-only

    has been chosen to replace the boilerplate/reference in 64 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Alexios Zavras
    Reviewed-by: Allison Randal
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190529141901.894819585@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     

04 Jun, 2019

1 commit


01 Jun, 2019

2 commits

  • Adds more stats to HBM, including average cwnd and rtt of all TCP
    flows, percents of packets that are ecn ce marked and distribution
    of return values.

    Signed-off-by: Lawrence Brakmo
    Signed-off-by: Alexei Starovoitov

    brakmo
     
  • Update hbm_out_kern.c to support returning cn notifications.
    Also updates relevant files to allow disabling cn notifications.

    Signed-off-by: Lawrence Brakmo
    Signed-off-by: Alexei Starovoitov

    brakmo
     

31 May, 2019

1 commit

  • Based on 1 normalized pattern(s):

    this program is free software you can redistribute it and or modify
    it under the terms of version 2 of the gnu general public license as
    published by the free software foundation

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-only

    has been chosen to replace the boilerplate/reference in 107 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Allison Randal
    Reviewed-by: Richard Fontana
    Reviewed-by: Steve Winslow
    Reviewed-by: Alexios Zavras
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190528171438.615055994@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     

29 May, 2019

1 commit

  • Convert test_cgrp2_attach2 example into a proper test_cgroup_attach
    kselftest. It's better because we do run kselftest on a constant
    basis, so there are better chances to spot a potential regression.

    Also make it slightly less verbose to conform kselftests output style.

    Output example:
    $ ./test_cgroup_attach
    #override:PASS
    #multi:PASS
    test_cgroup_attach:PASS

    Signed-off-by: Roman Gushchin
    Acked-by: Yonghong Song
    Signed-off-by: Alexei Starovoitov

    Roman Gushchin
     

28 May, 2019

1 commit


25 May, 2019

2 commits


21 May, 2019

2 commits

  • GCC 9 fails to calculate the size of local constant strings and produces a
    false positive:

    samples/bpf/task_fd_query_user.c: In function ‘test_debug_fs_uprobe’:
    samples/bpf/task_fd_query_user.c:242:67: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size 215 [-Wformat-truncation=]
    242 | snprintf(buf, sizeof(buf), "/sys/kernel/debug/tracing/events/%ss/%s/id",
    | ^~
    243 | event_type, event_alias);
    | ~~~~~~~~~~~
    samples/bpf/task_fd_query_user.c:242:2: note: ‘snprintf’ output between 45 and 300 bytes into a destination of size 256
    242 | snprintf(buf, sizeof(buf), "/sys/kernel/debug/tracing/events/%ss/%s/id",
    | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    243 | event_type, event_alias);
    | ~~~~~~~~~~~~~~~~~~~~~~~~

    Workaround this by lowering the buffer size to a reasonable value.
    Related GCC Bugzilla: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83431

    Signed-off-by: Matteo Croce
    Signed-off-by: Daniel Borkmann

    Matteo Croce
     
  • If the trace for read is larger than 4096, the return
    value sz will be 4096. This results in off-by-one error
    on buf:

    static char buf[4096];
    ssize_t sz;

    sz = read(trace_fd, buf, sizeof(buf));
    if (sz > 0) {
    buf[sz] = 0;
    puts(buf);
    }

    Signed-off-by: Chang-Hsien Tsai
    Signed-off-by: Daniel Borkmann

    Chang-Hsien Tsai
     

10 May, 2019

1 commit

  • Pull rdma updates from Jason Gunthorpe:
    "This has been a smaller cycle than normal. One new driver was
    accepted, which is unusual, and at least one more driver remains in
    review on the list.

    Summary:

    - Driver fixes for hns, hfi1, nes, rxe, i40iw, mlx5, cxgb4,
    vmw_pvrdma

    - Many patches from MatthewW converting radix tree and IDR users to
    use xarray

    - Introduction of tracepoints to the MAD layer

    - Build large SGLs at the start for DMA mapping and get the driver to
    split them

    - Generally clean SGL handling code throughout the subsystem

    - Support for restricting RDMA devices to net namespaces for
    containers

    - Progress to remove object allocation boilerplate code from drivers

    - Change in how the mlx5 driver shows representor ports linked to VFs

    - mlx5 uapi feature to access the on chip SW ICM memory

    - Add a new driver for 'EFA'. This is HW that supports user space
    packet processing through QPs in Amazon's cloud"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma: (186 commits)
    RDMA/ipoib: Allow user space differentiate between valid dev_port
    IB/core, ipoib: Do not overreact to SM LID change event
    RDMA/device: Don't fire uevent before device is fully initialized
    lib/scatterlist: Remove leftover from sg_page_iter comment
    RDMA/efa: Add driver to Kconfig/Makefile
    RDMA/efa: Add the efa module
    RDMA/efa: Add EFA verbs implementation
    RDMA/efa: Add common command handlers
    RDMA/efa: Implement functions that submit and complete admin commands
    RDMA/efa: Add the ABI definitions
    RDMA/efa: Add the com service API definitions
    RDMA/efa: Add the efa_com.h file
    RDMA/efa: Add the efa.h header file
    RDMA/efa: Add EFA device definitions
    RDMA: Add EFA related definitions
    RDMA/umem: Remove hugetlb flag
    RDMA/bnxt_re: Use core helpers to get aligned DMA address
    RDMA/i40iw: Use core helpers to get aligned DMA address within a supported page size
    RDMA/verbs: Add a DMA iterator to return aligned contiguous memory blocks
    RDMA/umem: Add API to find best driver supported page size in an MR
    ...

    Linus Torvalds