[20.04 Feature] Enable glibc for POWER10
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
The Ubuntu-power-systems project |
Fix Released
|
Medium
|
Ubuntu on IBM Power Systems Bug Triage | ||
glibc (Ubuntu) |
Fix Released
|
Undecided
|
Canonical Foundations Team | ||
Focal |
Fix Released
|
Undecided
|
Canonical Foundations Team | ||
Groovy |
Fix Released
|
Undecided
|
Canonical Foundations Team |
Bug Description
[Impact]
* glibc / ld does not know about new power10 capability, and thus unable to load libraries optimizied for power10, on power10 hardware.
[Test Case]
* sudo rm /etc/ld.so.cache
* LD_SHOW_AUXV=yes LD_DEBUG=libs /bin/true
Expectations are that in AT_HWCAP2 power10 specific features are listed
AT_PLATFORM is set to power10
and that search paths include /power10/ directories
The sample output from power8 machine is this
$ LD_SHOW_AUXV=yes LD_DEBUG=libs /bin/true
AT_DCACHEBSIZE: 0x80
AT_ICACHEBSIZE: 0x80
AT_UCACHEBSIZE: 0x0
AT_SYSINFO_EHDR: 0x73b685b20000
AT_L1I_CACHESIZE: 32768
AT_L1I_
AT_L1D_CACHESIZE: 65536
AT_L1D_
AT_L2_CACHESIZE: 524288
AT_L2_CACHEGEOM
AT_L3_CACHESIZE: 8388608
AT_L3_CACHEGEOM
AT_HWCAP: true_le archpmu vsx arch_2_06 dfp ic_snoop smt mmu fpu altivec ppc64 ppc32
AT_PAGESZ: 65536
AT_CLKTCK: 100
AT_PHDR: 0x5b376320040
AT_PHENT: 56
AT_PHNUM: 9
AT_BASE: 0x73b685b40000
AT_FLAGS: 0x0
AT_ENTRY: 0x5b376321ab0
AT_UID: 1000
AT_EUID: 1000
AT_GID: 1000
AT_EGID: 1000
AT_SECURE: 0
AT_RANDOM: 0x7fffc779b3f2
AT_HWCAP2: htm-nosc vcrypto tar isel ebb dscr htm arch_2_07
AT_EXECFN: /bin/true
AT_PLATFORM: power8
AT_BASE_PLATFORM: power8
277374: find library=libc.so.6 [0]; searching
277374: search cache=/
277374: search path=/lib/
277374: trying file=/lib/
277374: trying file=/lib/
277374: trying file=/lib/
277374: trying file=/lib/
277374: trying file=/lib/
277374: trying file=/lib/
277374: trying file=/lib/
277374: trying file=/lib/
277374: trying file=/lib/
277374: trying file=/lib/
277374: trying file=/lib/
277374: trying file=/lib/
277374: trying file=/lib/
277374: trying file=/lib/
277374: trying file=/lib/
277374: trying file=/lib/
277374:
277374:
277374: calling init: /lib/powerpc64l
277374:
277374:
277374: initialize program: /bin/true
277374:
277374:
277374: transferring control: /bin/true
277374:
277374:
277374: calling fini: /bin/true [0]
277374:
[Regression Potential]
* The additional parsing of the new constant for HWCAP / PLATFORM are backwards compatible, however, it would be nice for the kernel to have the constants backported too. Such that focal kernel has support for POWER10 platform too. These will arrive in the hwe kernel, but should be backported to the generic kernel too.
At the moment Ubuntu, does not provide any power10 libraries, thus only locally built/provided libraries could be installed and loaded from the power10 paths. If such files are present on disk, on a power10 machines, and happen to be buggy and/or abi incompatible, hard to debug crashes may occur. However, this is no different to locally built power9/
There might be other pieces of software in focal unprepared for power10 AT_PLATFORM as it does sort lower than power9, when similar stanzas looped in the past unintended breakage may also occur.
If incompatibilities with power10 support are detected, they would need to be fixed up under HWE banner.
Note there are no current power10 hardware in production, thus these changes can currently only affect pre-release hardware.
[Other Info]
* Original bug report
== Comment: #0 - Tulio Magno Quites Machado Filho <email address hidden> - 2020-06-04 09:30:54 ==
Add the basic enablement of POWER10 in glibc (AT_PLATFORM and AT_HWCAP2) allowing userspace software to use POWER10 features by using STT_GNU_IFUNC or providing shared libraries for POWER10, e.g. with files in /usr/lib/
Related branches
- Balint Reczey: Pending requested
-
Diff: 470 lines (+425/-0)6 files modifieddebian/changelog (+4/-0)
debian/patches/powerpc/146fea07640387c78e334933de24b6353e1f0eba.patch (+161/-0)
debian/patches/powerpc/ae725e3f9cb4e1eb825ebe1d55241c98c2ea32f1.patch (+42/-0)
debian/patches/powerpc/d2ba3677da7a785556fcd708404d8e049b1c063b.patch (+183/-0)
debian/patches/powerpc/f6add169c89bbdd139a2eb845686127ead5799cd.patch (+31/-0)
debian/patches/series (+4/-0)
tags: | added: architecture-ppc64le bugnameltc-186074 severity-medium targetmilestone-inin2004 |
Changed in ubuntu: | |
assignee: | nobody → Ubuntu on IBM Power Systems Bug Triage (ubuntu-power-triage) |
affects: | ubuntu → glibc (Ubuntu) |
Changed in ubuntu-power-systems: | |
importance: | Undecided → Medium |
assignee: | nobody → Canonical Foundations Team (canonical-foundations) |
Changed in ubuntu-power-systems: | |
assignee: | Canonical Foundations Team (canonical-foundations) → Ubuntu on IBM Power Systems Bug Triage (ubuntu-power-triage) |
Changed in glibc (Ubuntu Groovy): | |
assignee: | Ubuntu on IBM Power Systems Bug Triage (ubuntu-power-triage) → Canonical Foundations Team (canonical-foundations) |
Changed in glibc (Ubuntu Focal): | |
assignee: | nobody → Canonical Foundations Team (canonical-foundations) |
tags: | added: id-5f1220e9995686255c4cc718 |
Changed in ubuntu-power-systems: | |
status: | New → Triaged |
description: | updated |
Changed in ubuntu-power-systems: | |
status: | Triaged → In Progress |
Changed in ubuntu-power-systems: | |
status: | In Progress → Fix Committed |
Changed in ubuntu-power-systems: | |
status: | Fix Committed → Fix Released |
tags: | added: fr-220 |
------- Comment From <email address hidden> 2020-07-20 14:43 EDT------- verification for this feature.
Since Canonical doesn't have any P10 hardware, Tulio confirmed that he will take up the testing/