mbox series

[SRU,N:nvidia,0/8] MANA: include driver fixes and enable module on ARM64

Message ID 20241016133706.173515-1-jacob.martin@canonical.com
Headers show
Series MANA: include driver fixes and enable module on ARM64 | expand

Message

Jacob Martin Oct. 16, 2024, 1:36 p.m. UTC
BugLink: https://bugs.launchpad.net/bugs/2084598

SRU Justification

[Impact]

NVIDIA kernels are used on systems that require support for the Microsoft Azure
Network Adapter, including on ARM64 systems with support for 64K and 4K page
sizes. Build the MANA driver on both arches and include the listed fixes for
the MANA driver to support both 64K and 4K page sizes and address a race
condition.

[Fix]

UBUNTU: [Packaging] nvidia: Include mana.ko in linux-modules-ABIVER package 
UBUNTU: [Config] nvidia: Enable MANA configs on x86 and arm64
RDMA/mana_ib: use the correct page size for mapping user-mode doorbell page
RDMA/mana_ib: use the correct page table index based on hardware page size
net: mana: Fix RX buf alloc_size alignment and atomic op panic
net: mana: Fix race of mana_hwc_post_rx_wqe and new hwc response
net: mana: Add support for page sizes other than 4KB on ARM64
net: mana: Enable MANA driver on ARM64 with 4K page size

[Test Plan]

Compile tested on x86 and arm64. Kernel regression testing will be run to
verify there are no regressions from these patches on NVIDIA hardware.

[Where problems could occur]

These changes are specific to the MANA networking driver. Issues with this
patch would manifest as misbehavior of that driver, likely on ARM64 platforms.

Haiyang Zhang (4):
  net: mana: Enable MANA driver on ARM64 with 4K page size
  net: mana: Add support for page sizes other than 4KB on ARM64
  net: mana: Fix race of mana_hwc_post_rx_wqe and new hwc response
  net: mana: Fix RX buf alloc_size alignment and atomic op panic

Jacob Martin (2):
  UBUNTU: [Config] nvidia: Enable MANA configs on x86 and arm64
  UBUNTU: [Packaging] nvidia: Include mana.ko in linux-modules-ABIVER
    package

Long Li (2):
  RDMA/mana_ib: use the correct page table index based on hardware page
    size
  RDMA/mana_ib: use the correct page size for mapping user-mode doorbell
    page

 debian.nvidia/config/annotations              |  6 ++
 debian.nvidia/control.d/nvidia.inclusion-list |  1 +
 drivers/infiniband/hw/mana/main.c             |  8 +-
 drivers/net/ethernet/microsoft/Kconfig        |  3 +-
 .../net/ethernet/microsoft/mana/gdma_main.c   | 10 +--
 .../net/ethernet/microsoft/mana/hw_channel.c  | 76 ++++++++++---------
 drivers/net/ethernet/microsoft/mana/mana_en.c | 14 ++--
 .../net/ethernet/microsoft/mana/shm_channel.c | 13 ++--
 include/net/mana/gdma.h                       | 10 ++-
 include/net/mana/mana.h                       |  3 +-
 10 files changed, 86 insertions(+), 58 deletions(-)

Comments

John Cabaj Oct. 16, 2024, 2:13 p.m. UTC | #1
On 10/16/24 8:36 AM, Jacob Martin wrote:
> BugLink: https://bugs.launchpad.net/bugs/2084598
> 
> SRU Justification
> 
> [Impact]
> 
> NVIDIA kernels are used on systems that require support for the Microsoft Azure
> Network Adapter, including on ARM64 systems with support for 64K and 4K page
> sizes. Build the MANA driver on both arches and include the listed fixes for
> the MANA driver to support both 64K and 4K page sizes and address a race
> condition.
> 
> [Fix]
> 
> UBUNTU: [Packaging] nvidia: Include mana.ko in linux-modules-ABIVER package
> UBUNTU: [Config] nvidia: Enable MANA configs on x86 and arm64
> RDMA/mana_ib: use the correct page size for mapping user-mode doorbell page
> RDMA/mana_ib: use the correct page table index based on hardware page size
> net: mana: Fix RX buf alloc_size alignment and atomic op panic
> net: mana: Fix race of mana_hwc_post_rx_wqe and new hwc response
> net: mana: Add support for page sizes other than 4KB on ARM64
> net: mana: Enable MANA driver on ARM64 with 4K page size
> 
> [Test Plan]
> 
> Compile tested on x86 and arm64. Kernel regression testing will be run to
> verify there are no regressions from these patches on NVIDIA hardware.
> 
> [Where problems could occur]
> 
> These changes are specific to the MANA networking driver. Issues with this
> patch would manifest as misbehavior of that driver, likely on ARM64 platforms.
> 
> Haiyang Zhang (4):
>    net: mana: Enable MANA driver on ARM64 with 4K page size


>    net: mana: Add support for page sizes other than 4KB on ARM64>    net: mana: Fix race of mana_hwc_post_rx_wqe and new hwc response

These two commits were picked from linux-next and netdev at the time, 
but haven since been upstreamed. We should manually cherry-pick these 
from upstream instead.




>    net: mana: Fix RX buf alloc_size alignment and atomic op panic
> 
> Jacob Martin (2):
>    UBUNTU: [Config] nvidia: Enable MANA configs on x86 and arm64
>    UBUNTU: [Packaging] nvidia: Include mana.ko in linux-modules-ABIVER
>      package
> 
> Long Li (2):
>    RDMA/mana_ib: use the correct page table index based on hardware page
>      size
>    RDMA/mana_ib: use the correct page size for mapping user-mode doorbell
>      page
> 
>   debian.nvidia/config/annotations              |  6 ++
>   debian.nvidia/control.d/nvidia.inclusion-list |  1 +
>   drivers/infiniband/hw/mana/main.c             |  8 +-
>   drivers/net/ethernet/microsoft/Kconfig        |  3 +-
>   .../net/ethernet/microsoft/mana/gdma_main.c   | 10 +--
>   .../net/ethernet/microsoft/mana/hw_channel.c  | 76 ++++++++++---------
>   drivers/net/ethernet/microsoft/mana/mana_en.c | 14 ++--
>   .../net/ethernet/microsoft/mana/shm_channel.c | 13 ++--
>   include/net/mana/gdma.h                       | 10 ++-
>   include/net/mana/mana.h                       |  3 +-
>   10 files changed, 86 insertions(+), 58 deletions(-)
>