TL;DR: The following patch seems to fix the problem:
https://lore.kernel.org/all/wlscshbqan2svtqkz5xc6v47tzndfnsvge7h4lbfn67zoplekl@elt2oxwhrp6f/T/#u

---

As noted, when trying to load the i40e driver by itself it does not load
with the following error:

## Plucky P9
# unzstd 
/lib/modules/6.14.0-13-generic/kernel/drivers/net/ethernet/intel/i40e/i40e.ko.zst
 -o ./i40e.ko
# insmod i40e.ko 
insmod: ERROR: could not insert module i40e.ko: Unknown symbol in module
# dmesg | tail -n 1
[81939.426842] i40e: Unknown symbol libie_rx_pt_lut (err -2)

This is simply due to the fact that libie.ko must be loaded first, since
it is a dependency:

## Plucky P9
# modinfo ./i40e.ko 
filename:       /home/mpellizzer/playground/./i40e.ko
license:        GPL v2
import_ns:      LIBIE
description:    Intel(R) Ethernet Connection XL710 Network Driver
srcversion:     67BA2C92026E29EF9B4B3FD
...
depends:        libie
intree:         Y
name:           i40e

When trying to load libie.ko we get:

## Plucky P9
# unzstd 
/lib/modules/6.14.0-13-generic/kernel/drivers/net/ethernet/intel/libie/libie.ko.zst
 -o ./libie.ko
# insmod libie.ko 
[82148.116767] module_64: libie: doesn't contain __patchable_function_entries.
[82148.117858] module_64: libie: doesn't contain __patchable_function_entries.
insmod: ERROR: could not insert module libie.ko: Cannot allocate memory
# sudo dmesg | tail -n 4
[82148.116767] module_64: libie: doesn't contain __patchable_function_entries.
[82148.116833] execmem: unable to allocate memory
[82148.117858] module_64: libie: doesn't contain __patchable_function_entries.
[82148.117899] execmem: unable to allocate memory

This happens because (from the mail thread linked above):

"get_stubs_size assumes that there must always be at least one patchable
 function entry, which is not always the case (modules that export data
 but no code), otherwise it returns -ENOEXEC and thus the section header
 sh_size is set to that value. During module_memory_alloc() the size is
 passed to execmem_alloc() after being page-aligned and thus set to zero
 which will cause it to fail the allocation (and thus module loading) as
 __vmalloc_node_range() checks for zero-sized allocs and returns null"

Therefore the changes proposed here:
- 
https://lore.kernel.org/all/wlscshbqan2svtqkz5xc6v47tzndfnsvge7h4lbfn67zoplekl@elt2oxwhrp6f/T/#u
should fix the issue.

I applied the patch on top of the latest Plucky kernel, compiled and
loaded the new kernel on a P9 bare metal with Oracular on top (it was
not possible to install the kernel on Plucky since Plucky does not
boot). After the reboot the system comes up without presenting the bug
again:

# uname -a
Linux p9bm-t 6.14.0-13-generic #13 SMP Thu Apr  3 23:33:14 UTC 2025 ppc64le 
ppc64le ppc64le GNU/Linux

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2104297

Title:
  not able to install a Power9 bare metal with Ubuntu 25.04 Plucky

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu-power-systems/+bug/2104297/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to