Kconfig 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. # SPDX-License-Identifier: GPL-2.0-only
  2. menuconfig INFINIBAND
  3. tristate "InfiniBand support"
  4. depends on HAS_IOMEM && HAS_DMA
  5. depends on NET
  6. depends on INET
  7. depends on m || IPV6 != m
  8. depends on !ALPHA
  9. select IRQ_POLL
  10. select DIMLIB
  11. help
  12. Core support for InfiniBand (IB). Make sure to also select
  13. any protocols you wish to use as well as drivers for your
  14. InfiniBand hardware.
  15. if INFINIBAND
  16. config INFINIBAND_USER_MAD
  17. tristate "InfiniBand userspace MAD support"
  18. depends on INFINIBAND
  19. help
  20. Userspace InfiniBand Management Datagram (MAD) support. This
  21. is the kernel side of the userspace MAD support, which allows
  22. userspace processes to send and receive MADs. You will also
  23. need libibumad from rdma-core
  24. <https://github.com/linux-rdma/rdma-core>.
  25. config INFINIBAND_USER_ACCESS
  26. tristate "InfiniBand userspace access (verbs and CM)"
  27. depends on MMU
  28. help
  29. Userspace InfiniBand access support. This enables the
  30. kernel side of userspace verbs and the userspace
  31. communication manager (CM). This allows userspace processes
  32. to set up connections and directly access InfiniBand
  33. hardware for fast-path operations. You will also need
  34. libibverbs, libibcm and a hardware driver library from
  35. rdma-core <https://github.com/linux-rdma/rdma-core>.
  36. config INFINIBAND_USER_MEM
  37. bool
  38. depends on INFINIBAND_USER_ACCESS != n
  39. depends on MMU
  40. select DMA_SHARED_BUFFER
  41. default y
  42. config INFINIBAND_ON_DEMAND_PAGING
  43. bool "InfiniBand on-demand paging support"
  44. depends on INFINIBAND_USER_MEM
  45. select MMU_NOTIFIER
  46. select INTERVAL_TREE
  47. select HMM_MIRROR
  48. default y
  49. help
  50. On demand paging support for the InfiniBand subsystem.
  51. Together with driver support this allows registration of
  52. memory regions without pinning their pages, fetching the
  53. pages on demand instead.
  54. config INFINIBAND_ADDR_TRANS
  55. bool "RDMA/CM"
  56. depends on INFINIBAND
  57. default y
  58. help
  59. Support for RDMA communication manager (CM).
  60. This allows for a generic connection abstraction over RDMA.
  61. config INFINIBAND_ADDR_TRANS_CONFIGFS
  62. bool
  63. depends on INFINIBAND_ADDR_TRANS && CONFIGFS_FS && !(INFINIBAND=y && CONFIGFS_FS=m)
  64. default y
  65. help
  66. ConfigFS support for RDMA communication manager (CM).
  67. This allows the user to config the default GID type that the CM
  68. uses for each device, when initiaing new connections.
  69. config INFINIBAND_VIRT_DMA
  70. def_bool !HIGHMEM
  71. if INFINIBAND_USER_ACCESS || !INFINIBAND_USER_ACCESS
  72. if !UML
  73. source "drivers/infiniband/hw/bnxt_re/Kconfig"
  74. source "drivers/infiniband/hw/cxgb4/Kconfig"
  75. source "drivers/infiniband/hw/efa/Kconfig"
  76. source "drivers/infiniband/hw/erdma/Kconfig"
  77. source "drivers/infiniband/hw/hfi1/Kconfig"
  78. source "drivers/infiniband/hw/hns/Kconfig"
  79. source "drivers/infiniband/hw/irdma/Kconfig"
  80. source "drivers/infiniband/hw/mlx4/Kconfig"
  81. source "drivers/infiniband/hw/mlx5/Kconfig"
  82. source "drivers/infiniband/hw/mthca/Kconfig"
  83. source "drivers/infiniband/hw/ocrdma/Kconfig"
  84. source "drivers/infiniband/hw/qedr/Kconfig"
  85. source "drivers/infiniband/hw/qib/Kconfig"
  86. source "drivers/infiniband/hw/usnic/Kconfig"
  87. source "drivers/infiniband/hw/vmw_pvrdma/Kconfig"
  88. source "drivers/infiniband/sw/rdmavt/Kconfig"
  89. endif # !UML
  90. source "drivers/infiniband/sw/rxe/Kconfig"
  91. source "drivers/infiniband/sw/siw/Kconfig"
  92. endif
  93. source "drivers/infiniband/ulp/ipoib/Kconfig"
  94. source "drivers/infiniband/ulp/srp/Kconfig"
  95. source "drivers/infiniband/ulp/srpt/Kconfig"
  96. source "drivers/infiniband/ulp/iser/Kconfig"
  97. source "drivers/infiniband/ulp/isert/Kconfig"
  98. source "drivers/infiniband/ulp/rtrs/Kconfig"
  99. source "drivers/infiniband/ulp/opa_vnic/Kconfig"
  100. endif # INFINIBAND