1. 26 Mar, 2017 6 commits
  2. 25 Mar, 2017 22 commits
  3. 24 Mar, 2017 12 commits
    • Florian Fainelli's avatar
      net: dsa: bcm_sf2: Add missing OF_MDIO dependency · 68e49855
      Florian Fainelli authored
      bcm_sf2 does require the MDIO_BCM_UNIMAC driver which is now dependent
      on OF_MDIO but also internally uses of_mdio.c provided routines which
      are guarted with OF_MDIO.
      Reported-by: default avatarkbuild test robot <fengguang.wu@intel.com>
      Fixes: 90eff909 ("net: phy: Allow splitting MDIO bus/device support from PHYs")
      Signed-off-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      68e49855
    • David S. Miller's avatar
      Merge branch 'ipv6-sr-perf-improvements' · f106d164
      David S. Miller authored
      David Lebrun says:
      
      ====================
      Performances improvement for IPv6 Segment Routing
      
      This patch series improves the performances of IPv6 SR by optimizing skb head
      reallocation and extending the use of dst_cache. The overall performances improve
      by 35%.
      
      Before patch series (SRH encap):
      Result: OK: 7348320(c7347271+d1048) usec, 5000000 (1000byte,0frags)
        680427pps 5443Mb/sec (5443416000bps) errors: 0
      
      After patch series (SRH encap):
      Result: OK: 4774543(c4774084+d459) usec, 5000000 (1000byte,0frags)
        1047220pps 8377Mb/sec (8377760000bps) errors: 0
      
      Baseline for plain IPv6 forwarding:
      Result: OK: 4244144(c4243722+d422) usec, 5000000 (1000byte,0frags)
        1178093pps 9424Mb/sec (9424744000bps) errors: 0
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f106d164
    • David Lebrun's avatar
      ipv6: sr: use dst_cache in seg6_input · af4a2209
      David Lebrun authored
      We already use dst_cache in seg6_output, when handling locally generated
      packets. We extend it in seg6_input, to also handle forwarded packets, and avoid
      unnecessary fib lookups.
      
      Performances for SRH encapsulation before the patch:
      Result: OK: 5656067(c5655678+d388) usec, 5000000 (1000byte,0frags)
        884006pps 7072Mb/sec (7072048000bps) errors: 0
      
      Performances after the patch:
      Result: OK: 4774543(c4774084+d459) usec, 5000000 (1000byte,0frags)
        1047220pps 8377Mb/sec (8377760000bps) errors: 0
      Signed-off-by: default avatarDavid Lebrun <david.lebrun@uclouvain.be>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      af4a2209
    • David Lebrun's avatar
      ipv6: sr: expand skb head only if necessary · 19d5a26f
      David Lebrun authored
      To insert or encapsulate a packet with an SRH, we need a large enough skb
      headroom. Currently, we are using pskb_expand_head to inconditionally increase
      the size of the headroom by the amount needed by the SRH (and IPv6 header).
      If this reallocation is performed by another CPU than the one that initially
      allocated the skb, then when the initial CPU kfree the skb, it will enter the
      __slab_free slowpath, impacting performances.
      
      This patch replaces pskb_expand_head with skb_cow_head, that will reallocate the
      skb head only if the headroom is not large enough.
      
      Performances for SRH encapsulation before the patch:
      Result: OK: 7348320(c7347271+d1048) usec, 5000000 (1000byte,0frags)
        680427pps 5443Mb/sec (5443416000bps) errors: 0
      
      Performances after the patch:
      Result: OK: 5656067(c5655678+d388) usec, 5000000 (1000byte,0frags)
        884006pps 7072Mb/sec (7072048000bps) errors: 0
      Signed-off-by: default avatarDavid Lebrun <david.lebrun@uclouvain.be>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      19d5a26f
    • Geliang Tang's avatar
      net_sched: use setup_deferrable_timer · 3b1af93c
      Geliang Tang authored
      Use setup_deferrable_timer() instead of init_timer_deferrable() to
      simplify the code.
      Signed-off-by: default avatarGeliang Tang <geliangtang@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      3b1af93c
    • David S. Miller's avatar
      Merge branch 'mlxsw-query-resources' · ff41c7fa
      David S. Miller authored
      Jiri Pirko says:
      
      ====================
      mlxsw: Query resources from firmware
      
      Ido says:
      
      Some parts of the driver already use the resource query mechanism, but
      in other parts we still rely on hard coded values that may change over
      time.
      
      This patchset removes most of these remaining values and queries them
      from the firmware instead.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ff41c7fa
    • Ido Schimmel's avatar
      mlxsw: spectrum: Query cell size from firmware · 18281f2d
      Ido Schimmel authored
      As explained in the previous patch, the cell size may change in future
      devices, so query it from the firmware instead of hard coding it.
      Signed-off-by: default avatarIdo Schimmel <idosch@mellanox.com>
      Signed-off-by: default avatarJiri Pirko <jiri@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      18281f2d
    • Ido Schimmel's avatar
      mlxsw: spectrum: Refactor port buffer configuration · f417f04d
      Ido Schimmel authored
      The sizes and thresholds of the priority group (PG) buffers are
      configured in cells, which represent a specific amount of bytes.
      
      The cell size can vary in different devices, so it's better to query it
      from the firmware than hard coding it.
      
      Refactor the code dealing with this value into different functions, so
      that it will be easier to make the conversion in the next patch.
      Signed-off-by: default avatarIdo Schimmel <idosch@mellanox.com>
      Signed-off-by: default avatarJiri Pirko <jiri@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f417f04d
    • Ido Schimmel's avatar
      mlxsw: spectrum_buffers: Query shared buffer size from firmware · d3daae1b
      Ido Schimmel authored
      Instead of hard coding the size of the shared buffer in the driver,
      query it from the firmware, as it may change in future devices.
      Signed-off-by: default avatarIdo Schimmel <idosch@mellanox.com>
      Signed-off-by: default avatarJiri Pirko <jiri@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d3daae1b
    • Ido Schimmel's avatar
      mlxsw: Query maximum number of ports from firmware · 5ec2ee7d
      Ido Schimmel authored
      We currently hard code the maximum number of ports in the driver, but
      this may change in future devices, so query it from the firmware
      instead.
      
      Fallback to a maximum of 64 ports in case this number can't be queried.
      This should only happen in SwitchX-2 for which this number is correct.
      Signed-off-by: default avatarIdo Schimmel <idosch@mellanox.com>
      Signed-off-by: default avatarJiri Pirko <jiri@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5ec2ee7d
    • Ido Schimmel's avatar
      mlxsw: spectrum_router: Query number of LPM trees from firmware · 8494ab06
      Ido Schimmel authored
      Instead of hard coding the number of LPM trees in the driver, query it
      from the firmware, as it may change in future devices.
      Signed-off-by: default avatarIdo Schimmel <idosch@mellanox.com>
      Signed-off-by: default avatarJiri Pirko <jiri@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      8494ab06
    • David S. Miller's avatar
      Merge branch '40GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue · ba82427d
      David S. Miller authored
      Jeff Kirsher says:
      
      ====================
      40GbE Intel Wired LAN Driver Updates 2017-03-23
      
      This series contains updates to i40e and i40e.txt documentation.
      
      Jake provides all the changes in the series which are centered around
      ntuple filter fixes and additional support.  Fixed the current
      implementation of .set_rxnfc, where we were not reading the mask field
      for filter entries which was resulting in filters not behaving as
      expected and not working correctly.  When cleaning up after disabling
      flow director support, ensure that the default input set is correctly
      reprogrammed.  Since the hardware only supports a single input set for
      all flows of that type, the driver shall only allow the input set to
      change if there are no other configured filters for that flow type, so
      add support to detect when we can update the input set for each flow
      type.  Align the driver to other drivers to partition the ring_cookie
      value into 8bits of VF index, along with 32bits of queue number instead
      of using the user-def field.  Added support to parse the user-def field
      into a data structure format to allow future extensions of the user-def
      filed by keeping all the code that read/writes the field into a single
      location.  Added support for flexible payloads passed via ethtool
      user-def field.  We support a single flexible word (2byte) value per
      protocol type, and we handle the FLX_PIT register using a list of
      flexible entries so that each flow type may be configured separately.
      Enabled flow director filters for SCTPv4 packets using the ethtool
      ntuple interface to enable filters.  Updated the documentation on the
      i40e driver to include the newly added support to ntuple filters.
      Reduced complexity of a if-continue-else-break section of code by
      taking advantage of using hlist_for_each_entry_continue() instead.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ba82427d