** Description changed:

  [ Impact ]
  
  Some versions of Windows hang on reboot if their TSC value is greater
  than 2^54.  The calibration of the Hyper-V reference time overflows
  and fails; as a result the processors' clock sources are out of sync.
  
  [ Test Plan ]
  
- TBD.
+ As suggested by Mauricio, testing will be done in stages.
+ 
+ 1) unit test, with such rdtsc/print loop (and confirm the tsc value
+ decreases after system_reset).
+ 
+ This can be done by using x86/tsc.flat from the following repository:
+ 
+ https://gitlab.com/kvm-unit-tests/kvm-unit-tests.git
+ 
+ 2) regression test, booting Ubuntu kernel/initrd pairs (installer's
+ should be enough) from supported releases, and checking they boot/reach
+ a prompt.
  
  [ Where problems could occur ]
  
- TBD.
+ This is a change impacting normal x86 code, so although the patch is
+ small and well contained, in the unlikely case that we find a regression
+ it will impact more users.  As such, and under Mauricio's advice, the
+ test plan is being extended to really guarantee that the common
+ virtualization scenarios are not impacted.  If we find a problem with
+ this update, there is the possibility of reverting it temporarily until
+ we can devise a proper fix.
  
  [ Original Description ]
  
  Description:
  Some versions of Windows hang on reboot if their TSC value is greater
  than 2^54.  The calibration of the Hyper-V reference time overflows
  and fails; as a result the processors' clock sources are out of sync.
  
  The issue is that the TSC _should_ be reset to 0 on CPU reset and
  QEMU tries to do that.  However, KVM special cases writing 0 to the
  TSC and thinks that QEMU is trying to hot-plug a CPU, which is
  correct the first time through but not later.  Thwart this valiant
  effort and reset the TSC to 1 instead, but only if the CPU has been
  run once.
  
  For this to work, env->tsc has to be moved to the part of CPUArchState
  that is not zeroed at the beginning of x86_cpu_reset.
  
  Solution: [PATCH] target/i386: properly reset TSC on reset
  
  I created and tested a ppa ubuntu package already. The patch fixes this issue.
  Link to ppa: 
https://launchpad.net/~bhinz83/+archive/ubuntu/openstack-rds/+packages
  
  It affects only jammy 22.04 package. The newest version is:
  qemu-1:6.2+dfsg-2ubuntu6.19

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

Title:
  Windows guest hangs after reboot from the guest OS

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/qemu/+bug/2064914/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to