Bug 1012864

Summary: mute has no effect on ich6 soundcard as well
Product: Red Hat Enterprise Linux 6 Reporter: David Jaša <djasa>
Component: qemu-kvmAssignee: Gerd Hoffmann <kraxel>
Status: CLOSED CURRENTRELEASE QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 6.5CC: acathrow, bsarathy, desktop-qa-list, djasa, juzhang, mazhang, michen, mkenneth, qzhang, rhod, virt-maint, xhan
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-04-11 08:35:33 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:
Attachments:
Description Flags
spice debug none

Description David Jaša 2013-09-27 09:37:21 UTC
Description of problem:
this problem used to occur just on ac97 emulated cards but now the ich6 is affected as well

Version-Release number of selected component (if applicable):
qemu-kvm-rhev-0.12.1.2-2.406.el6.x86_64
Guest OS: Windows 7 32bit
spice display

How reproducible:
always

Steps to Reproduce:
1. mute sound in the guest
2. play something
3.

Actual results:
sound is audible

Expected results:
sound is muted

Additional info:
related to bug 884253

Comment 1 Gerd Hoffmann 2013-09-27 13:26:56 UTC
Please provide the full qemu-kvm command line.

Comment 2 David Jaša 2013-09-27 14:35:45 UTC
/usr/libexec/qemu-kvm -name w7x32-33-dj -S -M rhel6.4.0 -cpu Nehalem -enable-kvm -m 1280 -realtime mlock=off -smp 2,sockets=2,cores=1,threads=1 -uuid 0aa1ffb4-cb8b-4334-89bc-93d685ca342a -smbios type=1,manufacturer=Red Hat,product=RHEV Hypervisor,version=6Server-6.5.0.0.el6,serial=36343035-3733-5A43-4A30-323830343546,uuid=0aa1ffb4-cb8b-4334-89bc-93d685ca342a -nodefconfig -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/w7x32-33-dj.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=2013-09-27T15:34:22,driftfix=slew -no-shutdown -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -device virtio-scsi-pci,id=scsi0,bus=pci.0,addr=0x5 -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x6 -device usb-ccid,id=ccid0 -drive if=none,media=cdrom,id=drive-ide0-1-0,readonly=on,format=raw,serial= -device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 -drive file=/var/run/vdsm/storage/13636c39-1717-4246-b02a-bbb9d8ef7a13/fc0b8548-0853-44d0-a3a0-5f3ceff6b424/d4f45080-4bba-41ed-8320-5857ed7bc6bd,if=none,id=drive-virtio-disk0,format=qcow2,serial=fc0b8548-0853-44d0-a3a0-5f3ceff6b424,cache=none,werror=stop,rerror=stop,aio=native -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x7,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1 -netdev tap,fd=32,id=hostnet0,vhost=on,vhostfd=33 -device virtio-net-pci,netdev=hostnet0,id=net0,mac=00:1a:4a:64:9e:70,bus=pci.0,addr=0x3 -chardev spicevmc,id=charsmartcard0,name=smartcard -device ccid-card-passthru,chardev=charsmartcard0,id=smartcard0,bus=ccid0.0 -chardev socket,id=charchannel0,path=/var/lib/libvirt/qemu/channels/0aa1ffb4-cb8b-4334-89bc-93d685ca342a.com.redhat.rhevm.vdsm,server,nowait -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=com.redhat.rhevm.vdsm -chardev socket,id=charchannel1,path=/var/lib/libvirt/qemu/channels/0aa1ffb4-cb8b-4334-89bc-93d685ca342a.org.qemu.guest_agent.0,server,nowait -device virtserialport,bus=virtio-serial0.0,nr=2,chardev=charchannel1,id=channel1,name=org.qemu.guest_agent.0 -chardev spicevmc,id=charchannel2,name=vdagent -device virtserialport,bus=virtio-serial0.0,nr=3,chardev=charchannel2,id=channel2,name=com.redhat.spice.0 -spice port=5900,tls-port=5901,addr=10.34.73.133,x509-dir=/etc/pki/vdsm/libvirt-spice,seamless-migration=on -k en-us -vga qxl -global qxl-vga.ram_size=67108864 -global qxl-vga.vram_size=67108864 -device qxl,id=video1,ram_size=67108864,vram_size=67108864,bus=pci.0,addr=0x9 -device qxl,id=video2,ram_size=67108864,vram_size=67108864,bus=pci.0,addr=0xa -device qxl,id=video3,ram_size=67108864,vram_size=67108864,bus=pci.0,addr=0xb -device intel-hda,id=sound0,bus=pci.0,addr=0x4 -device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0

Comment 3 Gerd Hoffmann 2013-09-30 12:52:29 UTC
Turning on debug messages for hda-duplex shows this on stderr:

hda-duplex: unhandled pin control bit

Looks like windows doesn't use the amp control to mute output ...

Comment 4 Gerd Hoffmann 2013-09-30 12:54:08 UTC
Oh, and just for completeness: the volume slider works just fine, only the mute button fails, so there is an easy workaround for this one.

Comment 5 David Jaša 2013-11-20 15:27:27 UTC
(In reply to Gerd Hoffmann from comment #3)
> Turning on debug messages for hda-duplex shows this on stderr:
> 
> hda-duplex: unhandled pin control bit
> 
> Looks like windows doesn't use the amp control to mute output ...

Yes, in RHEL guest with ich6, the mute works fine.

(In reply to Gerd Hoffmann from comment #4)
> Oh, and just for completeness: the volume slider works just fine, only the
> mute button fails, so there is an easy workaround for this one.

correct.

Comment 7 Qunfang Zhang 2014-03-28 01:40:03 UTC
Hello, xhan

Could you give a help on reproducing this bug?  Thanks!

Comment 8 mazhang 2014-03-31 06:53:56 UTC
I can't reproduce this problem.

Host:
qemu-kvm-tools-0.12.1.2-2.423.el6.x86_64
gpxe-roms-qemu-0.9.7-6.10.el6.noarch
qemu-kvm-0.12.1.2-2.423.el6.x86_64
qemu-kvm-debuginfo-0.12.1.2-2.423.el6.x86_64
qemu-img-0.12.1.2-2.423.el6.x86_64
kernel-2.6.32-447.el6.x86_64

Guest:
win7-32

Client:
FC18/RHEL7-64
virt-viewer-0.5.4-3.fc18.x86_64/virt-viewer-0.5.7-7.el7.x86_64

Cli:
/usr/libexec/qemu-kvm \
-M pc \
-cpu SandyBridge \
-m 4G \
-smp 4,sockets=2,cores=2,threads=1,maxcpus=160 \
-enable-kvm \
-name rhel7-64 \
-uuid 990ea161-6b67-47b2-b803-19fb01d30d12 \
-smbios type=1,manufacturer='Red Hat',product='RHEV Hypervisor',version=el6,serial=koTUXQrb,uuid=feebc8fd-f8b0-4e75-abc3-e63fcdb67170 \
-k sadfks \
-rtc base=localtime,clock=host,driftfix=slew \
-nodefaults \
-monitor stdio \
-qmp tcp:0:6666,server,nowait \
-boot menu=on \
-bios /usr/share/seabios/bios.bin \
-monitor unix:/tmp/guest-sock,server,nowait \
-drive file=/home/win7-32.qcow2,if=none,id=drive-virtio-disk0,format=qcow2,cache=none,werror=stop,rerror=stop,aio=threads \
-device virtio-blk-pci,scsi=off,bus=pci.0,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1,addr=0x8 \
-netdev tap,id=hostnet0,vhost=on \
-device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:39:13:2c \
-device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 \
-device usb-tablet,id=input0 \
-spice port=5900,disable-ticketing \
-vga qxl \
-device intel-hda,id=sound0,bus=pci.0,addr=0x4 \
-device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0 \

Result:
Mute works fine both on FC18 and RHEL7-64 client.

Comment 9 mazhang 2014-03-31 07:24:47 UTC
Test on qemu-kvm-0.12.1.2-2.406.el6.x86_64, can't reproduce this bug, will attach the debug messages.

Comment 10 mazhang 2014-03-31 07:25:24 UTC
Created attachment 880581 [details]
spice debug

Comment 11 mazhang 2014-03-31 07:33:45 UTC
Hi David,

Could you please have a look at my test in comment#8 and comment#9, anything I missed for this bug reproduce? 

Thanks,
Mazhang.

Comment 12 Gerd Hoffmann 2014-04-11 06:21:49 UTC
(In reply to mazhang from comment #11)
> Hi David,
> 
> Could you please have a look at my test in comment#8 and comment#9, anything
> I missed for this bug reproduce? 

Could be the machine type.  We've flipped mixemu default in RHEL-6.5.  So, it very well could be that this change fixed the bug.  For compatibility reasons the old machine types maintain old behaviour though.

So, can you please test what the behaviour is with "-M rhel6.4.0" and "-M rhel6.5.0"?  Thanks.

Comment 13 mazhang 2014-04-11 06:40:19 UTC
(In reply to Gerd Hoffmann from comment #12)
> (In reply to mazhang from comment #11)
> > Hi David,
> > 
> > Could you please have a look at my test in comment#8 and comment#9, anything
> > I missed for this bug reproduce? 
> 
> Could be the machine type.  We've flipped mixemu default in RHEL-6.5.  So,
> it very well could be that this change fixed the bug.  For compatibility
> reasons the old machine types maintain old behaviour though.
> 
> So, can you please test what the behaviour is with "-M rhel6.4.0" and "-M
> rhel6.5.0"?  Thanks.

Thanks for your suggestions.
I can reproduced this bug with "-M rhel6.4.0", "-M rhel6.5.0" can't hit this problem.

Host:
qemu-kvm-tools-0.12.1.2-2.422.el6.x86_64
qemu-img-0.12.1.2-2.422.el6.x86_64
qemu-kvm-debuginfo-0.12.1.2-2.422.el6.x86_64
qemu-guest-agent-0.12.1.2-2.422.el6.x86_64
gpxe-roms-qemu-0.9.7-6.10.el6.noarch
qemu-kvm-0.12.1.2-2.422.el6.x86_64
spice-server-0.12.4-6.el6.x86_64

Guest:
win7-32

Client:
kernel-2.6.32-456.el6.x86_64
virt-viewer-0.5.6-8.el6.x86_64

Steps:
1. boot vm
/usr/libexec/qemu-kvm \
-M rhel6.4.0 \
-cpu SandyBridge \
-m 4G \
-smp 4,sockets=2,cores=2,threads=1,maxcpus=160 \
-enable-kvm \
-name rhel7-64 \
-uuid 990ea161-6b67-47b2-b803-19fb01d30d12 \
-smbios type=1,manufacturer='Red Hat',product='RHEV Hypervisor',version=el6,serial=koTUXQrb,uuid=feebc8fd-f8b0-4e75-abc3-e63fcdb67170 \
-k en-us \
-rtc base=localtime,clock=host,driftfix=slew \
-nodefaults \
-monitor stdio \
-qmp tcp:0:6666,server,nowait \
-boot menu=on \
-bios /usr/share/seabios/bios.bin \
-monitor unix:/tmp/guest-sock,server,nowait \
-drive file=/home/win7-32.qcow2,if=none,id=drive-virtio-disk0,format=qcow2,cache=none,werror=stop,rerror=stop,aio=threads \
-device virtio-blk-pci,scsi=off,bus=pci.0,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1,addr=0x8 \
-device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 \
-device usb-tablet,id=input0 \
-spice port=5900,disable-ticketing \
-vga qxl \
-netdev tap,id=hostnet0 \
-device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:39:13:2c \
-device intel-hda,id=sound0,bus=pci.0,addr=0x4 \
-device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0 \

2. Play a music in guest.

3. Mute sound in guest.

Result:
Still can heard sound.

Comment 14 Gerd Hoffmann 2014-04-11 08:35:33 UTC
> I can reproduced this bug with "-M rhel6.4.0", "-M rhel6.5.0" can't hit this
> problem.

Good.  So it is fixed already.  Old machine type must stay as-is for bug compatibility reasons.  I'm done, that one was easy ;)