Kconfig 3.6 KB

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