[PATCH rdma-next 00/14] Refactoring FD usage

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This series refactors the usage of FDs in both IB core and mlx5 driver.
It includes:
- Simplify destruction of FD uobjects by making them pure uobjects and use
   a generic release method for all struct file operations.
- Make ib_uverbs_async_event_file into a uobject.
- Improve locking in few related areas.
- Simplify type usage for ib_uverbs_async_handler().

This refactoring series may be followed by some other series that will allow
the async FD to be allocated separately from the context and then enables
having the alloc_context command over ioctl.

Yishai

Jason Gunthorpe (14):
  RDMA/mlx5: Use RCU and direct refcounts to keep memory alive
  RDMA/core: Simplify destruction of FD uobjects
  RDMA/mlx5: Simplify devx async commands
  RDMA/core: Do not allow alloc_commit to fail
  RDMA/core: Make ib_ucq_object use ib_uevent_object
  RDMA/core: Do not erase the type of ib_cq.uobject
  RDMA/core: Do not erase the type of ib_qp.uobject
  RDMA/core: Do not erase the type of ib_srq.uobject
  RDMA/core: Do not erase the type of ib_wq.uobject
  RDMA/core: Simplify type usage for ib_uverbs_async_handler()
  RDMA/core: Fix locking in ib_uverbs_event_read
  RDMA/core: Remove the ufile arg from rdma_alloc_begin_uobject
  RDMA/core: Make ib_uverbs_async_event_file into a uobject
  RDMA/core: Use READ_ONCE for ib_ufile.async_file

 drivers/infiniband/core/Makefile                   |   3 +-
 drivers/infiniband/core/core_priv.h                |   2 +-
 drivers/infiniband/core/nldev.c                    |   3 +-
 drivers/infiniband/core/rdma_core.c                | 189 ++++++-------
 drivers/infiniband/core/rdma_core.h                |  45 +---
 drivers/infiniband/core/uverbs.h                   |  28 +-
 drivers/infiniband/core/uverbs_cmd.c               | 201 +++++++-------
 drivers/infiniband/core/uverbs_ioctl.c             |  45 +---
 drivers/infiniband/core/uverbs_main.c              | 292 ++++++---------------
 drivers/infiniband/core/uverbs_std_types.c         |  44 +++-
 .../infiniband/core/uverbs_std_types_async_fd.c    |  33 +++
 drivers/infiniband/core/uverbs_std_types_cq.c      |  19 +-
 drivers/infiniband/core/uverbs_uapi.c              |   7 +-
 drivers/infiniband/hw/mlx5/devx.c                  | 159 +++++------
 include/rdma/ib_verbs.h                            |  13 +-
 include/rdma/uverbs_std_types.h                    |  13 +-
 include/rdma/uverbs_types.h                        |  33 ++-
 include/uapi/rdma/ib_user_ioctl_cmds.h             |   1 +
 18 files changed, 494 insertions(+), 636 deletions(-)
 create mode 100644 drivers/infiniband/core/uverbs_std_types_async_fd.c

-- 
1.8.3.1




[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux