[20.04 FEAT] Set Architecture Level (ALS) to z13

Bug #1837525 reported by bugproxy
28
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Ubuntu on IBM z Systems
Fix Released
High
Unassigned
atlas (Ubuntu)
Fix Released
Low
Unassigned
gcc-10 (Ubuntu)
Won't Fix
Undecided
Unassigned
gcc-9 (Ubuntu)
Fix Released
Undecided
Matthias Klose
linux (Ubuntu)
Fix Released
Undecided
Canonical Kernel

Bug Description

IBM requests to update the Architecture Level Set (ALS) as follow..
march=z13
mtune=z15

CVE References

bugproxy (bugproxy)
tags: added: architecture-s39064 bugnameltc-178648 severity-high targetmilestone-inin2004
Changed in ubuntu:
assignee: nobody → Skipper Bug Screeners (skipper-screen-team)
affects: ubuntu → linux (Ubuntu)
Frank Heimes (fheimes)
Changed in ubuntu-z-systems:
status: New → Triaged
importance: Undecided → High
Revision history for this message
Frank Heimes (fheimes) wrote :

I assume this needs to be marked as affecting other components or projects, too (like launchpad-buildd ?), but I leave this up to Foundations.

Revision history for this message
Frank Heimes (fheimes) wrote :

Changing the status to Incomplete until work for 20.04 starts.

Changed in ubuntu-z-systems:
status: Triaged → Incomplete
assignee: nobody → Canonical Foundations Team (canonical-foundations)
Revision history for this message
Steve Langasek (vorlon) wrote :

defaults for userspace are set in the compiler.

Revision history for this message
Dimitri John Ledkov (xnox) wrote :

Just to re-confirm, if we raise the march to z13, it will mean .deb packages will start to require z13 ISA. It will mean that z12 mainframes will not be able to run Ubuntu 19.10 and later neither as host, nor guest, nor container, nor chroot.

z12 will only be able to run 19.04 and prior releases.

Revision history for this message
Frank Heimes (fheimes) wrote :

The consequences you described are in principle correct.
But please notice that this is a ticket for 20.04, rather than 19.10.
(Notice the headline as well as the targetmilestone-inin2004 tag.)
Means starting with 20.04 the packages should req. z13 as ISA.

Frank Heimes (fheimes)
Changed in ubuntu-z-systems:
status: Incomplete → Triaged
Revision history for this message
Dimitri John Ledkov (xnox) wrote :

Rebuilding eoan gcc-9.2.1 and comparing test results between -march=zEC12 & -march=z13 -mtune=z15

There appear to be (a) improved test results (FAIL->PASS) (b) not supported tests anymore (PASS->missing) (c) regressed tests (PASS->FAIL). This needs investigating. I will publish raw logs (massaged to reduce non-reproducible directory names) shortly. Here are some highlights.

Regressions:

-PASS: gcc.dg/attr-vector_size.c LP64 (test for errors, line 33)
-PASS: gcc.dg/attr-vector_size.c LP64 (test for errors, line 60)
-PASS: gcc.dg/attr-vector_size.c (test for excess errors)
+FAIL: gcc.dg/attr-vector_size.c (internal compiler error)
+FAIL: gcc.dg/attr-vector_size.c LP64 (test for errors, line 33)
+FAIL: gcc.dg/attr-vector_size.c LP64 (test for errors, line 60)
+FAIL: gcc.dg/attr-vector_size.c (test for excess errors)

-PASS: gcc.dg/tree-ssa/gen-vect-11.c scan-tree-dump-times vect "vectorized 1 loops" 1
+FAIL: gcc.dg/tree-ssa/gen-vect-11.c scan-tree-dump-times vect "vectorized 1 loops" 1

-PASS: gcc.dg/tree-ssa/gen-vect-26.c scan-tree-dump-times vect "Vectorizing an unaligned access" 0
-PASS: gcc.dg/tree-ssa/gen-vect-26.c scan-tree-dump-times vect "Alignment of access forced using peeling" 1
+FAIL: gcc.dg/tree-ssa/gen-vect-26.c scan-tree-dump-times vect "Vectorizing an unaligned access" 0
+FAIL: gcc.dg/tree-ssa/gen-vect-26.c scan-tree-dump-times vect "Alignment of access forced using peeling" 1

-PASS: gcc.dg/tree-ssa/gen-vect-28.c scan-tree-dump-times vect "Vectorizing an unaligned access" 0
-PASS: gcc.dg/tree-ssa/gen-vect-28.c scan-tree-dump-times vect "Alignment of access forced using peeling" 1
+FAIL: gcc.dg/tree-ssa/gen-vect-28.c scan-tree-dump-times vect "Vectorizing an unaligned access" 0
+FAIL: gcc.dg/tree-ssa/gen-vect-28.c scan-tree-dump-times vect "Alignment of access forced using peeling" 1

-PASS: gcc.dg/tree-ssa/gen-vect-32.c scan-tree-dump-times vect "vectorized 1 loops" 1
+FAIL: gcc.dg/tree-ssa/gen-vect-32.c scan-tree-dump-times vect "vectorized 1 loops" 1

Revision history for this message
Dimitri John Ledkov (xnox) wrote :

Now some of the odd things:

Old tests that passed, that have disappeared (50 tests): (Eeek!)

gcc.target/s390/md/andc-splitter-1.c -O1 execution test
gcc.target/s390/md/andc-splitter-1.c -O2 execution test
gcc.target/s390/md/andc-splitter-1.c -O3 execution test
gcc.target/s390/md/andc-splitter-1.c -Os execution test
gcc.target/s390/md/andc-splitter-2.c -O1 execution test
gcc.target/s390/md/andc-splitter-2.c -O2 execution test
gcc.target/s390/md/andc-splitter-2.c -O3 execution test
gcc.target/s390/md/andc-splitter-2.c -Os execution test
gcc.target/s390/md/atomic_compare_exchange-1.c -O0 execution test
gcc.target/s390/md/atomic_compare_exchange-1.c -O1 execution test
gcc.target/s390/md/atomic_compare_exchange-1.c -O2 execution test
gcc.target/s390/md/atomic_compare_exchange-1.c -O3 execution test
gcc.target/s390/md/atomic_compare_exchange-1.c -Os execution test
gcc.target/s390/md/atomic_compare_exchange-1.c execution test
gcc.target/s390/md/atomic_exchange-1.c -O0 execution test
gcc.target/s390/md/atomic_exchange-1.c -O1 execution test
gcc.target/s390/md/atomic_exchange-1.c -O2 execution test
gcc.target/s390/md/atomic_exchange-1.c -O3 execution test
gcc.target/s390/md/atomic_exchange-1.c -Os execution test
gcc.target/s390/md/atomic_exchange-1.c execution test
gcc.target/s390/md/setmem_long-1.c -O1 execution test
gcc.target/s390/md/setmem_long-1.c -O2 execution test
gcc.target/s390/md/setmem_long-1.c -O3 execution test
gcc.target/s390/md/setmem_long-1.c -Os execution test
gfortran.dg/guality/arg1.f90 -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions line 14 a(10) == 10

So, these tests do exist, are compiled, but then not executed, as if these are no longer supported to be executed on -march=z13?
Or do our QEMU KVM virtual machines lack some settings on the LPAR in HMC or on the QEMU VM cmdline to execute them?

Revision history for this message
Dimitri John Ledkov (xnox) wrote :
Changed in gcc-9 (Ubuntu):
status: New → Incomplete
Changed in ubuntu-z-systems:
status: Triaged → Incomplete
Revision history for this message
bugproxy (bugproxy) wrote : Comment bridged from LTC Bugzilla
Download full text (4.9 KiB)

------- Comment From <email address hidden> 2019-10-22 07:53 EDT-------
(In reply to comment #16)
> Rebuilding eoan gcc-9.2.1 and comparing test results between -march=zEC12 &
> -march=z13 -mtune=z15
>
> There appear to be (a) improved test results (FAIL->PASS) (b) not supported
> tests anymore (PASS->missing) (c) regressed tests (PASS->FAIL). This needs
> investigating. I will publish raw logs (massaged to reduce non-reproducible
> directory names) shortly. Here are some highlights.
>
> Regressions:
>
> -PASS: gcc.dg/attr-vector_size.c LP64 (test for errors, line 33)
> -PASS: gcc.dg/attr-vector_size.c LP64 (test for errors, line 60)
> -PASS: gcc.dg/attr-vector_size.c (test for excess errors)
> +FAIL: gcc.dg/attr-vector_size.c (internal compiler error)

That one indeed needs to be fixed. I'll post a patch. However, the test only checks what gcc does when trying to define huge vector data types. These are way beyond practical uses. So this should be no limitation with real workloads.

> +FAIL: gcc.dg/attr-vector_size.c LP64 (test for errors, line 33)
> +FAIL: gcc.dg/attr-vector_size.c LP64 (test for errors, line 60)
> +FAIL: gcc.dg/attr-vector_size.c (test for excess errors)
>
> -PASS: gcc.dg/tree-ssa/gen-vect-11.c scan-tree-dump-times vect "vectorized 1
> loops" 1
> +FAIL: gcc.dg/tree-ssa/gen-vect-11.c scan-tree-dump-times vect "vectorized 1
> loops" 1
>
> -PASS: gcc.dg/tree-ssa/gen-vect-26.c scan-tree-dump-times vect "Vectorizing
> an unaligned access" 0
> -PASS: gcc.dg/tree-ssa/gen-vect-26.c scan-tree-dump-times vect "Alignment of
> access forced using peeling" 1
> +FAIL: gcc.dg/tree-ssa/gen-vect-26.c scan-tree-dump-times vect "Vectorizing
> an unaligned access" 0
> +FAIL: gcc.dg/tree-ssa/gen-vect-26.c scan-tree-dump-times vect "Alignment of
> access forced using peeling" 1
>
> -PASS: gcc.dg/tree-ssa/gen-vect-28.c scan-tree-dump-times vect "Vectorizing
> an unaligned access" 0
> -PASS: gcc.dg/tree-ssa/gen-vect-28.c scan-tree-dump-times vect "Alignment of
> access forced using peeling" 1
> +FAIL: gcc.dg/tree-ssa/gen-vect-28.c scan-tree-dump-times vect "Vectorizing
> an unaligned access" 0
> +FAIL: gcc.dg/tree-ssa/gen-vect-28.c scan-tree-dump-times vect "Alignment of
> access forced using peeling" 1
>
> -PASS: gcc.dg/tree-ssa/gen-vect-32.c scan-tree-dump-times vect "vectorized 1
> loops" 1
> +FAIL: gcc.dg/tree-ssa/gen-vect-32.c scan-tree-dump-times vect "vectorized 1
> loops" 1

These tests check whether certain vectorizations take place or not. They are very fragile. I'll have a look but that's definitely not critical.

>
> Now some of the odd things:
>
> Old tests that passed, that have disappeared (50 tests): (Eeek!)
>
> gcc.target/s390/md/andc-splitter-1.c -O1 execution test
> gcc.target/s390/md/andc-splitter-1.c -O2 execution test
> gcc.target/s390/md/andc-splitter-1.c -O3 execution test
> gcc.target/s390/md/andc-splitter-1.c -Os execution test
> gcc.target/s390/md/andc-splitter-2.c -O1 execution test
> gcc.target/s390/md/andc-splitter-2.c -O2 execution test
> gcc.target/s390/md/andc-splitter-2.c -O3 execution test
> gcc.target/s390/md/andc-splitter-2.c -Os execution test
> gcc.target/s390/md/atomic_compare_exchange-1...

Read more...

Revision history for this message
Dimitri John Ledkov (xnox) wrote :
Changed in linux (Ubuntu):
status: New → Confirmed
Changed in gcc-9 (Ubuntu):
status: Incomplete → Confirmed
information type: Private → Public
Changed in ubuntu-z-systems:
status: Incomplete → Confirmed
Changed in linux (Ubuntu):
assignee: Skipper Bug Screeners (skipper-screen-team) → Canonical Kernel (canonical-kernel)
Changed in gcc-9 (Ubuntu):
assignee: nobody → Matthias Klose (doko)
Changed in ubuntu-z-systems:
assignee: Canonical Foundations Team (canonical-foundations) → nobody
Seth Forshee (sforshee)
Changed in linux (Ubuntu):
status: Confirmed → Fix Committed
Changed in gcc-9 (Ubuntu):
status: Confirmed → Fix Committed
Frank Heimes (fheimes)
Changed in ubuntu-z-systems:
status: Confirmed → Fix Committed
tags: added: id-5d37a1077ecdd459fd008ecd
Changed in gcc-9 (Ubuntu):
status: Fix Committed → Fix Released
Revision history for this message
bugproxy (bugproxy) wrote :

------- Comment From <email address hidden> 2019-11-05 10:42 EDT-------
(In reply to comment #16)
> Rebuilding eoan gcc-9.2.1 and comparing test results between -march=zEC12 &
> -march=z13 -mtune=z15
>
> There appear to be (a) improved test results (FAIL->PASS) (b) not supported
> tests anymore (PASS->missing) (c) regressed tests (PASS->FAIL). This needs
> investigating. I will publish raw logs (massaged to reduce non-reproducible
> directory names) shortly. Here are some highlights.
...
I've applied a few patches fixing these issues to GCC mainline and GCC 9 branch:
https://gcc.gnu.org/ml/gcc-patches/2019-11/msg00282.html

Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (8.6 KiB)

This bug was fixed in the package linux - 5.4.0-9.12

---------------
linux (5.4.0-9.12) focal; urgency=medium

  * alsa/hda/realtek: the line-out jack doens't work on a dell AIO
    (LP: #1855999)
    - SAUCE: ALSA: hda/realtek - Line-out jack doesn't work on a Dell AIO

  * scsi: hisi_sas: Check sas_port before using it (LP: #1855952)
    - scsi: hisi_sas: Check sas_port before using it

  * CVE-2019-19078
    - ath10k: fix memory leak

  * cifs: DFS Caching feature causing problems traversing multi-tier DFS setups
    (LP: #1854887)
    - cifs: Fix retrieval of DFS referrals in cifs_mount()

  * Support DPCD aux brightness control (LP: #1856134)
    - SAUCE: drm/i915: Fix eDP DPCD aux max backlight calculations
    - SAUCE: drm/i915: Assume 100% brightness when not in DPCD control mode
    - SAUCE: drm/i915: Fix DPCD register order in intel_dp_aux_enable_backlight()
    - SAUCE: drm/i915: Auto detect DPCD backlight support by default
    - SAUCE: drm/i915: Force DPCD backlight mode on X1 Extreme 2nd Gen 4K AMOLED
      panel
    - USUNTU: SAUCE: drm/i915: Force DPCD backlight mode on Dell Precision 4K sku

  * The system cannot resume from S3 if user unplugs the TB16 during suspend
    state (LP: #1849269)
    - PCI: pciehp: Do not disable interrupt twice on suspend
    - PCI: pciehp: Prevent deadlock on disconnect

  * change kconfig of the soundwire bus driver from y to m (LP: #1855685)
    - [Config]: SOUNDWIRE=m

  * alsa/sof: change to use hda hdmi codec driver to make hdmi audio on the
    docking station work (LP: #1855666)
    - ALSA: hda/hdmi - implement mst_no_extra_pcms flag
    - ASoC: hdac_hda: add support for HDMI/DP as a HDA codec
    - ASoC: Intel: skl-hda-dsp-generic: use snd-hda-codec-hdmi
    - ASoC: Intel: skl-hda-dsp-generic: fix include guard name
    - ASoC: SOF: Intel: add support for snd-hda-codec-hdmi
    - ASoC: Intel: bxt-da7219-max98357a: common hdmi codec support
    - ASoC: Intel: glk_rt5682_max98357a: common hdmi codec support
    - ASoC: intel: sof_rt5682: common hdmi codec support
    - ASoC: Intel: bxt_rt298: common hdmi codec support
    - ASoC: SOF: enable sync_write in hdac_bus
    - [config]: SND_SOC_SOF_HDA_COMMON_HDMI_CODEC=y

  * Fix unusable USB hub on Dell TB16 after S3 (LP: #1855312)
    - SAUCE: USB: core: Make port power cycle a seperate helper function
    - SAUCE: USB: core: Attempt power cycle port when it's in eSS.Disabled state

  * Focal update: v5.4.3 upstream stable release (LP: #1856583)
    - rsi: release skb if rsi_prepare_beacon fails
    - arm64: tegra: Fix 'active-low' warning for Jetson TX1 regulator
    - arm64: tegra: Fix 'active-low' warning for Jetson Xavier regulator
    - perf scripts python: exported-sql-viewer.py: Fix use of TRUE with SQLite
    - sparc64: implement ioremap_uc
    - lp: fix sparc64 LPSETTIMEOUT ioctl
    - time: Zero the upper 32-bits in __kernel_timespec on 32-bit
    - mailbox: tegra: Fix superfluous IRQ error message
    - staging/octeon: Use stubs for MIPS && !CAVIUM_OCTEON_SOC
    - usb: gadget: u_serial: add missing port entry locking
    - serial: 8250-mtk: Use platform_get_irq_optional() for optional irq
    - tty: serial: fsl_lpuart: use the sg ...

Read more...

Changed in linux (Ubuntu):
status: Fix Committed → Fix Released
Frank Heimes (fheimes)
Changed in ubuntu-z-systems:
status: Fix Committed → Fix Released
Changed in atlas (Ubuntu):
importance: Undecided → Low
Revision history for this message
bugproxy (bugproxy) wrote :

------- Comment From <email address hidden> 2020-01-20 05:29 EDT-------
IBM Bugzilla closed -> Fix Released for focal...

Changed in atlas (Ubuntu):
status: New → Fix Committed
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package atlas - 3.10.3-8ubuntu7

---------------
atlas (3.10.3-8ubuntu7) focal; urgency=medium

  * s390x: Drop zEC12 build, bump default build to z13, with
    "cross-compiled" z14 build. LP: #1837525

 -- Dimitri John Ledkov <email address hidden> Thu, 26 Mar 2020 11:13:42 +0000

Changed in atlas (Ubuntu):
status: Fix Committed → Fix Released
Revision history for this message
Dimitri John Ledkov (xnox) wrote :

Due to a bug in gcc-9 (default version) packaging, it has been configured in focal with both march & mtune set to z13.

And gcc-9 will remain configured this way in focal (20.04). At this point we don't have enough time for a full archive rebuild with mtune set to z15, and majority of distribution binaries will not be rebuild at this point and are final. Meaning an update to z15 will only have impact on security & SRU packages. Changing mtune in all focal SRUs & security updates increases risk of any update regressing or failing to build from source. We can SRU individual packages to build with mtune z15 if there is significant performance improvement from doing so.

Linux Kernel & atlas are correctly built with mtune z15 in focal.

focal (20.04) will have non-default gcc-10 updated to use march z13 & mtune z15.
GG-series (20.10) will have the default gcc version updated to use march z13 & mtune z15.

Revision history for this message
Matthias Klose (doko) wrote :

won't fix this for gcc-10 in 20.10 either. Now enabled for the g-series

Changed in gcc-10 (Ubuntu):
status: New → Won't Fix
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.