1. 21 Jun, 2017 16 commits
  2. 13 Jun, 2017 19 commits
  3. 12 Jun, 2017 5 commits
    • Kalle Valo's avatar
      Merge tag 'iwlwifi-next-for-kalle-2017-06-06' of... · 83368904
      Kalle Valo authored
      Merge tag 'iwlwifi-next-for-kalle-2017-06-06' of git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-next
      
      First batch of iwlwifi driver patches 4.13
      
      * Loads of FW API documentation improvements (for tools and htmldoc);
      * Continued work for the new A000 family;
      * Bumped the maximum supported FW API to 31;
      * Improve the differentiation between 8000, 9000 and A000 families;
      * A lot of fixes and cleanups here and there;
      
      kvalo: There were conflicts iwl_mvm_stop_device() and
      iwl_mvm_tcool_set_cur_state(). The former was easy but latter needed more
      thought. Apparently the mutex was taken too late, so I fixed so that the mutex
      is taken first and then check for iwl_mvm_firmware_running().
      83368904
    • David S. Miller's avatar
      Merge tag 'wireless-drivers-next-for-davem-2017-06-12' of... · 63a2f310
      David S. Miller authored
      Merge tag 'wireless-drivers-next-for-davem-2017-06-12' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next
      
      Kalle Valo says:
      
      ====================
      wireless-drivers-next patches for 4.13
      
      The first pull request for 4.13. We have a new driver qtnfmac, but
      also rsi driver got a support for new firmware and supporting ath10k
      SDIO devices was started.
      
      Major changes:
      
      ath10k
      
      * add initial SDIO support (still work in progress)
      
      rsi
      
      * new loading for the new firmware version
      
      rtlwifi
      
      * final patches for the new btcoex support
      
      rt2x00
      
      * add device ID for Epson WN7512BEP
      
      qtnfmac
      
      * new driver for Quantenna QSR10G chipsets
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      63a2f310
    • David S. Miller's avatar
      Merge branch 'udp-reduce-cache-pressure' · 073cf9e2
      David S. Miller authored
      Paolo Abeni says:
      
      ====================
      udp: reduce cache pressure
      
      In the most common use case, many skb fields are not used by recvmsg(), and
      the few ones actually accessed lays on cold cachelines, which leads to several
      cache miss per packet.
      
      This patch series attempts to reduce such misses with different strategies:
      * caching the interesting fields in the scratched space
      * avoid accessing at all uninteresting fields
      * prefetching
      
      Tested using the udp_sink program by Jesper[1] as the receiver, an h/w l4 rx
      hash on the ingress nic, so that the number of ingress nic rx queues hit by the
      udp traffic could be controlled via ethtool -L.
      
      The udp_sink program was bound to the first idle cpu, to get more
      stable numbers.
      
      On a single numa node receiver:
      
      nic rx queues           vanilla                 patched kernel      delta
      1                       1850 kpps               1850 kpps           0%
      2                       2370 kpps               2700 kpps           13.9%
      16                      2000 kpps               2220 kpps           11%
      
      [1] https://github.com/netoptimizer/network-testing/blob/master/src/udp_sink.c
      
      v1 -> v2:
        - replaced secpath_reset() with skb_release_head_state()
        - changed udp_dev_scratch fields types to u{32,16} variant,
          replaced bitfield with bool
      
      v2 -> v3:
        - no changes, tested against apachebench for performances regression
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      073cf9e2
    • Paolo Abeni's avatar
      udp: try to avoid 2 cache miss on dequeue · b65ac446
      Paolo Abeni authored
      when udp_recvmsg() is executed, on x86_64 and other archs, most skb
      fields are on cold cachelines.
      If the skb are linear and the kernel don't need to compute the udp
      csum, only a handful of skb fields are required by udp_recvmsg().
      Since we already use skb->dev_scratch to cache hot data, and
      there are 32 bits unused on 64 bit archs, use such field to cache
      as much data as we can, and try to prefetch on dequeue the relevant
      fields that are left out.
      
      This can save up to 2 cache miss per packet.
      
      v1 -> v2:
        - changed udp_dev_scratch fields types to u{32,16} variant,
          replaced bitfiled with bool
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      Acked-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b65ac446
    • Paolo Abeni's avatar
      udp: avoid a cache miss on dequeue · 0a463c78
      Paolo Abeni authored
      Since UDP no more uses sk->destructor, we can clear completely
      the skb head state before enqueuing. Amend and use
      skb_release_head_state() for that.
      
      All head states share a single cacheline, which is not
      normally used/accesses on dequeue. We can avoid entirely accessing
      such cacheline implementing and using in the UDP code a specialized
      skb free helper which ignores the skb head state.
      
      This saves a cacheline miss at skb deallocation time.
      
      v1 -> v2:
        replaced secpath_reset() with skb_release_head_state()
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      Acked-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0a463c78