1. 25 5月, 2018 1 次提交
    • H
      net/dcb: Add dcbnl buffer attribute · e549f6f9
      Huy Nguyen 提交于
      In this patch, we add dcbnl buffer attribute to allow user
      change the NIC's buffer configuration such as priority
      to buffer mapping and buffer size of individual buffer.
      
      This attribute combined with pfc attribute allows advanced user to
      fine tune the qos setting for specific priority queue. For example,
      user can give dedicated buffer for one or more priorities or user
      can give large buffer to certain priorities.
      
      The dcb buffer configuration will be controlled by lldptool.
      lldptool -T -i eth2 -V BUFFER prio 0,2,5,7,1,2,3,6
        maps priorities 0,1,2,3,4,5,6,7 to receive buffer 0,2,5,7,1,2,3,6
      lldptool -T -i eth2 -V BUFFER size 87296,87296,0,87296,0,0,0,0
        sets receive buffer size for buffer 0,1,2,3,4,5,6,7 respectively
      
      After discussion on mailing list with Jakub, Jiri, Ido and John, we agreed to
      choose dcbnl over devlink interface since this feature is intended to set
      port attributes which are governed by the netdev instance of that port, where
      devlink API is more suitable for global ASIC configurations.
      
      We present an use case scenario where dcbnl buffer attribute configured
      by advance user helps reduce the latency of messages of different sizes.
      
      Scenarios description:
      On ConnectX-5, we run latency sensitive traffic with
      small/medium message sizes ranging from 64B to 256KB and bandwidth sensitive
      traffic with large messages sizes 512KB and 1MB. We group small, medium,
      and large message sizes to their own pfc enables priorities as follow.
        Priorities 1 & 2 (64B, 256B and 1KB)
        Priorities 3 & 4 (4KB, 8KB, 16KB, 64KB, 128KB and 256KB)
        Priorities 5 & 6 (512KB and 1MB)
      
      By default, ConnectX-5 maps all pfc enabled priorities to a single
      lossless fixed buffer size of 50% of total available buffer space. The
      other 50% is assigned to lossy buffer. Using dcbnl buffer attribute,
      we create three equal size lossless buffers. Each buffer has 25% of total
      available buffer space. Thus, the lossy buffer size reduces to 25%. Priority
      to lossless  buffer mappings are set as follow.
        Priorities 1 & 2 on lossless buffer #1
        Priorities 3 & 4 on lossless buffer #2
        Priorities 5 & 6 on lossless buffer #3
      
      We observe improvements in latency for small and medium message sizes
      as follows. Please note that the large message sizes bandwidth performance is
      reduced but the total bandwidth remains the same.
        256B message size (42 % latency reduction)
        4K message size (21% latency reduction)
        64K message size (16% latency reduction)
      
      CC: Ido Schimmel <idosch@idosch.org>
      CC: Jakub Kicinski <jakub.kicinski@netronome.com>
      CC: Jiri Pirko <jiri@resnulli.us>
      CC: Or Gerlitz <gerlitz.or@gmail.com>
      CC: Parav Pandit <parav@mellanox.com>
      CC: Aron Silverton <aron.silverton@oracle.com>
      Signed-off-by: NHuy Nguyen <huyn@mellanox.com>
      Reviewed-by: NParav Pandit <parav@mellanox.com>
      Signed-off-by: NSaeed Mahameed <saeedm@mellanox.com>
      e549f6f9
  2. 10 8月, 2017 1 次提交
  3. 22 5月, 2017 1 次提交
  4. 18 4月, 2017 1 次提交
  5. 14 4月, 2017 1 次提交
  6. 04 12月, 2016 1 次提交
  7. 09 10月, 2015 1 次提交
    • P
      net/dcb: make dcbnl.c explicitly non-modular · 36b9ad80
      Paul Gortmaker 提交于
      The Kconfig currently controlling compilation of this code is:
      
      net/dcb/Kconfig:config DCB
      net/dcb/Kconfig:        bool "Data Center Bridging support"
      
      ...meaning that it currently is not being built as a module by anyone.
      
      Lets remove the modular code that is essentially orphaned, so that
      when reading the driver there is no doubt it is builtin-only.
      
      Since module_init translates to device_initcall in the non-modular
      case, the init ordering remains unchanged with this commit.  We can
      change to one of the other priority initcalls (subsys?) at any later
      date, if desired.
      
      We also delete the MODULE_LICENSE tag etc. since all that information
      is (or is now) already contained at the top of the file in the comments.
      
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Or Gerlitz <ogerlitz@mellanox.com>
      Cc: Anish Bhatt <anish@chelsio.com>
      Cc: John Fastabend <john.r.fastabend@intel.com>
      Cc: Shani Michaeli <shanim@mellanox.com>
      Cc: netdev@vger.kernel.org
      Signed-off-by: NPaul Gortmaker <paul.gortmaker@windriver.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      36b9ad80
  8. 07 3月, 2015 1 次提交
  9. 17 11月, 2014 1 次提交
    • A
      dcbnl : Disable software interrupts before taking dcb_lock · 52cff74e
      Anish Bhatt 提交于
      Solves possible lockup issues that can be seen from firmware DCB agents calling
      into the DCB app api.
      
      DCB firmware event queues can be tied in with NAPI so that dcb events are
      generated in softIRQ context. This can results in calls to dcb_*app()
      functions which try to take the dcb_lock.
      
      If the the event triggers while we also have the dcb_lock because lldpad or
      some other agent happened to be issuing a  get/set command we could see a cpu
      lockup.
      
      This code was not originally written with firmware agents in mind, hence
      grabbing dcb_lock from softIRQ context was not considered.
      Signed-off-by: NAnish Bhatt <anish@chelsio.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      52cff74e
  10. 31 7月, 2014 1 次提交
  11. 18 7月, 2014 1 次提交
  12. 25 4月, 2014 1 次提交
  13. 15 1月, 2014 1 次提交
  14. 07 12月, 2013 1 次提交
  15. 22 3月, 2013 1 次提交
  16. 10 3月, 2013 1 次提交
    • M
      dcbnl: fix various netlink info leaks · 29cd8ae0
      Mathias Krause 提交于
      The dcb netlink interface leaks stack memory in various places:
      * perm_addr[] buffer is only filled at max with 12 of the 32 bytes but
        copied completely,
      * no in-kernel driver fills all fields of an IEEE 802.1Qaz subcommand,
        so we're leaking up to 58 bytes for ieee_ets structs, up to 136 bytes
        for ieee_pfc structs, etc.,
      * the same is true for CEE -- no in-kernel driver fills the whole
        struct,
      
      Prevent all of the above stack info leaks by properly initializing the
      buffers/structures involved.
      Signed-off-by: NMathias Krause <minipli@googlemail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      29cd8ae0
  17. 11 12月, 2012 1 次提交
  18. 19 11月, 2012 1 次提交
  19. 11 9月, 2012 1 次提交
  20. 11 7月, 2012 1 次提交
  21. 22 6月, 2012 1 次提交
  22. 14 6月, 2012 10 次提交
  23. 26 4月, 2012 1 次提交
  24. 05 4月, 2012 1 次提交
    • A
      net/dcb: Add an optional max rate attribute · 08f10aff
      Amir Vadai 提交于
      Although not specified in 8021Qaz spec, it could be useful to enable drivers
      whose HW supports setting a rate limit for an ETS TC. This patch adds this
      optional attribute to DCB netlink. To use it, drivers should implement and
      register the callbacks ieee_setmaxrate and ieee_getmaxrate. The units are 64
      bits long and specified in Kbps to enable usage over both slow and very fast
      networks.
      Signed-off-by: NAmir Vadai <amirv@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      08f10aff
  25. 02 4月, 2012 1 次提交
  26. 01 11月, 2011 1 次提交
  27. 07 10月, 2011 2 次提交
  28. 09 7月, 2011 1 次提交
  29. 06 7月, 2011 2 次提交
    • S
      dcbnl: Add CEE notification · 5b7f7626
      Shmulik Ravid 提交于
      This patch add an unsolicited notification of the DCBX negotiated
      parameters for the CEE flavor of the DCBX protocol. The notification
      message is identical to the aggregated CEE get operation and holds all
      the pertinent local and peer information. The notification routine is
      exported so it can be invoked by drivers supporting an embedded DCBX
      stack.
      Signed-off-by: NShmulik Ravid <shmulikr@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5b7f7626
    • S
      dcbnl: Aggregated CEE GET operation · 37cf4d1a
      Shmulik Ravid 提交于
      The following couple of patches add dcbnl an unsolicited notification of
      the the DCB configuration for the CEE flavor of the DCBX protocol. This
      is useful when the user-mode DCB client is not responsible for
      conducting and resolving the DCBX negotiation (either because the DCBX
      stack is embedded in the HW or the negotiation is handled by another
      agent in the host), but still needs to get the negotiated parameters.
      This functionality already exists for the IEEE flavor of the DCBX
      protocol and these patches add it to the older CEE flavor.
      
      The first patch extends the CEE attribute GET operation to include not
      only the peer information, but also all the pertinent local
      configuration (negotiated parameters). The second patch adds and export
      a CEE specific notification routine.
      Signed-off-by: NShmulik Ravid <shmulikr@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      37cf4d1a