ACK/Cmnt: [PATCH] PCI: hv: Fix NUMA node assignment when kernel boots with custom NUMA topology

Stefan Bader stefan.bader at canonical.com
Fri Feb 18 09:09:25 UTC 2022


On 17.02.22 17:07, Tim Gardner wrote:
> From: Long Li <longli at microsoft.com>
> 
> BugLink: https://bugs.launchpad.net/bugs/1961300
> 
> When kernel boots with a NUMA topology with some NUMA nodes offline, the PCI
> driver should only set an online NUMA node on the device. This can happen
> during KDUMP where some NUMA nodes are not made online by the KDUMP kernel.
> 
> This patch also fixes the case where kernel is booting with "numa=off".
> 
> Fixes: 999dd956d838 ("PCI: hv: Add support for protocol 1.3 and support PCI_BUS_RELATIONS2")
> Signed-off-by: Long Li <longli at microsoft.com>
> Reviewed-by: Michael Kelley <mikelley at microsoft.com>
> Tested-by: Purna Pavan Chandra Aekkaladevi <paekkaladevi at microsoft.com>
> Acked-by: Lorenzo Pieralisi <lorenzo.pieralisi at arm.com>
> Link: https://lore.kernel.org/r/1643247814-15184-1-git-send-email-longli@linuxonhyperv.com
> Signed-off-by: Wei Liu <wei.liu at kernel.org>
> (cherry picked from commit 3149efcdf2c6314420c418dfc94de53bfd076b1f)
> Signed-off-by: Tim Gardner <tim.gardner at canonical.com>
Acked-by: Stefan Bader <stefan.bader at canonical.com>
> ---

As this is for hyperv and azure moved to 5.13 already, it is not urgent and we 
put this into hwe-5.11 just in case.

-Stefan

>   drivers/pci/controller/pci-hyperv.c | 13 +++++++++++--
>   1 file changed, 11 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/pci/controller/pci-hyperv.c b/drivers/pci/controller/pci-hyperv.c
> index 8ba3d2630c5a..22c97ddb5a32 100644
> --- a/drivers/pci/controller/pci-hyperv.c
> +++ b/drivers/pci/controller/pci-hyperv.c
> @@ -2160,8 +2160,17 @@ static void hv_pci_assign_numa_node(struct hv_pcibus_device *hbus)
>   		if (!hv_dev)
>   			continue;
>   
> -		if (hv_dev->desc.flags & HV_PCI_DEVICE_FLAG_NUMA_AFFINITY)
> -			set_dev_node(&dev->dev, hv_dev->desc.virtual_numa_node);
> +		if (hv_dev->desc.flags & HV_PCI_DEVICE_FLAG_NUMA_AFFINITY &&
> +		    hv_dev->desc.virtual_numa_node < num_possible_nodes())
> +			/*
> +			 * The kernel may boot with some NUMA nodes offline
> +			 * (e.g. in a KDUMP kernel) or with NUMA disabled via
> +			 * "numa=off". In those cases, adjust the host provided
> +			 * NUMA node to a valid NUMA node used by the kernel.
> +			 */
> +			set_dev_node(&dev->dev,
> +				     numa_map_to_online_node(
> +					     hv_dev->desc.virtual_numa_node));
>   
>   		put_pcichild(hv_dev);
>   	}

-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20220218/a7807fdf/attachment-0001.sig>


More information about the kernel-team mailing list