Bug 1368153

Summary: Please hide fw_cfg device in windows guest in order to make svvp test pass
Product: Red Hat Enterprise Linux 7 Reporter: lijin <lijin>
Component: qemu-kvm-rhevAssignee: Marcel Apfelbaum <marcel>
Status: CLOSED ERRATA QA Contact: jingzhao <jinzhao>
Severity: high Docs Contact:
Priority: high    
Version: 7.3CC: ailan, chayang, ehabkost, imammedo, knoel, mst, virt-maint
Target Milestone: rcKeywords: TestBlocker
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: qemu-kvm-rhev-2.6.0-23.el7 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
: 1375444 (view as bug list) Environment:
Last Closed: 2016-11-07 21:31:08 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:
Bug Depends On:    
Bug Blocks: 1375444, 1390714    
Attachments:
Description Flags
unknown device in windows guest
none
hide the unknown device none

Description lijin 2016-08-18 14:28:08 UTC
Created attachment 1191885 [details]
unknown device in windows guest

Description of problem:
In RHEL7.3,fw_cfg device can be shown in windows guest with no driver installed which will lead to win2016 svvp test fail.

RHEL7.2 qemu(qemu-kvm-rhev-2.3.0-31.el7.x86_64.) does not hit this issue.

As it's too late to create such driver in rhel7.3,we hope qemu can create a flag that can be used to hide the fw_cfg device in windows guest.

Version-Release number of selected component (if applicable):
qemu-kvm-rhev-2.6.0-21.el7.x86_64

How reproducible:
100%

Steps to Reproduce:
1.boot a windows server 2016 guest on rhel7.3

2.check in qtree
(qemu) info qtree 
   dev: fw_cfg_io, id ""
       iobase = 1296 (0x510)
       dma_iobase = 1300 (0x514)
       dma_enabled = true


3.check in windows guest
in device manager(View-->resources by type),there is an unknown device(please check the screenshot)

Actual results:
There is an unknown device(please check the screenshot);
When we run rhel7.3 svvp test with windows2016,it will automatically detect this device has no driver installed which will lead to svvp test fail.
So I set test blocker keyword in this bug.

Expected results:
No unknown device shown in windows guest.

Additional info:
Following is Marcel's suggestion: https://bugzilla.redhat.com/show_bug.cgi?id=1246993#c14

I have some answers:
The problem is not connected to the "dma-enabled" flag, but with a new feature
added to the fw_cfg device: The possibility to see the fw_cfg data in the guest OS.

The way they did it is by adding a node in the ACPI DSDT table for the fw_cfg device:
Please see: https://lists.gnu.org/archive/html/qemu-devel/2016-02/msg04660.html
for details.

The way it is used in guest kernel can be seen here:
https://lkml.org/lkml/2016/1/27/1650


I can confirm this is the issue, possible solutions are:
- Add a Windows driver for it
- Find a way to hide the device, by removing it from DSDT or using a
an ACPI 'trick' to hide it from Windows guests - all that based on some property flag.


I suggest to reply to the QEMU upstream thread and explain what is the exact issue for Windows guests asking for guidance.

Comment 2 Amnon Ilan 2016-08-31 21:58:56 UTC
Status update here:
https://bugzilla.redhat.com/show_bug.cgi?id=1246993#c20

Comment 3 lijin 2016-09-01 05:29:17 UTC
fw_cfg device is not shown in windows guest with 
https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=11683896

thank you.

Comment 4 Marcel Apfelbaum 2016-09-01 12:00:25 UTC
The less intrusive solution is to revert the patch adding the fw_cfg device to ACPI.

Comment 5 Miroslav Rezanina 2016-09-06 10:33:20 UTC
Fix included in qemu-kvm-rhev-2.6.0-23.el7

Comment 7 jingzhao 2016-09-08 06:06:39 UTC
Reproduced the bz on qemu-kvm-rhev-2.6.0-20.el7.x86_64

and Verified it on qemu-kvm-rhev-2.6.0-23.el7.x86_64

Following is the details
1. Boot win2016 guest
/usr/libexec/qemu-kvm \
-M pc \
-cpu SandyBridge \
-nodefaults -rtc base=utc \
-m 4G \
-smp 2,sockets=2,cores=1,threads=1 \
-enable-kvm \
-name rhel7.3 \
-k en-us \
-nodefaults \
-serial unix:/tmp/serial0,server,nowait \
-boot menu=on \
-qmp tcp:0:6666,server,nowait \
-vga qxl \
-vnc :2 \
-drive file=/home/bug/win2016.raw,if=none,id=drive-virtio-disk0,format=raw,cache=none,werror=stop,rerror=stop \
-device ide-hd,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1 \
-monitor stdio \

2. Check it on hmp and guest

(qemu) info qtree
  dev: fw_cfg_io, id ""
    iobase = 1296 (0x510)
    dma_iobase = 1300 (0x514)
    dma_enabled = true
  dev: kvmclock, id ""
  dev: kvmvapic, id ""

the unkown device disappeared in guest, please check the attachment

Thanks
Jing Zhao

Comment 8 jingzhao 2016-09-08 06:07:31 UTC
Created attachment 1198914 [details]
hide the unknown device

Comment 9 jingzhao 2016-09-08 06:08:50 UTC
According to comment 7, marked it as verified

Comment 11 errata-xmlrpc 2016-11-07 21:31:08 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHBA-2016-2673.html