** Description changed:

+ [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_CACHEGEOMETRY: 128B line size, 8-way set associative
+ AT_L1D_CACHESIZE:     65536
+ AT_L1D_CACHEGEOMETRY: 128B line size, 8-way set associative
+ AT_L2_CACHESIZE:      524288
+ AT_L2_CACHEGEOMETRY:  128B line size, 8-way set associative
+ AT_L3_CACHESIZE:      8388608
+ AT_L3_CACHEGEOMETRY:  128B line size, 8-way set associative
+ 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=/etc/ld.so.cache
+     277374:    search 
path=/lib/powerpc64le-linux-gnu/tls/power8/altivec/dfp:/lib/powerpc64le-linux-gnu/tls/power8/altivec:/lib/powerpc64le-linux-gnu/tls/power8/dfp:/lib/powerpc64le-linux-gnu/tls/power8:/lib/powerpc64le-linux-gnu/tls/altivec/dfp:/lib/powerpc64le-linux-gnu/tls/altivec:/lib/powerpc64le-linux-gnu/tls/dfp:/lib/powerpc64le-linux-gnu/tls:/lib/powerpc64le-linux-gnu/power8/altivec/dfp:/lib/powerpc64le-linux-gnu/power8/altivec:/lib/powerpc64le-linux-gnu/power8/dfp:/lib/powerpc64le-linux-gnu/power8:/lib/powerpc64le-linux-gnu/altivec/dfp:/lib/powerpc64le-linux-gnu/altivec:/lib/powerpc64le-linux-gnu/dfp:/lib/powerpc64le-linux-gnu:/usr/lib/powerpc64le-linux-gnu/tls/power8/altivec/dfp:/usr/lib/powerpc64le-linux-gnu/tls/power8/altivec:/usr/lib/powerpc64le-linux-gnu/tls/power8/dfp:/usr/lib/powerpc64le-linux-gnu/tls/power8:/usr/lib/powerpc64le-linux-gnu/tls/altivec/dfp:/usr/lib/powerpc64le-linux-gnu/tls/altivec:/usr/lib/powerpc64le-linux-gnu/tls/dfp:/usr/lib/powerpc64le-linux-gnu/tls:/usr/lib/powerpc64le-linux-gnu/power8/altivec/dfp:/usr/lib/powerpc64le-linux-gnu/power8/altivec:/usr/lib/powerpc64le-linux-gnu/power8/dfp:/usr/lib/powerpc64le-linux-gnu/power8:/usr/lib/powerpc64le-linux-gnu/altivec/dfp:/usr/lib/powerpc64le-linux-gnu/altivec:/usr/lib/powerpc64le-linux-gnu/dfp:/usr/lib/powerpc64le-linux-gnu:/lib/tls/power8/altivec/dfp:/lib/tls/power8/altivec:/lib/tls/power8/dfp:/lib/tls/power8:/lib/tls/altivec/dfp:/lib/tls/altivec:/lib/tls/dfp:/lib/tls:/lib/power8/altivec/dfp:/lib/power8/altivec:/lib/power8/dfp:/lib/power8:/lib/altivec/dfp:/lib/altivec:/lib/dfp:/lib:/usr/lib/tls/power8/altivec/dfp:/usr/lib/tls/power8/altivec:/usr/lib/tls/power8/dfp:/usr/lib/tls/power8:/usr/lib/tls/altivec/dfp:/usr/lib/tls/altivec:/usr/lib/tls/dfp:/usr/lib/tls:/usr/lib/power8/altivec/dfp:/usr/lib/power8/altivec:/usr/lib/power8/dfp:/usr/lib/power8:/usr/lib/altivec/dfp:/usr/lib/altivec:/usr/lib/dfp:/usr/lib
            (system search path)
+     277374:     trying 
file=/lib/powerpc64le-linux-gnu/tls/power8/altivec/dfp/libc.so.6
+     277374:     trying 
file=/lib/powerpc64le-linux-gnu/tls/power8/altivec/libc.so.6
+     277374:     trying 
file=/lib/powerpc64le-linux-gnu/tls/power8/dfp/libc.so.6
+     277374:     trying file=/lib/powerpc64le-linux-gnu/tls/power8/libc.so.6
+     277374:     trying 
file=/lib/powerpc64le-linux-gnu/tls/altivec/dfp/libc.so.6
+     277374:     trying file=/lib/powerpc64le-linux-gnu/tls/altivec/libc.so.6
+     277374:     trying file=/lib/powerpc64le-linux-gnu/tls/dfp/libc.so.6
+     277374:     trying file=/lib/powerpc64le-linux-gnu/tls/libc.so.6
+     277374:     trying 
file=/lib/powerpc64le-linux-gnu/power8/altivec/dfp/libc.so.6
+     277374:     trying 
file=/lib/powerpc64le-linux-gnu/power8/altivec/libc.so.6
+     277374:     trying file=/lib/powerpc64le-linux-gnu/power8/dfp/libc.so.6
+     277374:     trying file=/lib/powerpc64le-linux-gnu/power8/libc.so.6
+     277374:     trying file=/lib/powerpc64le-linux-gnu/altivec/dfp/libc.so.6
+     277374:     trying file=/lib/powerpc64le-linux-gnu/altivec/libc.so.6
+     277374:     trying file=/lib/powerpc64le-linux-gnu/dfp/libc.so.6
+     277374:     trying file=/lib/powerpc64le-linux-gnu/libc.so.6
+     277374:   
+     277374:   
+     277374:   calling init: /lib/powerpc64le-linux-gnu/libc.so.6
+     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/avx2/avx512/lse etc built libraries on other architectures.
+ 
+ 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 <tuli...@br.ibm.com> - 
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/powerpc64le-linux-gnu/power10/.

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

Title:
  [20.04 Feature] Enable glibc for POWER10

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

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

Reply via email to