Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.
RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.

Bug 1715149

Summary: IRQL_NOT_LESS_OR_EQUAL - kvm Win 10 1809 & later
Product: Red Hat Enterprise Linux 7 Reporter: lejeczek <peljasz>
Component: libvirtAssignee: Jiri Denemark <jdenemar>
Status: CLOSED DUPLICATE QA Contact: jiyan <jiyan>
Severity: urgent Docs Contact:
Priority: unspecified    
Version: 7.6CC: chayang, dyuan, ehabkost, jdenemar, jferlan, juzhang, lhuang, lijin, lmen, virt-maint, vrozenfe, xuzhang, yuhuang
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-07-24 12:33:36 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description lejeczek 2019-05-29 17:36:39 UTC
Description of problem:

I'm not sure 100% where, so I file it here.
If you use Win 10 iso 1809 installation fails with at very early stage with: IRQL_NOT_LESS_OR_EQUAL

Having the same virt guest config but only using 1709 iso instead, works okey.


Version-Release number of selected component (if applicable):

libvirt-4.5.0-10.el7_6.9.x86_64

How reproducible:


Steps to Reproduce:
1.
2.
3.

Actual results:


Expected results:


Additional info:

Comment 2 lijin 2019-05-31 00:38:44 UTC
may related to bz1593190, but seems the stop code is different.

Could you please provide more info to see if it's same issue:
1.host cpu info via # lscpu;
2.qemu/kernel/virtio-win version
3.qemu command line while guest is booting up: #ps aux | grep qemu

Comment 3 lejeczek 2019-06-10 11:54:49 UTC
$ lscpu 
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                64
On-line CPU(s) list:   0-63
Thread(s) per core:    2
Core(s) per socket:    8
Socket(s):             4
NUMA node(s):          8
Vendor ID:             AuthenticAMD
CPU family:            21
Model:                 2
Model name:            AMD Opteron(tm) Processor 6376

$ rpm -q virtio-win qemu-kvm-ev
virtio-win-0.1.141-1.noarch
qemu-kvm-ev-2.12.0-18.el7_6.5.1.x86_64 (from centos-qemu-ev repo)

3.10.0-957.12.2.el7.x86_64

Comment 4 lijin 2019-06-11 02:27:40 UTC
(In reply to lejeczek from comment #3)
> $ lscpu 
> Architecture:          x86_64
> CPU op-mode(s):        32-bit, 64-bit
> Byte Order:            Little Endian
> CPU(s):                64
> On-line CPU(s) list:   0-63
> Thread(s) per core:    2
> Core(s) per socket:    8
> Socket(s):             4
> NUMA node(s):          8
> Vendor ID:             AuthenticAMD
> CPU family:            21
> Model:                 2
> Model name:            AMD Opteron(tm) Processor 6376
> 
> $ rpm -q virtio-win qemu-kvm-ev
> virtio-win-0.1.141-1.noarch

The driver is a little old, could you try with latest version?

> qemu-kvm-ev-2.12.0-18.el7_6.5.1.x86_64 (from centos-qemu-ev repo)
> 
> 3.10.0-957.12.2.el7.x86_64

And could you provide the qemu command line while guest is booting up?
#ps aux | grep qemu

Thanks

Comment 5 lejeczek 2019-06-11 16:57:16 UTC
$ yum repoinfo virtio-win-stable
Repo-id      : virtio-win-stable
Repo-name    : virtio-win builds roughly matching what was shipped in latest RHEL
Repo-status  : enabled
Repo-revision: 1559167931
Repo-updated : Wed May 29 23:12:11 2019
Repo-pkgs    : 5
Repo-size    : 250 M
Repo-baseurl : http://fedorapeople.org/groups/virt/virtio-win/repo/stable/
Repo-expire  : 21,600 second(s) (last: Tue Jun 11 15:30:30 2019)
  Filter     : read-only:present
Repo-filename: /etc/yum.repos.d/virtio-win.repo

qemu      122019       1 97 1297977 195412 30 17:55 ?      00:00:32 /usr/libexec/qemu-kvm -name guest=win10-scratch,debug-threads=on -S -object secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain-3-win10-scratch/master-key.aes -machine pc-i440fx-rhel7.2.0,accel=kvm,usb=off,dump-guest-core=off -cpu Opteron_G5,perfctr_core=on,skinit=on,perfctr_nb=on,mmxext=on,osxsave=on,vme=on,topoext=on,fxsr_opt=on,bmi1=on,ht=on,cr8legacy=on,ibs=on,wdt=on,extapic=on,osvw=on,nodeid_msr=on,tce=on,cmp_legacy=on,monitor=on,hv_time,hv_relaxed,hv_vapic,hv_spinlocks=0x1fff -m 4096 -realtime mlock=off -smp 4,sockets=2,cores=2,threads=1 -uuid 2d5e45f7-5b1c-4d0a-9fbe-f9639316e7ea -no-user-config -nodefaults -chardev socket,id=charmonitor,fd=42,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=localtime,driftfix=slew -global kvm-pit.lost_tick_policy=delay -no-hpet -no-shutdown -global PIIX4_PM.disable_s3=1 -global PIIX4_PM.disable_s4=1 -boot menu=on,strict=on -device ich9-usb-ehci1,id=usb,bus=pci.0,addr=0x5.0x7 -device ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=pci.0,multifunction=on,addr=0x5 -device ich9-usb-uhci2,masterbus=usb.0,firstport=2,bus=pci.0,addr=0x5.0x1 -device ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pci.0,addr=0x5.0x2 -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x8 -drive file=gluster://127.0.0.1:24007/QEMU_VMs/scratch1.qcow2,file.debug=4,format=qcow2,if=none,id=drive-virtio-disk0 -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1 -drive file=/0-ALL.DATA/IT-RELATED/ISOs/Win10_1809Oct_v2_EnglishInternational_x64.iso,format=raw,if=none,id=drive-ide0-1-1,readonly=on -device ide-cd,bus=ide.1,unit=1,drive=drive-ide0-1-1,id=ide0-1-1,bootindex=2 -drive file=/usr/share/virtio-win/virtio-win.iso,format=raw,if=none,id=drive-ide0-0-1,readonly=on -device ide-cd,bus=ide.0,unit=1,drive=drive-ide0-0-1,id=ide0-0-1 -netdev tap,fd=44,id=hostnet0,vhost=on,vhostfd=45 -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:45:b8:3f,bus=pci.0,addr=0x3 -netdev tap,fd=46,id=hostnet1,vhost=on,vhostfd=47 -device virtio-net-pci,netdev=hostnet1,id=net1,mac=52:54:00:66:35:84,bus=pci.0,addr=0x7 -netdev tap,fd=48,id=hostnet2,vhost=on,vhostfd=49 -device virtio-net-pci,netdev=hostnet2,id=net2,mac=52:54:00:30:a0:bc,bus=pci.0,addr=0x9 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -chardev socket,id=charchannel0,fd=50,server,nowait -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=org.qemu.guest_agent.0 -chardev spicevmc,id=charchannel1,name=vdagent -device virtserialport,bus=virtio-serial0.0,nr=2,chardev=charchannel1,id=channel1,name=com.redhat.spice.0 -vnc 0.0.0.0:2,password -device qxl-vga,id=video0,ram_size=67108864,vram_size=16777216,vram64_size_mb=0,vgamem_mb=16,max_outputs=1,bus=pci.0,addr=0x2 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x6 -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny -msg timestamp=on

Comment 6 lijin 2019-06-12 01:41:49 UTC
Thanks lejeczek.
Now I can reproduce this issue with following qemu cli, the root cause is "topoext=on" in cpu configuration, remove "topoext=on" from qemu cli, this issue disappear.

My qemu cli:
/usr/libexec/qemu-kvm \
-monitor stdio \
-machine pc-i440fx-rhel7.2.0,accel=kvm,usb=off,dump-guest-core=off \
-cpu Opteron_G5,perfctr_core=on,skinit=on,perfctr_nb=on,mmxext=on,osxsave=on,vme=on,topoext=on,fxsr_opt=on,bmi1=on,ht=on,cr8legacy=on,ibs=on,wdt=on,extapic=on,osvw=on,nodeid_msr=on,tce=on,cmp_legacy=on,monitor=on,hv_time,hv_relaxed,hv_vapic,hv_spinlocks=0x1fff \
-m 4096 -realtime mlock=off -smp 4,sockets=2,cores=2,threads=1 -no-user-config -nodefaults -rtc base=localtime,driftfix=slew -global kvm-pit.lost_tick_policy=delay -no-hpet -no-shutdown -global PIIX4_PM.disable_s3=1 -global PIIX4_PM.disable_s4=1 -boot menu=on,strict=on -device ich9-usb-ehci1,id=usb,bus=pci.0,addr=0x5.0x7 -device ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=pci.0,multifunction=on,addr=0x5 -device ich9-usb-uhci2,masterbus=usb.0,firstport=2,bus=pci.0,addr=0x5.0x1 -device ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pci.0,addr=0x5.0x2 -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x8 -drive file=win10-64.qcow2,format=qcow2,if=none,id=drive-virtio-disk0 -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1 -drive file=/home/kvm_autotest_root/iso/ISO/Win10/en_windows_10_business_edition_version_1809_updated_sept_2018_x64_dvd_f0b7dc68.iso,format=raw,if=none,id=drive-ide0-1-1,readonly=on -device ide-cd,bus=ide.1,unit=1,drive=drive-ide0-1-1,id=ide0-1-1,bootindex=2 -drive file=/home/kvm_autotest_root/iso/windows/virtio-win-prewhql-0.1-144.iso,format=raw,if=none,id=drive-ide0-0-1,readonly=on -device ide-cd,bus=ide.0,unit=1,drive=drive-ide0-0-1,id=ide0-0-1 -chardev spicevmc,id=charchannel1,name=vdagent -device virtserialport,bus=virtio-serial0.0,nr=2,chardev=charchannel1,id=channel1,name=com.redhat.spice.0 -vnc 0.0.0.0:2 -device qxl-vga,id=video0,ram_size=67108864,vram_size=16777216,vram64_size_mb=0,vgamem_mb=16,max_outputs=1,bus=pci.0,addr=0x2 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x6 -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny -msg timestamp=on

Comment 9 John Ferlan 2019-06-12 14:55:07 UTC
Can you provide the XML for the 'win10-scratch' guest 

Trying to see what may be defined/set in order to create the command line option from comment 5:

...
-cpu Opteron_G5,perfctr_core=on,skinit=on,perfctr_nb=on,mmxext=on,osxsave=on,vme=on,topoext=on,fxsr_opt=on,bmi1=on,ht=on,cr8legacy=on,ibs=on,wdt=on,extapic=on,osvw=on,nodeid_msr=on,tce=on,cmp_legacy=on,monitor=on,hv_time,hv_relaxed,hv_vapic,hv_spinlocks=0x1fff -m 4096 -realtime mlock=off 
...

where "topoext=on" is getting set.

Comment 10 John Ferlan 2019-06-12 19:53:46 UTC
Just to help or make it clear - I'm trying to figure out what/who set that bit for the Opteron_G5 cpu. All the libvirt code is doing is taking what flags are set in the XML and formatting the command line.

I'm assuming there's something like the following in the XML under/with some <cpu ... /cpu> definition:

   <feature policy='require' name='topoext'/>

What sets that and for what reason is what would need to be changed.  So understanding how the guest XML was created will also be quite useful

Comment 11 lejeczek 2019-06-13 17:06:07 UTC
It might have been me done that manually, otherwise virt-install. But like I said, it works with 1709 and older, maybe with 1803 too.

Comment 15 Eduardo Habkost 2019-06-19 02:28:44 UTC
This looks like the potential issue I had described in bug 1619798.  We need to confirm libvirt mode=host-model won't enable TOPOEXT automatically.

Comment 19 Eduardo Habkost 2019-06-28 21:29:32 UTC
I see only two possibilities here: libvirt enabled the CPU feature automatically (meaning this is a duplicate of bug 1619798), or the feature was enabled manually (meaning it is not a bug).  I agree it should be moved to libvirt.

I was going to close this as duplicate of bz#1619798, but that BZ is for RHEL-AV-8 and this one is for RHEL-7.

Comment 20 Jiri Denemark 2019-07-24 12:33:36 UTC
As long as QEMU does not enable topoext for -cpu host (since
qemu-kvm-rhev-2.12.0-12.el7) libvirt would not enable the feature for
host-model CPUs.

So either the features was enabled manually or it was added by virt-install or
virt-manager. In 7.6 (and earlier) they used to copy the CPU definition from
host capabilities, which contains all features supported by the host CPU
without checking whether QEMU would enable them or not. Thus it would also
contain topoext. This is already tracked by bug 1525337 and it should be fixed
in RHEL 7.7.

I have no idea why it used to work with earlier revision of Win 10, but this
is not really important as the topoext feature should not be enabled.

In any case, there is an easy workaround... just remove the topoext feature
from the domain XML.

I'm closing this bug as a duplicate of the virt-manager bug I mentioned.

*** This bug has been marked as a duplicate of bug 1525337 ***