[Patch net-next v2] net: mana: Record doorbell physical address in PF mode

longli@linuxonhyperv.com posted 1 patch 3 months, 4 weeks ago
There is a newer version of this series
drivers/net/ethernet/microsoft/mana/gdma_main.c | 3 +++
1 file changed, 3 insertions(+)
[Patch net-next v2] net: mana: Record doorbell physical address in PF mode
Posted by longli@linuxonhyperv.com 3 months, 4 weeks ago
From: Long Li <longli@microsoft.com>

MANA supports RDMA in PF mode. The driver should record the doorbell
physical address when in PF mode.

The doorbell physical address is used by the RDMA driver to map
doorbell pages of the device to user-mode applications through RDMA
verbs interface. In the past, they have been mapped to user-mode while
the device is in VF mode. With the support for PF mode implemented,
also expose those pages in PF mode.

Signed-off-by: Long Li <longli@microsoft.com>
---
Changes
v2: add more details in commit message on how the doorbell physical address is used

 drivers/net/ethernet/microsoft/mana/gdma_main.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/net/ethernet/microsoft/mana/gdma_main.c b/drivers/net/ethernet/microsoft/mana/gdma_main.c
index 3504507477c6..52cf7112762c 100644
--- a/drivers/net/ethernet/microsoft/mana/gdma_main.c
+++ b/drivers/net/ethernet/microsoft/mana/gdma_main.c
@@ -31,6 +31,9 @@ static void mana_gd_init_pf_regs(struct pci_dev *pdev)
 	gc->db_page_base = gc->bar0_va +
 				mana_gd_r64(gc, GDMA_PF_REG_DB_PAGE_OFF);
 
+	gc->phys_db_page_base = gc->bar0_pa +
+				mana_gd_r64(gc, GDMA_PF_REG_DB_PAGE_OFF);
+
 	sriov_base_off = mana_gd_r64(gc, GDMA_SRIOV_REG_CFG_BASE_OFF);
 
 	sriov_base_va = gc->bar0_va + sriov_base_off;
-- 
2.25.1
Re: [Patch net-next v2] net: mana: Record doorbell physical address in PF mode
Posted by Jakub Kicinski 3 months, 3 weeks ago
On Fri, 13 Jun 2025 10:46:05 -0700 longli@linuxonhyperv.com wrote:
> MANA supports RDMA in PF mode. The driver should record the doorbell
> physical address when in PF mode.
> 
> The doorbell physical address is used by the RDMA driver to map
> doorbell pages of the device to user-mode applications through RDMA
> verbs interface. In the past, they have been mapped to user-mode while
> the device is in VF mode. With the support for PF mode implemented,
> also expose those pages in PF mode.

It'd be good to indicate if the PF mode support is implemented as in
ready to be posted to the list, or implemented as in already in the
tree? If it's in tree then please quote the commit. If upcoming please
rephrase.

This commit msg is much better, thank you, but to a person handling
backports it will still not be immediately clear whether this is prep
work for a new code path, or a bug fix.
-- 
pw-bot: cr
Re: [Patch net-next v2] net: mana: Record doorbell physical address in PF mode
Posted by Shradha Gupta 3 months, 3 weeks ago
On Fri, Jun 13, 2025 at 10:46:05AM -0700, longli@linuxonhyperv.com wrote:
> From: Long Li <longli@microsoft.com>
> 
> MANA supports RDMA in PF mode. The driver should record the doorbell
> physical address when in PF mode.
> 
> The doorbell physical address is used by the RDMA driver to map
> doorbell pages of the device to user-mode applications through RDMA
> verbs interface. In the past, they have been mapped to user-mode while
> the device is in VF mode. With the support for PF mode implemented,
> also expose those pages in PF mode.
> 
> Signed-off-by: Long Li <longli@microsoft.com>
> ---
> Changes
> v2: add more details in commit message on how the doorbell physical address is used
> 
>  drivers/net/ethernet/microsoft/mana/gdma_main.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/drivers/net/ethernet/microsoft/mana/gdma_main.c b/drivers/net/ethernet/microsoft/mana/gdma_main.c
> index 3504507477c6..52cf7112762c 100644
> --- a/drivers/net/ethernet/microsoft/mana/gdma_main.c
> +++ b/drivers/net/ethernet/microsoft/mana/gdma_main.c
> @@ -31,6 +31,9 @@ static void mana_gd_init_pf_regs(struct pci_dev *pdev)
>  	gc->db_page_base = gc->bar0_va +
>  				mana_gd_r64(gc, GDMA_PF_REG_DB_PAGE_OFF);
>  
> +	gc->phys_db_page_base = gc->bar0_pa +
> +				mana_gd_r64(gc, GDMA_PF_REG_DB_PAGE_OFF);
> +
>  	sriov_base_off = mana_gd_r64(gc, GDMA_SRIOV_REG_CFG_BASE_OFF);
>  
>  	sriov_base_va = gc->bar0_va + sriov_base_off;
> -- 
> 2.25.1

Reviewed-by: Shradha Gupta <shradhagupta@linux.microsoft.com>