** Description changed:

+ [Impact]
+ 
+  * Needlessly slow systemctl daemon-reload on baremetal s390x machines
+  * Wipes information about auxilary bits, by force resetting kernel version
+ 
+ [Test Case]
+ 
+ $ cat /sys/firmware/cpi/system_level
+ 0x0000000000041200
+ 
+ Note the 41200 digits, this is hex-encoded kernel version number. Can be
+ different depending on the kernel in use
+ 
+ $ sudo /lib/s390-tools/cpictl -b kvm
+ $ cat /sys/firmware/cpi/system_level
+ 0x8000000000041200
+ 
+ # Note the leading bit is now 0x8, instead of 0x0
+ 
+ $ sudo systemctl daemon-reload
+ $ cat /sys/firmware/cpi/system_level
+ 0x8000000000041200 -> is correct, 0x8 is preserved
+ 0x0000000000041200 -> is wrong, 0x8 got reset to 0x0
+ 
+ [Solution]
+ In Ubuntu, cpi vars are set using systemd generator on early boot, thus HMC 
displays correct information about an LPAR very early on.
+ However, setting them takes about 1s, and at the moment was done upon every 
systemctl daemon-reload.
+ In addition, when kvm is used, cplictl -b kvm is called to update the leading 
kvm usage bit, this was getting lost upon every systemctl daemon-reload.
+ 
+ Instead, modify the generator to guard against re-setting cpi vars, if
+ they were ever set once.
+ 
+ [Regression Potential]
+ 
+  * At worst case scenario, cpi-vars would not be set, leading to
+ cosmetic issue of not able to see auxilary information (e.g. UBUNTU,
+ running kernel version, Ubuntu release version) in the HMC console. As
+ the variables form /sys/firmware/cpi/* are displayed in the HMC.
+ 
+ [Other Info]
+  
+  * Original bug report
+ 
  ---Problem Description---
  CPI information about kvm usage is lost during apt upgrade
-  
+ 
  ---uname output---
  4.15.0-42-generic
-  
- Machine Type = s390x lpar  
-  
+ 
+ Machine Type = s390x lpar
+ 
  ---Steps to Reproduce---
  
  # cat /sys/firmware/cpi/*
  cat: /sys/firmware/cpi/set: Permission denied
-         
+ 
  0x0000000000040f00
-         
- LINUX   
+ 
+ LINUX
  root@m83lp52:~# virsh start guest   # starting a guest does set the highest 
bit in
- /sys/firmware/cpi/system_leveln  
+ /sys/firmware/cpi/system_leveln
  
  root@m83lp52:~# cat /sys/firmware/cpi/*
  cat: /sys/firmware/cpi/set: Permission denied
-         
+ 
  0x8000000000040f00   <---- see the 8
-         
- LINUX  
+ 
+ LINUX
  
  root@m83lp52:~# apt upgrade
  [....]
  has to upgrade at least one package, that will trigger some other code.
  [....]
  
  Now. some other code seems to have set values in /sys/firmware/cpi as
  well dropping the kvm information.
  
  root@m83lp52:~# cat /sys/firmware/cpi/*
  cat: /sys/firmware/cpi/set: Permission denied
- 18 04 1  
+ 18 04 1
  0x0000000000040f00
- UBUNTU  
- LINUX  
- 
+ UBUNTU
+ LINUX
  
  The canonical place to handle /sys/firmware/cpi should be 
/lib/s390-tools/cpictl and /lib/systemd/system/cpi.service. So can we put the 
additional features (setting 18 04 1 and UBUNTU things also into
  /etc/sysconfig/cpi
  or
  /lib/s390-tools/cpictl
  )
  and can we disable the other code that also sets /sys/firmware/cpi (I have 
not found out which code sets these values). This seems to be 
/lib/systemd/system-generators/s390-cpi-vars

** Changed in: s390-tools (Ubuntu)
       Status: New => Fix Committed

** Also affects: s390-tools (Ubuntu Cosmic)
   Importance: Undecided
       Status: New

** Also affects: s390-tools (Ubuntu Disco)
   Importance: Undecided
     Assignee: Skipper Bug Screeners (skipper-screen-team)
       Status: Fix Committed

** Also affects: s390-tools (Ubuntu Bionic)
   Importance: Undecided
       Status: New

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

Title:
  CPI information about kvm usage is lost during apt upgrade

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

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

Reply via email to