1. 14 11月, 2014 4 次提交
  2. 12 11月, 2014 1 次提交
  3. 04 11月, 2014 1 次提交
  4. 01 10月, 2014 2 次提交
  5. 27 9月, 2014 1 次提交
  6. 20 9月, 2014 1 次提交
    • I
      net/mlx4_core: Enable CQE/EQE stride support · 77507aa2
      Ido Shamay 提交于
      This feature is intended for archs having cache line larger then 64B.
      
      Since our CQE/EQEs are generally 64B in those systems, HW will write
      twice to the same cache line consecutively, causing pipe locks due to
      he hazard prevention mechanism. For elements in a cyclic buffer, writes
      are consecutive, so entries smaller than a cache line should be
      avoided, especially if they are written at a high rate.
      
      Reduce consecutive writes to same cache line in CQs/EQs, by allowing the
      driver to increase the distance between entries so that each will reside
      in a different cache line. Until the introduction of this feature, there
      were two types of CQE/EQE:
      
      1. 32B stride and context in the [0-31] segment
      2. 64B stride and context in the [32-63] segment
      
      This feature introduces two additional types:
      
      3. 128B stride and context in the [0-31] segment (128B cache line)
      4. 256B stride and context in the [0-31] segment (256B cache line)
      
      Modify the mlx4_core driver to query the device for the CQE/EQE cache
      line stride capability and to enable that capability when the host
      cache line size is larger than 64 bytes (supported cache lines are
      128B and 256B).
      
      The mlx4 IB driver and libmlx4 need not be aware of this change. The PF
      context behaviour is changed to require this change in VF drivers
      running on such archs.
      Signed-off-by: NIdo Shamay <idos@mellanox.com>
      Signed-off-by: NJack Morgenstein <jackm@dev.mellanox.co.il>
      Signed-off-by: NOr Gerlitz <ogerlitz@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      77507aa2
  7. 13 8月, 2014 1 次提交
  8. 05 8月, 2014 1 次提交
    • J
      mlx4_core: Add support for secure-host and SMP firewall · 114840c3
      Jack Morgenstein 提交于
      Secure-host is the general term for the capability of a device
      to protect itself and the subnet from malicious host software.
      
      This is achieved by:
      1. Not allowing un-trusted entities to access device configuration
         registers, directly (through pci_cr or pci_conf) and indirectly
         (through MADs).
      
      2. Hiding M_Key from untrusted entities.
      
      3. Preventing the modification of GUID0 by un-trusted entities
      
      4. Not allowing drivers on untrusted hosts to receive nor to transmit
         packets over QP0 (SMP Firewall).
      
      The secure-host capability depends on firmware handling all QP0
      packets, and not passing these packets up to the driver. Any information
      required by the driver for proper operation (e.g., SM lid) is passed
      via events generated by the firmware while processing QP0 MADs.
      
      Driver support mainly requires using the MAD_DEMUX FW command at startup,
      where the feature is enabled/disabled through a procedure described in
      the Mellanox HCA tools package.
      Signed-off-by: NJack Morgenstein <jackm@dev.mellanox.co.il>
      Signed-off-by: NOr Gerlitz <ogerlitz@mellanox.com>
      
      [ Fix error path in mlx4_setup_hca to go to err_mcg_table_free. - Roland ]
      Signed-off-by: NRoland Dreier <roland@purestorage.com>
      114840c3
  9. 23 7月, 2014 1 次提交
  10. 23 6月, 2014 1 次提交
  11. 11 6月, 2014 1 次提交
  12. 31 5月, 2014 1 次提交
  13. 30 5月, 2014 2 次提交
  14. 23 5月, 2014 2 次提交
  15. 15 5月, 2014 1 次提交
  16. 09 5月, 2014 1 次提交
  17. 06 5月, 2014 2 次提交
  18. 15 4月, 2014 1 次提交
  19. 14 4月, 2014 1 次提交
  20. 28 3月, 2014 1 次提交
  21. 21 3月, 2014 3 次提交
  22. 13 3月, 2014 2 次提交
  23. 07 3月, 2014 1 次提交
    • A
      net/mlx4_core: mlx4_init_slave() shouldn't access comm channel before PF is ready · 97989356
      Amir Vadai 提交于
      Currently, the PF call to pci_enable_sriov from the PF probe function
      stalls for 10 seconds times the number of VFs probed on the host. This
      happens because the way for such VFs to determine of the PF
      initialization finished, is by attempting to issue reset on the
      comm-channel and get timeout (after 10s).
      
      The PF probe function is called from a kenernel workqueue, and therefore
      during that time, rcu lock is being held and kernel's workqueue is
      stalled. This blocks other processes that try to use the workqueue
      or rcu lock.  For example, interface renaming which is calling
      rcu_synchronize is blocked, and timedout by systemd.
      
      Changed mlx4_init_slave() to allow VF probed on the host to immediatly
      detect that the PF is not ready, and return EPROBE_DEFER instantly.
      
      Only when the PF finishes the initialization, allow such VFs to
      access the comm channel.
      
      This issue and fix are relevant only for probed VFs on the hypervisor,
      there is no way to pass this information to a VM until comm channel is
      ready, so in a VM, if PF is not ready, the first command will be timedout
      after 10 seconds and return EPROBE_DEFER.
      Signed-off-by: NAmir Vadai <amirv@mellanox.com>
      Signed-off-by: NOr Gerlitz <ogerlitz@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      97989356
  24. 06 3月, 2014 1 次提交
  25. 25 2月, 2014 1 次提交
    • I
      net/mlx4: Fix limiting number of IRQ's instead of RSS queues · bb2146bc
      Ido Shamay 提交于
      This fix a performance bug introduced by commit 90b1ebe7 "mlx4: set
      maximal number of default RSS queues", which limits the numbers of IRQs
      opened by core module.
      The limit should be on the number of queues in the indirection table -
      rx_rings, and not on the number of IRQ's. Also, limiting on mlx4_core
      initialization instead of in mlx4_en, prevented using "ethtool -L" to
      utilize all the CPU's, when performance mode is prefered, since limiting
      this number to 8 reduces overall packet rate by 15%-50% in multiple TCP
      streams applications.
      
      For example, after running ethtool -L <ethx> rx 16
      
                Packet rate
      Before the fix  897799
      After the fix   1142070
      
      Results were obtained using netperf:
      
      S=200 ; ( for i in $(seq 1 $S) ; do ( \
        netperf -H 11.7.13.55 -t TCP_RR -l 30 &) ; \
        wait ; done | grep "1        1" | awk '{SUM+=$6} END {print SUM}' )
      
      CC: Yuval Mintz <yuvalmin@broadcom.com>
      Signed-off-by: NIdo Shamay <idos@mellanox.com>
      Signed-off-by: NAmir Vadai <amirv@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      bb2146bc
  26. 19 2月, 2014 1 次提交
  27. 06 1月, 2014 1 次提交
  28. 01 1月, 2014 1 次提交
  29. 20 12月, 2013 2 次提交