Bug 39827 - UVMM: Windows 10 (64bit) doesn't boot on Intel CPU
UVMM: Windows 10 (64bit) doesn't boot on Intel CPU
Status: NEW
Product: UCS
Classification: Unclassified
Component: Virtualization - UVMM
UCS 4.3
Other Linux
: P5 normal with 2 votes (vote)
: ---
Assigned To: UCS maintainers
: 39875 (view as bug list)
Depends on: 49695
  Show dependency treegraph
Reported: 2015-11-09 14:09 CET by Arvid Requate
Modified: 2020-02-07 15:36 CET (History)
8 users (show)

See Also:
What kind of report is it?: Bug Report
What type of bug is this?: 4: Minor Usability: Impairs usability in secondary scenarios
Who will be affected by this bug?: 3: Will affect average number of installed domains
How will those affected feel about the bug?: 3: A User would likely not purchase the product
User Pain: 0.206
Enterprise Customer affected?: Yes
School Customer affected?:
ISV affected?:
Waiting Support:
Flags outvoted (downgraded) after PO Review:
Ticket number: 2017112421000177, 2018102521000291, 2020020621000588
Bug group (optional):
Max CVSS v3 score:


Note You need to log in before you can comment on or make changes to this bug.
Description Arvid Requate univentionstaff 2015-11-09 14:09:40 CET
Windows 10 final iso doesn't boot, error message is SYSTEM_THREAD_EXCEPTION_NOT_HANDLED. I used the Windows 8 template, maybe the new Windows 10 template (Bug 39335) would fix this, but I doubt it.

Comment 1 Arvid Requate univentionstaff 2015-11-09 14:10:28 CET
I testet with Win10_English_x64.iso, symlinked on smarta.
Comment 2 Stefan Gohmann univentionstaff 2015-11-09 14:33:33 CET
(In reply to Arvid Requate from comment #1)
> I testet with Win10_English_x64.iso, symlinked on smarta.

Try it on kiwik.
Comment 3 Stefan Gohmann univentionstaff 2015-11-18 10:07:56 CET
*** Bug 39875 has been marked as a duplicate of this bug. ***
Comment 4 Erik Damrose univentionstaff 2015-11-18 10:15:25 CET
From Bug #39875:
Workaround: Report CPU as core2duo. Edit the libvirt xml file and add a core2duo cpu entry as described at [1]

See also updates on [2]

[1] https://libvirt.org/formatdomain.html#elementsCPU
[2] http://www.linux-kvm.org/page/Guest_Support_Status#Windows_Family
Comment 5 Erik Damrose univentionstaff 2016-08-23 09:48:15 CEST
Feedback Ticket#2016012121000238

We should recheck this with updated virtualization components in UCS 4.2, or we could expand uvmm to support cpu models which would be defined in uvmm OS templates
Comment 6 Philipp Hahn univentionstaff 2017-11-24 12:58:58 CET
Happened at a customer.

Maybe this solves it (as core2duo is very old):
1. Use `virsh capabilities | 'grep <model>'` to get Host-CPU-Model
2. Check `virsh cpu-models --arch x86_64` if it is included
3. Use `virsh edit $VM` and add
   <cpu mode="custom" match="exact"><model fallback="allow">Nehalem</model></cpu>
  (or what-ever)

May have negative effects when migration such a domain between hosts with different CPUs.

See <https://bugzilla.redhat.com/show_bug.cgi?id=1346153#c40>
Comment 7 Daniel Krüger 2017-11-25 22:30:08 CET
I migrated UCS 4.1 to UCS 4.2-2.
In UCS 4.1 I used a similar workaround as described in #4 for a Win10 machine.
For UCS 4.2 I needed to remove entire <cpu> tag from configuration. Otherwise Win10 stalled while showing boot logo with 100% CPU load.
Comment 8 Philipp Hahn univentionstaff 2018-10-26 13:31:58 CEST
(In reply to Philipp Hahn from comment #6)
> Maybe this solves it (as core2duo is very old):
> 3. Use `virsh edit $VM` and add

Use <cpu mode="host-model"/> instead. This will insert a description of the host CPU.

Windows Server 2k12R2 crashes with the default "kvm64" CPU as soon as the Hyper-V Enlightments are added; Changing the CPU model to the host model fixed the issue and Windows booted again.

We should default to that mode, but make it configurable through UVMM (and the profiles).
Comment 9 Michel Smidt univentionstaff 2019-03-05 09:33:19 CET
Still a problem.
Comment 10 Valentin Heidelberger univentionstaff 2019-03-13 13:35:05 CET
Just encountered this with Windows 2012 R2 DE. Manually editing the XML as Philipp described solved the problem.

Would be great if UVMM did this itself.
Comment 11 Philipp Hahn univentionstaff 2020-02-07 15:36:50 CET
Probably another case: 2020020621000588

We really need to change the default in UVMM from "kvm" to something more sensible like "host-model".
UVMM at least should allow selecting "host-model" easily in addition to UCRV "uvmm/vm/cpu/host-model".

Also note that all models in UVMM after "SandyBridge" may not work because the livirt CPU definition is based on the original feature list; some of them are buggy and were later disabled by Intel through a µCode update. The unusable modules should be filtered out:

print(c.getDomainCapabilities('/usr/bin/qemu-system-x86_64', 'x86_64', 'pc', 'kvm'))
# /domainCapabilities/cpu/mode[@supported="yes"]/name
# /domainCapabilities/cpu/mode[@name="custom"]/model[@usable="yes"]