1. 07 10月, 2021 1 次提交
  2. 28 9月, 2021 2 次提交
  3. 24 9月, 2021 1 次提交
  4. 02 8月, 2021 1 次提交
  5. 16 7月, 2021 1 次提交
  6. 25 6月, 2021 1 次提交
  7. 23 6月, 2021 4 次提交
  8. 17 6月, 2021 3 次提交
  9. 04 6月, 2021 1 次提交
  10. 09 4月, 2021 1 次提交
  11. 31 3月, 2021 1 次提交
  12. 17 2月, 2021 1 次提交
  13. 09 2月, 2021 1 次提交
  14. 21 1月, 2021 1 次提交
    • M
      Revert "RDMA/rxe: Remove VLAN code leftovers from RXE" · f1b0a8ea
      Martin Wilck 提交于
      This reverts commit b2d24404.
      
      It's true that creating rxe on top of 802.1q interfaces doesn't work.
      Thus, commit fd49ddaf ("RDMA/rxe: prevent rxe creation on top of vlan
      interface") was absolutely correct.
      
      But b2d24404 was incorrect assuming that with this change, RDMA and
      VLAN don't work togehter at all. It just has to be set up
      differently. Rather than creating rxe on top of the VLAN interface, rxe
      must be created on top of the physical interface.  RDMA then works just
      fine through VLAN interfaces on top of that physical interface, via the
      "upper device" logic.
      
      This is hard to see in the rxe logic because it never talks about vlan,
      but instead rxe carefully selects upper vlan netdevices when working with
      packets which in turn imply certain vlan tagging. This is all done
      correctly and interacts with the gid table with VLAN support the same as
      real HW does.
      
      b2d24404 broke this setup deliberately and should thus be
      reverted. Also, b2d24404 removed rxe_dma_device(), so adapt the revert
      to discard that hunk.
      
      Fixes: b2d24404 ("RDMA/rxe: Remove VLAN code leftovers from RXE")
      Link: https://lore.kernel.org/r/20210120161913.7347-1-mwilck@suse.comSigned-off-by: NMartin Wilck <mwilck@suse.com>
      Signed-off-by: NJason Gunthorpe <jgg@nvidia.com>
      f1b0a8ea
  15. 12 11月, 2020 1 次提交
  16. 31 8月, 2020 1 次提交
  17. 10 12月, 2019 1 次提交
  18. 09 7月, 2019 1 次提交
  19. 22 1月, 2019 1 次提交
  20. 09 11月, 2018 2 次提交
  21. 07 11月, 2018 2 次提交
  22. 31 8月, 2018 2 次提交
    • V
      IB/rxe: fix for duplicate request processing and ack psns · b97db585
      Vijay Immanuel 提交于
      Don't reset the resp opcode for a replayed read response.
      The resp opcode could be in the middle of a write or send
      sequence, when the duplicate read request was received.
      An example sequence is as follows:
      - Receive read request for 12KB PSN 20. Transmit read response
        first, middle and last with PSNs 20,21,22.
      - Receive write first PSN 23.
        At this point the resp psn is 24 and resp opcode is write first.
      - The sender notices that PSN 20 is dropped and retransmits.
        Receive read request for 12KB PSN 20. Transmit read response
        first, middle and last with PSNs 20,21,22. The resp opcode is
        set to -1, the resp psn remains 24.
      - Receive write first PSN 23. This is processed by duplicate_request().
        The resp opcode remains -1 and resp psn remains 24.
      - Receive write middle PSN 24. check_op_seq() reports a missing
        first error since the resp opcode is -1.
      
      When sending an ack for a duplicate send or write request,
      use the psn of the previous ack sent. Do not use the psn
      of a read response for the ack.
      An example sequence is as follows:
      - Receive write PSN 30. Transmit ACK for PSN 30.
      - Receive read request 4KB PSN 31. Transmit read response with
        PSN 31. The resp psn is now 32.
      - The sender notices that PSN 30 is dropped and retransmits.
        Receive write PSN 30. duplicate_request() sends an ACK with
        PSN 31. That is incorrect since PSN 31 was a read request.
      Signed-off-by: NVijay Immanuel <vijayi@attalasystems.com>
      Signed-off-by: NDoug Ledford <dledford@redhat.com>
      b97db585
    • P
      IB/rxe: Simplify rxe_find_route() to avoid GID query for netdev · 3db2bceb
      Parav Pandit 提交于
      rxe_prepare() is called on an skb which has ndev already initialized by
      rxe_init_packet().
      Therefore avoid querying the GID attribute again and use the available
      netdevice from the skb->dev.
      Signed-off-by: NParav Pandit <parav@mellanox.com>
      Reviewed-by: NDaniel Jurgens <danielj@mellanox.com>
      Reviewed-by: NYuval Shaia <yuval.shaia@oracle.com>
      Tested-by: NYuval Shaia <yuval.shaia@oracle.com>
      Signed-off-by: NZhu Yanjun <yanjun.zhu@oracle.com>
      Signed-off-by: NLeon Romanovsky <leonro@mellanox.com>
      Signed-off-by: NDoug Ledford <dledford@redhat.com>
      3db2bceb
  23. 19 6月, 2018 1 次提交
  24. 28 4月, 2018 2 次提交
    • Z
      IB/rxe: avoid double kfree_skb · 9fd4350b
      Zhu Yanjun 提交于
      When skb is sent, it will pass the following functions in soft roce.
      
      rxe_send [rdma_rxe]
          ip_local_out
              __ip_local_out
              ip_output
                  ip_finish_output
                      ip_finish_output2
                          dev_queue_xmit
                              __dev_queue_xmit
                                  dev_hard_start_xmit
      
      In the above functions, if error occurs in the above functions or
      iptables rules drop skb after ip_local_out, kfree_skb will be called.
      So it is not necessary to call kfree_skb in soft roce module again.
      Or else crash will occur.
      
      The steps to reproduce:
      
           server                       client
          ---------                    ---------
          |1.1.1.1|<----rxe-channel--->|1.1.1.2|
          ---------                    ---------
      
      On server: rping -s -a 1.1.1.1 -v -C 10000 -S 512
      On client: rping -c -a 1.1.1.1 -v -C 10000 -S 512
      
      The kernel configs CONFIG_DEBUG_KMEMLEAK and
      CONFIG_DEBUG_OBJECTS are enabled on both server and client.
      
      When rping runs, run the following command in server:
      
      iptables -I OUTPUT -p udp  --dport 4791 -j DROP
      
      Without this patch, crash will occur.
      
      CC: Srinivas Eeda <srinivas.eeda@oracle.com>
      CC: Junxiao Bi <junxiao.bi@oracle.com>
      Signed-off-by: NZhu Yanjun <yanjun.zhu@oracle.com>
      Reviewed-by: NYuval Shaia <yuval.shaia@oracle.com>
      Signed-off-by: NDoug Ledford <dledford@redhat.com>
      9fd4350b
    • Z
      IB/rxe: remove unused function variable · e12ee8ce
      Zhu Yanjun 提交于
      In the functions rxe_mem_init_dma, rxe_mem_init_user, rxe_mem_init_fast
      and copy_data, the function variable rxe is not used. So this function
      variable rxe is removed.
      
      CC: Srinivas Eeda <srinivas.eeda@oracle.com>
      CC: Junxiao Bi <junxiao.bi@oracle.com>
      Signed-off-by: NZhu Yanjun <yanjun.zhu@oracle.com>
      Reviewed-by: NLeon Romanovsky <leonro@mellanox.com>
      Signed-off-by: NDoug Ledford <dledford@redhat.com>
      e12ee8ce
  25. 20 4月, 2018 2 次提交
  26. 08 3月, 2018 1 次提交
    • Z
      IB/rxe: remove unnecessary skb_clone · 86af6176
      Zhu Yanjun 提交于
      In send_atomic_ack function, it is not necessary to make a
      skb_clone. To gain better performance (high throughput and
      low latency), this skb_clone is removed.
      
      The following tests are made.
      
       server                       client
      ---------                    ---------
      |1.1.1.1|<----rxe-channel--->|1.1.1.2|
      ---------                    ---------
      
      On server: rping -s -a 1.1.1.1 -v -C 1000 -S 512
      On client: rping -c -a 1.1.1.1 -v -C 1000 -S 512
      
      The kernel config CONFIG_DEBUG_KMEMLEAK is enabled on both server
      and client.
      
      This test runs for several hours. There is no memory leak and the whole
      system can work well.
      
      Based on the above network, the following tests are made.
      
      Server: ibv_rc_pingpong -d rxe0 -g 1
      Client: ibv_rc_pingpong -d rxe0 -g 1 1.1.1.1
      
      The test results on Server(10 tests are made).
      Before:
      Throughput is 137.07 Mbit/sec
      Latency is 517.76 usec/iter
      
      After:
      Throughput is 148.85 Mbit/sec
      Latency is 476.64 usec/iter
      
      The throughput is enhanced and the latency is reduced.
      
      CC: Srinivas Eeda <srinivas.eeda@oracle.com>
      CC: Junxiao Bi <junxiao.bi@oracle.com>
      Signed-off-by: NZhu Yanjun <yanjun.zhu@oracle.com>
      Signed-off-by: NDoug Ledford <dledford@redhat.com>
      86af6176
  27. 19 1月, 2018 1 次提交
    • B
      RDMA/rxe: Fix a race condition in rxe_requester() · 65567e41
      Bart Van Assche 提交于
      The rxe driver works as follows:
      * The send queue, receive queue and completion queues are implemented as
        circular buffers.
      * ib_post_send() and ib_post_recv() calls are serialized through a spinlock.
      * Removing elements from various queues happens from tasklet
        context. Tasklets are guaranteed to run on at most one CPU. This serializes
        access to these queues. See also rxe_completer(), rxe_requester() and
        rxe_responder().
      * rxe_completer() processes the skbs queued onto qp->resp_pkts.
      * rxe_requester() handles the send queue (qp->sq.queue).
      * rxe_responder() processes the skbs queued onto qp->req_pkts.
      
      Since rxe_drain_req_pkts() processes qp->req_pkts, calling
      rxe_drain_req_pkts() from rxe_requester() is racy. Hence this patch.
      Reported-by: NMoni Shoua <monis@mellanox.com>
      Signed-off-by: NBart Van Assche <bart.vanassche@wdc.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: NDoug Ledford <dledford@redhat.com>
      65567e41
  28. 16 1月, 2018 1 次提交
  29. 29 8月, 2017 1 次提交