Konstantin Taranov
29b7bb9823
RDMA/mana_ib: Allocate PAGE aligned doorbell index
...
Allocate a PAGE aligned doorbell index to ensure each process gets a
separate PAGE sized doorbell area space remapped to it in mana_ib_mmap
Fixes: 0266a17763 ("RDMA/mana_ib: Add a driver for Microsoft Azure Network Adapter")
Signed-off-by: Shiraz Saleem <shirazsaleem@microsoft.com >
Signed-off-by: Konstantin Taranov <kotaranov@microsoft.com >
Link: https://patch.msgid.link/1738751405-15041-1-git-send-email-kotaranov@linux.microsoft.com
Reviewed-by: Long Li <longli@microsoft.com >
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2025-02-06 04:03:10 -05:00
Long Li
4a3b99bc04
RDMA/mana_ib: use the correct page size for mapping user-mode doorbell page
...
When mapping doorbell page from user-mode, the driver should use the system
page size as this memory is allocated via mmap() from user-mode.
Cc: stable@vger.kernel.org
Fixes: 0266a17763 ("RDMA/mana_ib: Add a driver for Microsoft Azure Network Adapter")
Signed-off-by: Long Li <longli@microsoft.com >
Link: https://patch.msgid.link/1725030993-16213-2-git-send-email-longli@linuxonhyperv.com
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2024-09-02 10:32:08 +03:00
Long Li
9e517a8e9d
RDMA/mana_ib: use the correct page table index based on hardware page size
...
MANA hardware uses 4k page size. When calculating the page table index,
it should use the hardware page size, not the system page size.
Cc: stable@vger.kernel.org
Fixes: 0266a17763 ("RDMA/mana_ib: Add a driver for Microsoft Azure Network Adapter")
Signed-off-by: Long Li <longli@microsoft.com >
Link: https://patch.msgid.link/1725030993-16213-1-git-send-email-longli@linuxonhyperv.com
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2024-09-02 10:32:08 +03:00
Konstantin Taranov
2a1251e3db
RDMA/mana_ib: Process QP error events in mana_ib
...
Process QP fatal events from the error event queue.
For that, find the QP, using QPN from the event, and then call its
event_handler. To find the QPs, store created RC QPs in an xarray.
Signed-off-by: Konstantin Taranov <kotaranov@microsoft.com >
Link: https://lore.kernel.org/r/1717754897-19858-1-git-send-email-kotaranov@linux.microsoft.com
Reviewed-by: Wei Hu <weh@microsoft.com >
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2024-06-09 13:46:44 +03:00
Konstantin Taranov
c8683b995d
RDMA/mana_ib: extend query device
...
Fill in properties of the ib device.
Order the assignment in the order of fields in the struct ib_device_attr.
Signed-off-by: Konstantin Taranov <kotaranov@microsoft.com >
Link: https://lore.kernel.org/r/1717070117-1234-3-git-send-email-kotaranov@linux.microsoft.com
Reviewed-by: Long Li <longli@microsoft.com >
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2024-06-02 11:50:15 +03:00
Konstantin Taranov
53657a0419
RDMA/mana_ib: Create and destroy RC QP
...
Implement HW requests to create and destroy an RC QP.
An RC QP may have 5 queues.
Signed-off-by: Konstantin Taranov <kotaranov@microsoft.com >
Link: https://lore.kernel.org/r/1716366242-558-2-git-send-email-kotaranov@linux.microsoft.com
Reviewed-by: Long Li <longli@microsoft.com >
Reviewed-by: Zhu Yanjun <yanjun.zhu@linux.dev >
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2024-05-30 15:26:57 +03:00
Konstantin Taranov
5843415916
RDMA/mana_ib: create and destroy RNIC cqs
...
Implement RNIC requests for creation and destruction of RNIC CQs.
Signed-off-by: Konstantin Taranov <kotaranov@microsoft.com >
Link: https://lore.kernel.org/r/1714137160-5222-3-git-send-email-kotaranov@linux.microsoft.com
Reviewed-by: Long Li <longli@microsoft.com >
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2024-05-05 15:27:23 +03:00
Konstantin Taranov
e73c882f0a
RDMA/mana_ib: create EQs for RNIC CQs
...
Create EQs within mana_ib device. Such EQs are required
for creation of RNIC CQs.
Signed-off-by: Konstantin Taranov <kotaranov@microsoft.com >
Link: https://lore.kernel.org/r/1714137160-5222-2-git-send-email-kotaranov@linux.microsoft.com
Reviewed-by: Long Li <longli@microsoft.com >
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2024-05-05 15:27:23 +03:00
Konstantin Taranov
8859f009ac
RDMA/mana_ib: Configure mac address in RNIC
...
Set local mac address in RNIC, which is required by the HW.
Signed-off-by: Konstantin Taranov <kotaranov@microsoft.com >
Link: https://lore.kernel.org/r/1712738551-22075-7-git-send-email-kotaranov@linux.microsoft.com
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2024-04-16 14:28:26 +03:00
Konstantin Taranov
faafb8b126
RDMA/mana_ib: Adding and deleting GIDs
...
Implement add_gid and del_gid for RNIC.
IPv4 and IPv6 addresses are supported.
Signed-off-by: Konstantin Taranov <kotaranov@microsoft.com >
Link: https://lore.kernel.org/r/1712738551-22075-6-git-send-email-kotaranov@linux.microsoft.com
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2024-04-16 14:28:26 +03:00
Konstantin Taranov
8b184e4f1c
RDMA/mana_ib: Enable RoCE on port 1
...
Set netdev and RoCEv2 flag to enable GID population on port 1.
Use GIDs of the master netdev. As mc->ports[] stores slave devices,
use a helper to get the master netdev.
Signed-off-by: Konstantin Taranov <kotaranov@microsoft.com >
Link: https://lore.kernel.org/r/1712738551-22075-5-git-send-email-kotaranov@linux.microsoft.com
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2024-04-16 14:28:26 +03:00
Konstantin Taranov
4bda1d5332
RDMA/mana_ib: Implement port parameters
...
Implement port parameters for RNIC:
1) extend query_port() method
2) implement get_link_layer()
3) implement query_pkey()
Only port 1 can store GIDs.
Signed-off-by: Konstantin Taranov <kotaranov@microsoft.com >
Link: https://lore.kernel.org/r/1712738551-22075-4-git-send-email-kotaranov@linux.microsoft.com
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2024-04-16 14:28:26 +03:00
Konstantin Taranov
1a79c2b9d4
RDMA/mana_ib: Create and destroy rnic adapter
...
Add functions for RNIC creation and destruction.
If creation fails, the ib_probe fails as well.
Signed-off-by: Konstantin Taranov <kotaranov@microsoft.com >
Link: https://lore.kernel.org/r/1712738551-22075-3-git-send-email-kotaranov@linux.microsoft.com
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2024-04-16 14:28:26 +03:00
Konstantin Taranov
98b889c439
RDMA/mana_ib: Add EQ creation for rnic adapter
...
Create an error EQ for the RNIC adapter.
Signed-off-by: Konstantin Taranov <kotaranov@microsoft.com >
Link: https://lore.kernel.org/r/1712738551-22075-2-git-send-email-kotaranov@linux.microsoft.com
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2024-04-16 14:28:26 +03:00
Konstantin Taranov
c8fc935f4b
RDMA/mana_ib: remove useless return values from dbg prints
...
Remove printing ret value on success as it was always 0.
Signed-off-by: Konstantin Taranov <kotaranov@microsoft.com >
Link: https://lore.kernel.org/r/1712672465-29960-1-git-send-email-kotaranov@linux.microsoft.com
Reviewed-by: Long Li <longli@microsoft.com >
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2024-04-11 14:30:24 +03:00
Konstantin Taranov
46f5be7cd4
RDMA/mana_ib: Introduce helpers to create and destroy mana queues
...
Intoduce helpers to work with mana ib queues (struct mana_ib_queue).
A queue always consists of umem, gdma_region, and id.
A queue can become a WQ or a CQ.
Signed-off-by: Konstantin Taranov <kotaranov@microsoft.com >
Link: https://lore.kernel.org/r/1711483688-24358-2-git-send-email-kotaranov@linux.microsoft.com
Reviewed-by: Long Li <longli@microsoft.com >
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2024-04-02 11:30:22 +03:00
Konstantin Taranov
2d5c008157
RDMA/mana_ib: Use virtual address in dma regions for MRs
...
Introduce mana_ib_create_dma_region() to create dma regions with iova
for MRs. It allows creating MRs with any page offset. Previously,
only page-aligned addresses worked.
For dma regions that must have a zero dma offset (e.g., for queues),
mana_ib_create_zero_offset_dma_region() is added.
To get the zero offset, ib_umem_find_best_pgoff() is used with zero
pgoff_bitmask.
Fixes: 0266a17763 ("RDMA/mana_ib: Add a driver for Microsoft Azure Network Adapter")
Signed-off-by: Konstantin Taranov <kotaranov@microsoft.com >
Link: https://lore.kernel.org/r/1709560361-26393-3-git-send-email-kotaranov@linux.microsoft.com
Reviewed-by: Zhu Yanjun <yanjun.zhu@linux.dev >
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2024-03-07 11:32:33 +02:00
Konstantin Taranov
e02497fb65
RDMA/mana_ib: Fix bug in creation of dma regions
...
Use ib_umem_dma_offset() helper to calculate correct dma offset.
Fixes: 0266a17763 ("RDMA/mana_ib: Add a driver for Microsoft Azure Network Adapter")
Signed-off-by: Konstantin Taranov <kotaranov@microsoft.com >
Link: https://lore.kernel.org/r/1709560361-26393-2-git-send-email-kotaranov@linux.microsoft.com
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2024-03-07 11:32:33 +02:00
Konstantin Taranov
3b73eb3a4a
RDMA/mana_ib: Introduce mana_ib_get_netdev helper function
...
Use a helper function to access netdevs using a port number.
This patch removes code repetitions as well as removes the need
to explicitly use gdma_dev, which was error-prone.
Signed-off-by: Konstantin Taranov <kotaranov@microsoft.com >
Link: https://lore.kernel.org/r/1705965781-3235-3-git-send-email-kotaranov@linux.microsoft.com
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2024-01-25 12:03:07 +02:00
Konstantin Taranov
71c8cbfcdc
RDMA/mana_ib: Introduce mdev_to_gc helper function
...
Use a helper function to access gdma_context from mana_ib_dev.
This patch removes code repetitions as well as removes the need
to explicitly use gdma_dev, which was error-prone.
Signed-off-by: Konstantin Taranov <kotaranov@microsoft.com >
Link: https://lore.kernel.org/r/1705965781-3235-2-git-send-email-kotaranov@linux.microsoft.com
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2024-01-25 12:03:00 +02:00
Long Li
2c20e20b22
RDMA/mana_ib: query device capabilities
...
With RDMA device registered, use it to query on hardware capabilities and
cache this information for future query requests to the driver.
Signed-off-by: Long Li <longli@microsoft.com >
Link: https://lore.kernel.org/r/1702692255-23640-3-git-send-email-longli@linuxonhyperv.com
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2023-12-20 10:25:40 +02:00
Long Li
a7f0636d22
RDMA/mana_ib: register RDMA device with GDMA
...
Software client needs to register with the RDMA management interface on
the SoC to access more features, including querying device capabilities
and RC queue pair.
Signed-off-by: Long Li <longli@microsoft.com >
Link: https://lore.kernel.org/r/1702692255-23640-2-git-send-email-longli@linuxonhyperv.com
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2023-12-20 10:25:40 +02:00
Long Li
89d42b8c85
RDMA/mana_ib: Fix a bug when the PF indicates more entries for registering memory on first packet
...
When registering memory in a large chunk that doesn't fit into a single PF
message, the PF may return GDMA_STATUS_MORE_ENTRIES on the first message if
there are more messages needed for registering more chunks.
Fix the VF to make it process the correct return code.
Fixes: 0266a17763 ("RDMA/mana_ib: Add a driver for Microsoft Azure Network Adapter")
Link: https://lore.kernel.org/r/1676507522-21018-1-git-send-email-longli@linuxonhyperv.com
Signed-off-by: Long Li <longli@microsoft.com >
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com >
2023-02-16 12:03:16 -04:00
Long Li
0266a17763
RDMA/mana_ib: Add a driver for Microsoft Azure Network Adapter
...
Add a RDMA VF driver for Microsoft Azure Network Adapter (MANA).
Co-developed-by: Ajay Sharma <sharmaajay@microsoft.com >
Signed-off-by: Ajay Sharma <sharmaajay@microsoft.com >
Reviewed-by: Dexuan Cui <decui@microsoft.com >
Signed-off-by: Long Li <longli@microsoft.com >
Link: https://lore.kernel.org/r/1667502990-2559-13-git-send-email-longli@linuxonhyperv.com
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2022-11-11 11:40:09 +02:00