1. 17 8月, 2016 3 次提交
    • S
      net/mlx5: Unify and improve command interface · c4f287c4
      Saeed Mahameed 提交于
      Now as all commands use mlx5 ifc interface, instead of doing two calls
      for executing a command we embed command status checking into
      mlx5_cmd_exec to simplify the interface.
      
      Also we do here some cleanup for redundant software structures
      (inbox/outbox) and functions and improved command failure output.
      Signed-off-by: NSaeed Mahameed <saeedm@mellanox.com>
      Signed-off-by: NLeon Romanovsky <leon@kernel.org>
      c4f287c4
    • S
      {net,IB}/mlx5: Modify QP commands via mlx5 ifc · 1a412fb1
      Saeed Mahameed 提交于
      Prior to this patch we assumed that modify QP commands have the
      same layout.
      
      In ConnectX-4 for each QP transition there is a specific command
      and their layout can vary.
      
      e.g: 2err/2rst commands don't have QP context in their layout and before
      this patch we posted the QP context in those commands.
      
      Fortunately the FW only checks the suffix of the commands and executes
      them, while ignoring all invalid data sent after the valid command
      layout.
      
      This patch removes mlx5_modify_qp_mbox_in and changes
      mlx5_core_qp_modify to receive the required transition and QP context
      with opt_param_mask if needed.  This way the caller is not required to
      provide the command inbox layout and it will be generated automatically.
      
      mlx5_core_qp_modify will generate the command inbox/outbox layouts
      according to the requested transition and will fill the requested
      parameters.
      Signed-off-by: NSaeed Mahameed <saeedm@mellanox.com>
      Signed-off-by: NLeon Romanovsky <leon@kernel.org>
      1a412fb1
    • S
      {net,IB}/mlx5: QP/XRCD commands via mlx5 ifc · 09a7d9ec
      Saeed Mahameed 提交于
      Remove old representation of manually created QP/XRCD commands layout
      amd use mlx5_ifc canonical structures and defines.
      Signed-off-by: NSaeed Mahameed <saeedm@mellanox.com>
      Signed-off-by: NLeon Romanovsky <leon@kernel.org>
      09a7d9ec
  2. 14 8月, 2016 6 次提交
  3. 26 7月, 2016 2 次提交
  4. 15 7月, 2016 2 次提交
  5. 05 7月, 2016 3 次提交
  6. 03 7月, 2016 2 次提交
  7. 01 7月, 2016 1 次提交
  8. 27 6月, 2016 3 次提交
  9. 23 6月, 2016 4 次提交
  10. 10 6月, 2016 5 次提交
  11. 07 6月, 2016 1 次提交
  12. 18 5月, 2016 1 次提交
    • M
      net/mlx5_core: Use tasklet for user-space CQ completion events · 94c6825e
      Matan Barak 提交于
      Previously, we've fired all our completion callbacks straight from
      our ISR.
      
      Some of those callbacks were lightweight (for example, mlx5 Ethernet
      napi callbacks), but some of them did more work (for example,
      the user-space RDMA stack uverbs' completion handler). Besides that,
      doing more than the minimal work in ISR is generally considered wrong,
      it could even lead to a hard lockup of the system. Since when a lot
      of completion events are generated by the hardware, the loop over
      those events could be so long, that we'll get into a hard lockup by
      the system watchdog.
      
      In order to avoid that, add a new way of invoking completion events
      callbacks. In the interrupt itself, we add the CQs which receive
      completion event to a per-EQ list and schedule a tasklet. In the
      tasklet context we loop over all the CQs in the list and invoke the
      user callback.
      Signed-off-by: NMatan Barak <matanb@mellanox.com>
      Signed-off-by: NDoug Ledford <dledford@redhat.com>
      94c6825e
  13. 17 5月, 2016 3 次提交
  14. 13 5月, 2016 2 次提交
  15. 12 5月, 2016 1 次提交
  16. 05 5月, 2016 1 次提交
    • M
      net/mlx5: Flow steering, Add vport ACL support · efdc810b
      Mohamad Haj Yahia 提交于
      Update the relevant flow steering device structs and commands to
      support vport.
      Update the flow steering core API to receive vport number.
      Add ingress and egress ACL flow table name spaces.
      Add ACL flow table support:
      * ACL (Access Control List) flow table is a table that contains
      only allow/drop steering rules.
      
      * We have two types of ACL flow tables - ingress and egress.
      
      * ACLs handle traffic sent from/to E-Switch FDB table, Ingress refers to
      traffic sent from Vport to E-Switch and Egress refers to traffic sent
      from E-Switch to vport.
      
      * Ingress ACL flow table allow/drop rules is checked against traffic
      sent from VF.
      
      * Egress ACL flow table allow/drop rules is checked against traffic sent
      to VF.
      Signed-off-by: NMohamad Haj Yahia <mohamad@mellanox.com>
      Signed-off-by: NSaeed Mahameed <saeedm@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      efdc810b