1. 18 Jan, 2018 5 commits
    • Bart Van Assche's avatar
      RDMA/rxe: Fix rxe_qp_cleanup() · bb3ffb7a
      Bart Van Assche authored
      rxe_qp_cleanup() can sleep so it must be run in thread context and
      not in atomic context. This patch avoids that the following bug is
      triggered:
      
      Kernel BUG at 00000000560033f3 [verbose debug info unavailable]
      BUG: sleeping function called from invalid context at net/core/sock.c:2761
      in_atomic(): 1, irqs_disabled(): 0, pid: 7, name: ksoftirqd/0
      INFO: lockdep is turned off.
      Preemption disabled at:
      [<00000000b6e69628>] __do_softirq+0x4e/0x540
      CPU: 0 PID: 7 Comm: ksoftirqd/0 Not tainted 4.15.0-rc7-dbg+ #4
      Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.0.0-prebuilt.qemu-project.org 04/01/2014
      Call Trace:
       dump_stack+0x85/0xbf
       ___might_sleep+0x177/0x260
       lock_sock_nested+0x1d/0x90
       inet_shutdown+0x2e/0xd0
       rxe_qp_cleanup+0x107/0x140 [rdma_rxe]
       rxe_elem_release+0x18/0x80 [rdma_rxe]
       rxe_requester+0x1cf/0x11b0 [rdma_rxe]
       rxe_do_task+0x78/0xf0 [rdma_rxe]
       tasklet_action+0x99/0x270
       __do_softirq+0xc0/0x540
       run_ksoftirqd+0x1c/0x70
       smpboot_thread_fn+0x1be/0x270
       kthread+0x117/0x130
       ret_from_fork+0x24/0x30
      Signed-off-by: default avatarBart Van Assche <bart.vanassche@wdc.com>
      Cc: Moni Shoua <monis@mellanox.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
      bb3ffb7a
    • Bart Van Assche's avatar
      RDMA/rxe: Fix a race condition in rxe_requester() · 65567e41
      Bart Van Assche authored
      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: default avatarMoni Shoua <monis@mellanox.com>
      Signed-off-by: default avatarBart Van Assche <bart.vanassche@wdc.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
      65567e41
    • Devesh Sharma's avatar
      RDMA/bnxt_re: Add SRQ support for Broadcom adapters · 37cb11ac
      Devesh Sharma authored
      Shared receive queue (SRQ) is defined as a pool of
      receive buffers shared among multiple QPs which belong
      to same protection domain in a given process context.
      Use of SRQ reduces the memory foot print of IB applications.
      
      Broadcom adapters support SRQ, adding code-changes to enable
      shared receive queue.
      Signed-off-by: default avatarDevesh Sharma <devesh.sharma@broadcom.com>
      Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
      37cb11ac
    • Selvin Xavier's avatar
      RDMA/bnxt_re: expose detailed stats retrieved from HW · 89f81008
      Selvin Xavier authored
      Broadcom's adapter supports more granular statistics
      to allow better understanding about the state of the
      chip when data traffic is flowing.
      
      Exposing the detailed stats to the consumer through
      the standard hook available in the kverbs interface.
      In order to retrieve all the information, driver
      implements a firmware command.
      Signed-off-by: default avatarSelvin Xavier <selvin.xavier@broadcom.com>
      Signed-off-by: default avatarDevesh Sharma <devesh.sharma@broadcom.com>
      Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
      89f81008
    • Somnath Kotur's avatar
      RDMA/bnxt_re: Add support for MRs with Huge pages · 872f3578
      Somnath Kotur authored
      Depending on the OS page-table configurations, applications
      may request MRs which has page size alignment other than 4K
      
      Underlying provider driver needs to adjust its PBL boundaries
      according to the incoming page boundaries in the PA list.
      
      Adding a capability to register MRs having pages-sizes other
      than 4K (Hugepages).
      Signed-off-by: default avatarSomnath Kotur <somnath.kotur@broadcom.com>
      Signed-off-by: default avatarSelvin Xavier <selvin.xavier@broadcom.com>
      Signed-off-by: default avatarDevesh Sharma <devesh.sharma@broadcom.com>
      Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
      872f3578
  2. 17 Jan, 2018 14 commits
  3. 15 Jan, 2018 11 commits
  4. 11 Jan, 2018 10 commits