[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#871595: initramfs-tools: Include mlx4 and mlx5 InfiniBand modules



Package: initramfs-tools
Version: 0.130
Severity: normal
Tags: patch

Hi,

Mellanox ConnectX architecture is:  mlx4_core is the lower level
PCI driver which register on the PCI id, and protocol specific drivers
are depended on it: mlx4_en - for Ethernet and mlx4_ib for Infiniband.
NIC could have multiple ports which can change their type dynamically.
We use the request_module() call to load the relevant protocol driver
when needed: on loading time or at port type change event.

The mlx4_core and mlx5_core modules are included in the initrd, but not
mlx4_ib and mlx5_ib. Thus the request_module() call will not find these
modules and fail load them. The mlx*_ib module loading will not be
retried.

Therefore also include mlx4_ib and mlx5_ib in the initrd to make
autoloading them work. The patch for that is attached.

-- 
Benjamin Drung
System Developer
Debian & Ubuntu Developer

ProfitBricks GmbH
Greifswalder Str. 207
D - 10405 Berlin

Email: benjamin.drung@profitbricks.com
Web: https://www.profitbricks.com

Sitz der Gesellschaft: Berlin.
Registergericht: Amtsgericht Charlottenburg, HRB 125506B.
Geschäftsführer: Achim Weiss.
>From 209ed6a522790d621636e2319c218f1db0015e8a Mon Sep 17 00:00:00 2001
From: Benjamin Drung <benjamin.drung@profitbricks.com>
Date: Wed, 9 Aug 2017 19:24:03 +0200
Subject: [PATCH] Include mlx4 and mlx5 InfiniBand modules

Mellanox ConnectX architecture is:  mlx4_core is the lower level
PCI driver which register on the PCI id, and protocol specific drivers
are depended on it: mlx4_en - for Ethernet and mlx4_ib for Infiniband.
NIC could have multiple ports which can change their type dynamically.
We use the request_module() call to load the relevant protocol driver
when needed: on loading time or at port type change event.

The mlx4_core and mlx5_core modules are included in the initrd, but not
mlx4_ib and mlx5_ib. Thus the request_module() call will not find these
modules and fail load them. The mlx*_ib module loading will not be
retried.

Therefore also include mlx4_ib and mlx5_ib in the initrd to make
autoloading them work.

Signed-off-by: Benjamin Drung <benjamin.drung@profitbricks.com>
---
 hook-functions | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/hook-functions b/hook-functions
index 679e11d..7b5f9c1 100644
--- a/hook-functions
+++ b/hook-functions
@@ -552,6 +552,10 @@ auto_add_modules()
 				macvtap.ko pcmcia sb1000.ko team tokenring \
 				tun.ko usb veth.ko wan wimax wireless \
 				xen-netback.ko
+			# Include modules that can be request_module'd from
+			# their network drivers (e.g. from mlx4_core)
+			copy_modules_dir kernel/drivers/infiniband/hw/mlx4
+			copy_modules_dir kernel/drivers/infiniband/hw/mlx5
 		;;
 		ide)
 			copy_modules_dir kernel/drivers/ide
-- 
2.11.0


Reply to: