1. 29 9月, 2020 5 次提交
  2. 11 9月, 2020 3 次提交
    • K
      net/smc: use separate work queues for different worker types · 22ef473d
      Karsten Graul 提交于
      There are 6 types of workers which exist per smc connection. 3 of them
      are used for listen and handshake processing, another 2 are used for
      close and abort processing and 1 is the tx worker that moves calls to
      sleeping functions into a worker.
      To prevent flooding of the system work queue when many connections are
      opened or closed at the same time (some pattern uperf implements), move
      those workers to one of 3 smc-specific work queues. Two work queues are
      module-global and used for handshake and close workers. The third work
      queue is defined per link group and used by the tx workers that may
      sleep waiting for resources of this link group.
      And in smc_llc_enqueue() queue the llc_event_work work to the system
      prio work queue because its critical that this work is started fast.
      Reviewed-by: NUrsula Braun <ubraun@linux.ibm.com>
      Signed-off-by: NKarsten Graul <kgraul@linux.ibm.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      22ef473d
    • U
      net/smc: immediate freeing in smc_lgr_cleanup_early() · f9aab6f2
      Ursula Braun 提交于
      smc_lgr_cleanup_early() schedules the free worker with delay. DMB
      unregistering occurs in this delayed worker increasing the risk
      to reach the SMCD SBA limit without need. Terminate the
      linkgroup immediately, since termination means early DMB unregistering.
      
      For SMCD the global smc_server_lgr_pending lock is given up early.
      A linkgroup to be given up with smc_lgr_cleanup_early() may already
      contain more than one connection. Using __smc_lgr_terminate() in
      smc_lgr_cleanup_early() covers this.
      
      And consolidate smc_ism_put_vlan() and smc_put_device() into smc_lgr_free()
      only.
      Signed-off-by: NUrsula Braun <ubraun@linux.ibm.com>
      Signed-off-by: NKarsten Graul <kgraul@linux.ibm.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f9aab6f2
    • U
      net/smc: introduce better field names · 5ac54d87
      Ursula Braun 提交于
      Field names "srv_first_contact" and "cln_first_contact" are misleading,
      since they apply to both, server and client. Rename them to
      "first_contact_peer" and "first_contact_local".
      Rename "ism_gid" by the more precise name "ism_peer_gid".
      Rename version constant "SMC_CLC_V1" into "SMC_V1".
      No functional change.
      Signed-off-by: NUrsula Braun <ubraun@linux.ibm.com>
      Signed-off-by: NKarsten Graul <kgraul@linux.ibm.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5ac54d87
  3. 20 7月, 2020 1 次提交
    • K
      net/smc: do not call dma sync for unmapped memory · 741a49a4
      Karsten Graul 提交于
      The dma related ...sync_sg... functions check the link state before the
      dma function is actually called. But the check in smc_link_usable()
      allows links in ACTIVATING state which are not yet mapped to dma memory.
      Under high load it may happen that the sync_sg functions are called for
      such a link which results in an debug output like
         DMA-API: mlx5_core 0002:00:00.0: device driver tries to sync
         DMA memory it has not allocated [device address=0x0000000103370000]
         [size=65536 bytes]
      To fix that introduce a helper to check for the link state ACTIVE and
      use it where appropriate. And move the link state update to ACTIVATING
      to the end of smcr_link_init() when most initial setup is done.
      Reviewed-by: NUrsula Braun <ubraun@linux.ibm.com>
      Fixes: d854fcbf ("net/smc: add new link state and related helpers")
      Signed-off-by: NKarsten Graul <kgraul@linux.ibm.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      741a49a4
  4. 09 7月, 2020 1 次提交
  5. 06 5月, 2020 1 次提交
  6. 05 5月, 2020 6 次提交
  7. 04 5月, 2020 2 次提交
  8. 02 5月, 2020 9 次提交
  9. 01 5月, 2020 8 次提交
  10. 30 4月, 2020 4 次提交