1. 04 Jun, 2018 1 commit
    • Jason Gunthorpe's avatar
      Merge tag 'verbs_flow_counters' of... · 0f45e69d
      Jason Gunthorpe authored
      Merge tag 'verbs_flow_counters' of git://git.kernel.org/pub/scm/linux/kernel/git/leon/linux-rdma.git into for-next
      
      Pull verbs counters series from Leon Romanovsky:
      
      ====================
      Verbs flow counters support
      
      This series comes to allow user space applications to monitor real time
      traffic activity and events of the verbs objects it manages, e.g.: ibv_qp,
      ibv_wq, ibv_flow.
      
      The API enables generic counters creation and define mapping to
      association with a verbs object, the current mlx5 driver is using this API
      for flow counters.
      
      With this API, an application can monitor the entire life cycle of object
      activity, defined here as a static counters attachment.  This API also
      allows dynamic counters monitoring of measurement points for a partial
      period in the verbs object life cycle.
      
      In addition it presents the implementation of the generic counters
      interface.
      
      This will be achieved by extending flow creation by adding a new flow
      count specification type which allows the user to associate a previously
      created flow counters using the generic verbs counters interface to the
      created flow, once associated the user could read statistics by using the
      read function of the generic counters interface.
      
      The API includes:
      1. create and destroyed API of a new counters objects
      2. read the counters values from HW
      
      Note:
      Attaching API to allow application to define the measurement points per
      objects is a user space only API and this data is passed to kernel when
      the counted object (e.g. flow) is created with the counters object.
      ===================
      
      * tag 'verbs_flow_counters':
        IB/mlx5: Add counters read support
        IB/mlx5: Add flow counters read support
        IB/mlx5: Add flow counters binding support
        IB/mlx5: Add counters create and destroy support
        IB/uverbs: Add support for flow counters
        IB/core: Add support for flow counters
        IB/core: Support passing uhw for create_flow
        IB/uverbs: Add read counters support
        IB/core: Introduce counters read verb
        IB/uverbs: Add create/destroy counters support
        IB/core: Introduce counters object and its create/destroy
        IB/uverbs: Add an ib_uobject getter to ioctl() infrastructure
        net/mlx5: Export flow counter related API
        net/mlx5: Use flow counter pointer as input to the query function
      0f45e69d
  2. 02 Jun, 2018 14 commits
  3. 01 Jun, 2018 11 commits
  4. 31 May, 2018 7 commits
    • Colin Ian King's avatar
      RDMA/qedr: fix spelling mistake: "adrresses" -> "addresses" · 367d2f07
      Colin Ian King authored
      Trivial fix to spelling mistake in DP_ERR error message
      Signed-off-by: default avatarColin Ian King <colin.king@canonical.com>
      Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
      367d2f07
    • Sergey Gorenko's avatar
      IB/iser: Do not reduce max_sectors · 434dda42
      Sergey Gorenko authored
      The iSER driver reduces max_sectors. For example, if you load the
      ib_iser module with max_sectors=1024, you will see that
      /sys/class/block/<bdev>/queue/max_hw_sectors_kb is 508. It is an
      incorrect value. The expected value is (max_sectors * sector_size) /
      1024 = 512.
      
      Reducing of max_sectors can cause performance degradation due to
      unnecessary splitting of IO requests.
      
      The number of pages per MR has been fixed here, so there is no longer
      any need to reduce max_sectors.
      
      Fixes: 9c674815 ("IB/iser: Fix max_sectors calculation")
      Signed-off-by: default avatarSergey Gorenko <sergeygo@mellanox.com>
      Reviewed-by: default avatarIsrael Rukshin <israelr@mellanox.com>
      Reviewed-by: default avatarMax Gurtovoy <maxg@mellanox.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Sagi Grimberg <sagi@grimberg.me>
      Acked-by: default avatarSagi Grimberg <sagi@grimberg.me>
      Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
      434dda42
    • Doug Ledford's avatar
      01298c0c
    • Wei Hu(Xavier)'s avatar
      RDMA/hns: Implement the disassociate_ucontext API · fedc3abe
      Wei Hu(Xavier) authored
      This patch implemented the IB core disassociate_ucontext API.
      Signed-off-by: default avatarWei Hu (Xavier) <xavier.huwei@huawei.com>
      Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
      fedc3abe
    • Wei Hu(Xavier)'s avatar
      RDMA/uverbs: Hoist the common process of disassociate_ucontext into ib core · a0976f41
      Wei Hu(Xavier) authored
      This patch hoisted the common process of disassociate_ucontext
      callback function into ib core code, and these code are common
      to ervery ib_device driver.
      Signed-off-by: default avatarWei Hu (Xavier) <xavier.huwei@huawei.com>
      Acked-by: default avatarLeon Romanovsky <leonro@mellanox.com>
      Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
      a0976f41
    • Wei Hu(Xavier)'s avatar
      RDMA/hns: Fix the illegal memory operation when cross page · 0b25c9cc
      Wei Hu(Xavier) authored
      This patch fixed the potential illegal operation when using the
      extend sge buffer cross page in post send operation. The bug
      will cause the calltrace as below.
      
      [ 3302.922107] Unable to handle kernel paging request at virtual address ffff00003b3a0004
      [ 3302.930009] Mem abort info:
      [ 3302.932790]   Exception class = DABT (current EL), IL = 32 bits
      [ 3302.938695]   SET = 0, FnV = 0
      [ 3302.941735]   EA = 0, S1PTW = 0
      [ 3302.944863] Data abort info:
      [ 3302.947729]   ISV = 0, ISS = 0x00000047
      [ 3302.951551]   CM = 0, WnR = 1
      [ 3302.954506] swapper pgtable: 4k pages, 48-bit VAs, pgd = ffff000009ea5000
      [ 3302.961279] [ffff00003b3a0004] *pgd=00000023dfffe003, *pud=00000023dfffd003, *pmd=00000022dc84c003, *pte=0000000000000000
      [ 3302.972224] Internal error: Oops: 96000047 [#1] SMP
      [ 3302.999509] CPU: 9 PID: 19628 Comm: roce_test_main Tainted: G           OE   4.14.10 #1
      [ 3303.007498] task: ffff80234df78000 task.stack: ffff00000f640000
      [ 3303.013412] PC is at hns_roce_v2_post_send+0x690/0xe20 [hns_roce_pci]
      [ 3303.019843] LR is at hns_roce_v2_post_send+0x658/0xe20 [hns_roce_pci]
      [ 3303.026269] pc : [<ffff0000020694f8>] lr : [<ffff0000020694c0>] pstate: 804001c9
      [ 3303.033649] sp : ffff00000f643870
      [ 3303.036951] x29: ffff00000f643870 x28: ffff80232bfa9c00
      [ 3303.042250] x27: ffff80234d909380 x26: ffff00003b37f0c0
      [ 3303.047549] x25: 0000000000000000 x24: 0000000000000003
      [ 3303.052848] x23: 0000000000000000 x22: 0000000000000000
      [ 3303.058148] x21: 0000000000000101 x20: 0000000000000001
      [ 3303.063447] x19: ffff80236163f800 x18: 0000000000000000
      [ 3303.068746] x17: 0000ffff86b76fc8 x16: ffff000008301600
      [ 3303.074045] x15: 000020a51c000000 x14: 3128726464615f65
      [ 3303.079344] x13: 746f6d6572202c29 x12: 303035312879656b
      [ 3303.084643] x11: 723a6f666e692072 x10: 573a6f666e693a5d
      [ 3303.089943] x9 : 0000000000000004 x8 : ffff8023ce38b000
      [ 3303.095242] x7 : ffff8023ce38b320 x6 : 0000000000000418
      [ 3303.100541] x5 : ffff80232bfa9cc8 x4 : 0000000000000030
      [ 3303.105839] x3 : 0000000000000100 x2 : 0000000000000200
      [ 3303.111138] x1 : 0000000000000320 x0 : ffff00003b3a0000
      [ 3303.116438] Process roce_test_main (pid: 19628, stack limit = 0xffff00000f640000)
      [ 3303.123906] Call trace:
      [ 3303.126339] Exception stack(0xffff00000f643730 to 0xffff00000f643870)
      [ 3303.215790] [<ffff0000020694f8>] hns_roce_v2_post_send+0x690/0xe20 [hns_roce_pci]
      [ 3303.223293] [<ffff0000021c3750>] rt_ktest_post_send+0x5d0/0x8b8 [rdma_test]
      [ 3303.230261] [<ffff0000021b3234>] exec_send_cmd+0x664/0x1350 [rdma_test]
      [ 3303.236881] [<ffff0000021b8b30>] rt_ktest_dispatch_cmd_3+0x1510/0x3790 [rdma_test]
      [ 3303.244455] [<ffff0000021bae54>] rt_ktest_dispatch_cmd_2+0xa4/0x118 [rdma_test]
      [ 3303.251770] [<ffff0000021bafec>] rt_ktest_dispatch_cmd+0x124/0xaa8 [rdma_test]
      [ 3303.258997] [<ffff0000021bbc3c>] rt_ktest_dev_write+0x2cc/0x568 [rdma_test]
      [ 3303.265947] [<ffff0000082ad688>] __vfs_write+0x60/0x18c
      [ 3303.271158] [<ffff0000082ad998>] vfs_write+0xa8/0x198
      [ 3303.276196] [<ffff0000082adc7c>] SyS_write+0x6c/0xd4
      [ 3303.281147] Exception stack(0xffff00000f643ec0 to 0xffff00000f644000)
      [ 3303.287573] 3ec0: 0000000000000003 0000fffffc85faa8 0000000000004e60 0000000000000000
      [ 3303.295388] 3ee0: 0000000021fb2000 000000000000ffff eff0e3efe4e58080 0000fffffcc724fe
      [ 3303.303204] 3f00: 0000000000000040 1999999999999999 0101010101010101 0000000000000038
      [ 3303.311019] 3f20: 0000000000000005 ffffffffffffffff 0d73757461747320 ffffffffffffffff
      [ 3303.318835] 3f40: 0000000000000000 0000000000459b00 0000fffffc85e360 000000000043d788
      [ 3303.326650] 3f60: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
      [ 3303.334465] 3f80: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
      [ 3303.342281] 3fa0: 0000000000000000 0000fffffc85e570 0000000000438804 0000fffffc85e570
      [ 3303.350096] 3fc0: 0000ffff8553f618 0000000080000000 0000000000000003 0000000000000040
      [ 3303.357911] 3fe0: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
      [ 3303.365729] [<ffff000008083808>] __sys_trace_return+0x0/0x4
      [ 3303.371288] Code: b94008e9 34000129 b9400ce2 110006b5 (b9000402)
      [ 3303.377377] ---[ end trace fd5ab98b3325cf9a ]---
      Reported-by: default avatarJie Chen <chenjie103@huawei.com>
      Reported-by: default avatarXiping Zhang (Francis) <zhangxiping3@huawei.com>
      Fixes: b1c15835("RDMA/hns: Get rid of virt_to_page and vmap calls after dma_alloc_coherent")
      Signed-off-by: default avatarWei Hu (Xavier) <xavier.huwei@huawei.com>
      Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
      0b25c9cc
    • Wei Hu(Xavier)'s avatar
      RDMA/hns: Add reset process for RoCE in hip08 · cb7a94c9
      Wei Hu(Xavier) authored
      This patch added reset process for RoCE in hip08.
      Signed-off-by: default avatarWei Hu (Xavier) <xavier.huwei@huawei.com>
      Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
      cb7a94c9
  5. 29 May, 2018 5 commits
  6. 28 May, 2018 2 commits
    • Jason Gunthorpe's avatar
      Merge branch 'mr_fix' into git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma for-next · 0394808d
      Jason Gunthorpe authored
      Update mlx4 to support user MR creation against read-only memory, previously
      it required the memory to be writable.
      
      Based on rdma for-rc due to dependencies.
      
      * mr_fix: (2 commits)
        IB/mlx4: Mark user MR as writable if actual virtual memory is writable
        IB/core: Make testing MR flags for writability a static inline function
      0394808d
    • Jack Morgenstein's avatar
      IB/mlx4: Mark user MR as writable if actual virtual memory is writable · d8f9cc32
      Jack Morgenstein authored
      To allow rereg_user_mr to modify the MR from read-only to writable without
      using get_user_pages again, we needed to define the initial MR as writable.
      However, this was originally done unconditionally, without taking into
      account the writability of the underlying virtual memory.
      
      As a result, any attempt to register a read-only MR over read-only
      virtual memory failed.
      
      To fix this, do not add the writable flag bit when the user virtual memory
      is not writable (e.g. const memory).
      
      However, when the underlying memory is NOT writable (and we therefore
      do not define the initial MR as writable), the IB core adds a
      "force writable" flag to its user-pages request. If this succeeds,
      the reg_user_mr caller gets a writable copy of the original pages.
      
      If the user-space caller then does a rereg_user_mr operation to enable
      writability, this will succeed. This should not be allowed, since
      the original virtual memory was not writable.
      
      Cc: <stable@vger.kernel.org>
      Fixes: 9376932d ("IB/mlx4_ib: Add support for user MR re-registration")
      Signed-off-by: default avatarJason Gunthorpe <jgg@mellanox.com>
      Signed-off-by: default avatarJack Morgenstein <jackm@dev.mellanox.co.il>
      Signed-off-by: default avatarLeon Romanovsky <leonro@mellanox.com>
      d8f9cc32