1. 25 Jul, 2018 8 commits
    • Toshiaki Makita's avatar
      virtio_net: Add XDP related stats · 5b8f3c8d
      Toshiaki Makita authored
      Add counters below:
      * Tx
       - xdp_tx: frames sent by ndo_xdp_xmit or XDP_TX.
       - xdp_tx_drops: dropped frames out of xdp_tx ones.
      * Rx
       - xdp_packets: frames went through xdp program.
       - xdp_tx: XDP_TX frames.
       - xdp_redirects: XDP_REDIRECT frames.
       - xdp_drops: any dropped frames out of xdp_packets ones.
      Signed-off-by: default avatarToshiaki Makita <makita.toshiaki@lab.ntt.co.jp>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5b8f3c8d
    • Toshiaki Makita's avatar
      virtio_net: Factor out the logic to determine xdp sq · 2a43565c
      Toshiaki Makita authored
      Make sure to use the same logic in all places to determine xdp sq. This
      is useful for xdp counters which the following commit will introduce as
      well.
      Signed-off-by: default avatarToshiaki Makita <makita.toshiaki@lab.ntt.co.jp>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2a43565c
    • Toshiaki Makita's avatar
      virtio_net: Make drop counter per-queue · 2c4a2f7d
      Toshiaki Makita authored
      Since when XDP was introduced, drop counter has been able to be updated
      much more frequently than before, as XDP_DROP increments the counter.
      Thus for performance analysis per-queue drop counter would be useful.
      
      Also this avoids cache contention and race on updating the counter. It
      is currently racy because napi handlers read-modify-write it without any
      locks.
      
      There are more counters in dev->stats that are racy, but I left them
      per-device, because they are rarely updated and does not worth being
      per-queue counters IMHO. To fix them we need atomic ops or some kind of
      locks.
      Signed-off-by: default avatarToshiaki Makita <makita.toshiaki@lab.ntt.co.jp>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2c4a2f7d
    • Toshiaki Makita's avatar
      virtio_net: Use temporary storage for accounting rx stats · a0929a44
      Toshiaki Makita authored
      The purpose is to keep receive_buf arguments simple when more per-queue
      counter items are added later.
      Also XDP_TX related sq counters will be updated in the following changes
      so create a container struct virtnet_rx_stats which will includes both
      rq and sq statistics. For now it only covers rq stats.
      Signed-off-by: default avatarToshiaki Makita <makita.toshiaki@lab.ntt.co.jp>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a0929a44
    • Toshiaki Makita's avatar
      virtio_net: Fix incosistent received bytes counter · 7d9d60fd
      Toshiaki Makita authored
      When received packets are dropped in virtio_net driver, received packets
      counter is incremented but bytes counter is not.
      As a result, for instance if we drop all packets by XDP, only received
      is counted and bytes stays 0, which looks inconsistent.
      IMHO received packets/bytes should be counted if packets are produced by
      the hypervisor, like what common NICs on physical machines are doing.
      So fix the bytes counter.
      Signed-off-by: default avatarToshiaki Makita <makita.toshiaki@lab.ntt.co.jp>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7d9d60fd
    • David S. Miller's avatar
    • Linus Torvalds's avatar
      Merge tag 'mips_fixes_4.18_4' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux · 9981b4fb
      Linus Torvalds authored
      Pull MIPS fixes from Paul Burton:
       "A couple more MIPS fixes for 4.18:
      
         - Fix an off-by-one in reporting PCI resource sizes to userland which
           regressed in v3.12.
      
         - Fix writes to DDR controller registers used to flush write buffers,
           which regressed with some refactoring in v4.2"
      
      * tag 'mips_fixes_4.18_4' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux:
        MIPS: ath79: fix register address in ath79_ddr_wb_flush()
        MIPS: Fix off-by-one in pci_resource_to_user()
      9981b4fb
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 07230906
      Linus Torvalds authored
      Pull networking fixes from David Miller:
      
       1) Handle stations tied to AP_VLANs properly during mac80211 hw
          reconfig. From Manikanta Pubbisetty.
      
       2) Fix jump stack depth validation in nf_tables, from Taehee Yoo.
      
       3) Fix quota handling in aRFS flow expiration of mlx5 driver, from Eran
          Ben Elisha.
      
       4) Exit path handling fix in powerpc64 BPF JIT, from Daniel Borkmann.
      
       5) Use ptr_ring_consume_bh() in page pool code, from Tariq Toukan.
      
       6) Fix cached netdev name leak in nf_tables, from Florian Westphal.
      
       7) Fix memory leaks on chain rename, also from Florian Westphal.
      
       8) Several fixes to DCTCP congestion control ACK handling, from Yuchunk
          Cheng.
      
       9) Missing rcu_read_unlock() in CAIF protocol code, from Yue Haibing.
      
      10) Fix link local address handling with VRF, from David Ahern.
      
      11) Don't clobber 'err' on a successful call to __skb_linearize() in
          skb_segment(). From Eric Dumazet.
      
      12) Fix vxlan fdb notification races, from Roopa Prabhu.
      
      13) Hash UDP fragments consistently, from Paolo Abeni.
      
      14) If TCP receives lots of out of order tiny packets, we do really
          silly stuff. Make the out-of-order queue ending more robust to this
          kind of behavior, from Eric Dumazet.
      
      15) Don't leak netlink dump state in nf_tables, from Florian Westphal.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (76 commits)
        net: axienet: Fix double deregister of mdio
        qmi_wwan: fix interface number for DW5821e production firmware
        ip: in cmsg IP(V6)_ORIGDSTADDR call pskb_may_pull
        bnx2x: Fix invalid memory access in rss hash config path.
        net/mlx4_core: Save the qpn from the input modifier in RST2INIT wrapper
        r8169: restore previous behavior to accept BIOS WoL settings
        cfg80211: never ignore user regulatory hint
        sock: fix sg page frag coalescing in sk_alloc_sg
        netfilter: nf_tables: move dumper state allocation into ->start
        tcp: add tcp_ooo_try_coalesce() helper
        tcp: call tcp_drop() from tcp_data_queue_ofo()
        tcp: detect malicious patterns in tcp_collapse_ofo_queue()
        tcp: avoid collapses in tcp_prune_queue() if possible
        tcp: free batches of packets in tcp_prune_ofo_queue()
        ip: hash fragments consistently
        ipv6: use fib6_info_hold_safe() when necessary
        can: xilinx_can: fix power management handling
        can: xilinx_can: fix incorrect clear of non-processed interrupts
        can: xilinx_can: fix RX overflow interrupt not being enabled
        can: xilinx_can: keep only 1-2 frames in TX FIFO to fix TX accounting
        ...
      07230906
  2. 24 Jul, 2018 32 commits