1. 31 10月, 2019 6 次提交
    • J
      tipc: add smart nagle feature · c0bceb97
      Jon Maloy 提交于
      We introduce a feature that works like a combination of TCP_NAGLE and
      TCP_CORK, but without some of the weaknesses of those. In particular,
      we will not observe long delivery delays because of delayed acks, since
      the algorithm itself decides if and when acks are to be sent from the
      receiving peer.
      
      - The nagle property as such is determined by manipulating a new
        'maxnagle' field in struct tipc_sock. If certain conditions are met,
        'maxnagle' will define max size of the messages which can be bundled.
        If it is set to zero no messages are ever bundled, implying that the
        nagle property is disabled.
      - A socket with the nagle property enabled enters nagle mode when more
        than 4 messages have been sent out without receiving any data message
        from the peer.
      - A socket leaves nagle mode whenever it receives a data message from
        the peer.
      
      In nagle mode, messages smaller than 'maxnagle' are accumulated in the
      socket write queue. The last buffer in the queue is marked with a new
      'ack_required' bit, which forces the receiving peer to send a CONN_ACK
      message back to the sender upon reception.
      
      The accumulated contents of the write queue is transmitted when one of
      the following events or conditions occur.
      
      - A CONN_ACK message is received from the peer.
      - A data message is received from the peer.
      - A SOCK_WAKEUP pseudo message is received from the link level.
      - The write queue contains more than 64 1k blocks of data.
      - The connection is being shut down.
      - There is no CONN_ACK message to expect. I.e., there is currently
        no outstanding message where the 'ack_required' bit was set. As a
        consequence, the first message added after we enter nagle mode
        is always sent directly with this bit set.
      
      This new feature gives a 50-100% improvement of throughput for small
      (i.e., less than MTU size) messages, while it might add up to one RTT
      to latency time when the socket is in nagle mode.
      Acked-by: NYing Xue <ying.xue@windreiver.com>
      Signed-off-by: NJon Maloy <jon.maloy@ericsson.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      c0bceb97
    • D
      Merge branch 'mlxsw-Update-firmware-version' · 6c814e8c
      David S. Miller 提交于
      Ido Schimmel says:
      
      ====================
      mlxsw: Update firmware version
      
      This patch set updates the firmware version for Spectrum-1 and enforces
      a firmware version for Spectrum-2.
      
      The version adds support for querying port module type. It will be used
      by a followup patch set from Jiri to make port split code more generic.
      
      Patch #1 increases the size of an existing register in order to be
      compatible with the new firmware version. In the future the firmware
      will assign default values to fields not specified by the driver.
      
      Patch #2 temporarily increases the PCI reset timeout for SN3800 systems.
      Note that in normal cases the driver will need to wait no longer than 5
      seconds for the device to become ready following reset command.
      
      Patch #3 bumps the firmware version for Spectrum-1.
      
      Patch #4 enforces a minimum firmware version for Spectrum-2.
      
      v2:
      * Added patch #2
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      6c814e8c
    • I
      mlxsw: Enforce firmware version for Spectrum-2 · a72afb68
      Ido Schimmel 提交于
      In a similar fashion to Spectrum-1, enforce a specific firmware version
      for Spectrum-2 so that the driver and firmware are always in sync with
      regards to new features.
      Signed-off-by: NIdo Schimmel <idosch@mellanox.com>
      Reviewed-by: NPetr Machata <petrm@mellanox.com>
      Acked-by: NJiri Pirko <jiri@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      a72afb68
    • I
      mlxsw: Bump firmware version to 13.2000.2308 · 5fd2ef46
      Ido Schimmel 提交于
      The version adds support for querying port module type. It will be used
      by a followup patch set from Jiri to make port split code more generic.
      Signed-off-by: NIdo Schimmel <idosch@mellanox.com>
      Acked-by: NJiri Pirko <jiri@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5fd2ef46
    • I
      mlxsw: pci: Increase PCI reset timeout for SN3800 systems · ff298839
      Ido Schimmel 提交于
      SN3800 Spectrum-2 based systems have gearboxes that need to be
      initialized by the firmware during its initialization flow. In certain
      cases, the firmware might need to flash these gearboxes, which is
      currently a time-consuming process.
      
      In newer firmware versions, the firmware will not signal to the driver
      that it is ready until the gearboxes are flashed. Increase the PCI reset
      timeout for these situations. In normal cases, the driver will need to
      wait no longer than 5 seconds.
      Signed-off-by: NIdo Schimmel <idosch@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ff298839
    • I
      mlxsw: reg: Increase size of MPAR register · 5075066a
      Ido Schimmel 提交于
      In new firmware versions this register is extended with a sampling rate
      for Spectrum-2 and future ASICs.
      
      Increase the size of the register to ensure the field is initialized to
      0 which means every packet is mirrored.
      Signed-off-by: NIdo Schimmel <idosch@mellanox.com>
      Reviewed-by: NPetr Machata <petrm@mellanox.com>
      Acked-by: NJiri Pirko <jiri@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5075066a
  2. 30 10月, 2019 34 次提交