Test packages in ppa:mfo/lp2019856, verified with GDB (to fake CPU IDs) on Google Cloud ARM-based instances.
No differences in `lscpu` output for non-affected CPU. Expected output for both affected CPUs (0xd15, 0xd4f). Tested on LXD containers for Mantic, Lunar, and Jammy (not on Kinetic as it will EOL soon, ~2 months). Mantic: --- $ lxc launch ubuntu-daily:mantic mantic $ lxc shell mantic # lsb_release -cs No LSB modules are available. mantic Old: # apt install util-linux/mantic-proposed # dpkg -s util-linux | grep Version: Version: 2.38.1-5ubuntu1 # lscpu | grep -e 'Vendor ID:' -e 'Model name:' Vendor ID: ARM Model name: Neoverse-N1 # lscpu > lscpu.old Old/GDB: # apt install gdb # cat >lp2019856-reproducer.gdb <<EOF break arm_ids_decode run p ct.model call (void *) memcpy(ct.model, "0xd15", 6) p ct.model continue run p ct.model call (void *) memcpy(ct.model, "0xd4f", 6) p ct.model continue quit EOF # export DEBUGINFOD_URLS="https://debuginfod.ubuntu.com" # gdb -x lp2019856-reproducer.gdb -iex 'set debuginfod enabled on' lscpu 2>&1 | grep -e '^\$' -e 'Model name:' $1 = 0xaaaaaaad8570 "0xd0c" $2 = (void *) 0xaaaaaaad8570 $3 = 0xaaaaaaad8570 "0xd15" Model name: - $4 = 0xaaaaaaad8570 "0xd0c" $5 = (void *) 0xaaaaaaad8570 $6 = 0xaaaaaaad8570 "0xd4f" Model name: - New: # add-apt-repository -y ppa:mfo/lp2019856 # sed -i '/Components:/ s,$, main/debug,' /etc/apt/sources.list.d/mfo-ubuntu-lp2019856-mantic.sources # apt update # apt install -y util-linux util-linux-dbgsym # dpkg -s util-linux | grep Version: Version: 2.38.1-5ubuntu2 # lscpu | grep -e 'Vendor ID:' -e 'Model name:' Vendor ID: ARM Model name: Neoverse-N1 # lscpu > lscpu.new # diff lscpu.old lscpu.new # New/GDB: # gdb -x lp2019856-reproducer.gdb lscpu 2>&1 | grep -e '^\$' -e 'Model name:' $1 = 0xaaaaaaad8570 "0xd0c" $2 = (void *) 0xaaaaaaad8570 $3 = 0xaaaaaaad8570 "0xd15" Model name: Cortex-R82 $4 = 0xaaaaaaad8570 "0xd0c" $5 = (void *) 0xaaaaaaad8570 $6 = 0xaaaaaaad8570 "0xd4f" Model name: Neoverse-V2 Lunar --- $ lxc launch ubuntu:lunar lunar $ lxc shell lunar # lsb_release -cs No LSB modules are available. lunar Old: # dpkg -s util-linux | grep Version: Version: 2.38.1-4ubuntu1 # lscpu | grep -e 'Vendor ID:' -e 'Model name:' Vendor ID: ARM Model name: Neoverse-N1 # lscpu > lscpu.old # Old/GDB: # apt install gdb # export DEBUGINFOD_URLS="https://debuginfod.ubuntu.com" # cat >lp2019856-reproducer.gdb <<EOF break arm_ids_decode run p ct.model call (void *) memcpy(ct.model, "0xd15", 6) p ct.model continue run p ct.model call (void *) memcpy(ct.model, "0xd4f", 6) p ct.model continue quit EOF # gdb -x lp2019856-reproducer.gdb -iex 'set debuginfod enabled on' lscpu 2>&1 | grep -e '^\$' -e 'Model name:' $1 = 0xaaaaaaad8570 "0xd0c" $2 = (void *) 0xaaaaaaad8570 $3 = 0xaaaaaaad8570 "0xd15" Model name: - $4 = 0xaaaaaaad8570 "0xd0c" $5 = (void *) 0xaaaaaaad8570 $6 = 0xaaaaaaad8570 "0xd4f" Model name: - New: # add-apt-repository -y ppa:mfo/lp2019856 # sed -i '/^deb .* main$/ s:$: main/debug:' /etc/apt/sources.list.d/mfo-ubuntu-lp2019856-lunar.list # apt update # apt install -y util-linux util-linux-dbgsym # dpkg -s util-linux | grep Version: Version: 2.38.1-4ubuntu1.1 # lscpu | grep -e 'Vendor ID:' -e 'Model name:' Vendor ID: ARM Model name: Neoverse-N1 # lscpu > lscpu.new # diff lscpu.old lscpu.new # New/GDB: # gdb -x lp2019856-reproducer.gdb lscpu 2>&1 | grep -e '^\$' -e 'Model name:' $1 = 0xaaaaaaad8570 "0xd0c" $2 = (void *) 0xaaaaaaad8570 $3 = 0xaaaaaaad8570 "0xd15" Model name: Cortex-R82 $4 = 0xaaaaaaad8570 "0xd0c" $5 = (void *) 0xaaaaaaad8570 $6 = 0xaaaaaaad8570 "0xd4f" Model name: Neoverse-V2 Jammy --- $ lxc launch ubuntu:jammy jammy lxc shell jammy # lsb_release -cs jammy Old: # dpkg -s util-linux | grep Version: Version: 2.37.2-4ubuntu3 # # lscpu | grep -e 'Vendor ID:' -e 'Model name:' Vendor ID: ARM Model name: Neoverse-N1 # lscpu > lscpu.old Old/GDB: # wget https://launchpad.net/ubuntu/+archive/primary/+files/util-linux-dbgsym_2.37.2-4ubuntu3_arm64.ddeb # apt install -y gdb ./util-linux-dbgsym_2.37.2-4ubuntu3_arm64.ddeb * Jammy differences: break on arm_ids_decode() by line, and no Model name if unknown. # cat >lp2019856-reproducer-jammy.gdb <<EOF break sys-utils/lscpu-arm.c:258 run p ct.model call (void *) memcpy(ct.model, "0xd15", 6) p ct.model continue run p ct.model call (void *) memcpy(ct.model, "0xd4f", 6) p ct.model continue quit EOF # gdb -x lp2019856-reproducer-jammy.gdb lscpu 2>&1 | grep -e '^\$' -e 'Model name:' $1 = 0xaaaaaaacf5b0 "0xd0c" $2 = (void *) 0xaaaaaaacf5b0 $3 = 0xaaaaaaacf5b0 "0xd15" $4 = 0xaaaaaaacf5b0 "0xd0c" $5 = (void *) 0xaaaaaaacf5b0 $6 = 0xaaaaaaacf5b0 "0xd4f" New: # add-apt-repository -y ppa:mfo/lp2019856 # sed -i '/^deb .* main$/ s:$: main/debug:' /etc/apt/sources.list.d/mfo-ubuntu-lp2019856-jammy.list # apt update # apt install -y util-linux util-linux-dbgsym # dpkg -s util-linux | grep Version: Version: 2.37.2-4ubuntu3.1 # lscpu | grep -e 'Vendor ID:' -e 'Model name:' Vendor ID: ARM Model name: Neoverse-N1 # lscpu > lscpu.new # diff lscpu.old lscpu.new # New/GDB: # gdb -x lp2019856-reproducer-jammy.gdb lscpu 2>&1 | grep -e '^\$' -e 'Model name:' $1 = 0xaaaaaaacf5b0 "0xd0c" $2 = (void *) 0xaaaaaaacf5b0 $3 = 0xaaaaaaacf5b0 "0xd15" Model name: Cortex-R82 $4 = 0xaaaaaaacf5b0 "0xd0c" $5 = (void *) 0xaaaaaaacf5b0 $6 = 0xaaaaaaacf5b0 "0xd4f" Model name: Neoverse-V2 -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to util-linux in Ubuntu. https://bugs.launchpad.net/bugs/2019856 Title: Add missing ARM-cores to support Grace-based systems Status in util-linux package in Ubuntu: In Progress Status in util-linux source package in Jammy: In Progress Status in util-linux source package in Kinetic: Won't Fix Status in util-linux source package in Lunar: In Progress Status in util-linux source package in Mantic: In Progress Bug description: [Impact] When running "lscpu" on a Grace-based system + Ubuntu 22.04, it doesn't report a model name: Vendor ID: ARM Model: 0 [Fix] Adding the additional arm_part to sys-utils/lscpu-arm.c solves the problem. The commit below adds the specific codes missing from Jammy's version. https://github.com/util-linux/util- linux/commit/6857cccbb4157d5da34ca98f77a0ac9d68e1e740 [Test Steps] * Verify whether output of lscpu is correct on new CPUs; eg: Vendor ID: ARM Model name: Neoverse-V2 * Verify whether output of lscpu doesn't change on old CPUs; eg: Vendor ID: ARM Model name: Neoverse-N1 [What Could Go Wrong] The fix only introduces additional model identifiers to match against and print a model name string, thus regression impact should be contained within lscpu and printing cpus model name on ARM systems. Output doesn't change on systems with non-affected CPU models. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/util-linux/+bug/2019856/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp