Bug 1012864 - mute has no effect on ich6 soundcard as well
Summary: mute has no effect on ich6 soundcard as well
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: qemu-kvm
Version: 6.5
Hardware: Unspecified
OS: Unspecified
unspecified
medium
Target Milestone: rc
: ---
Assignee: Gerd Hoffmann
QA Contact: Virtualization Bugs
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2013-09-27 09:37 UTC by David Jaša
Modified: 2014-04-11 08:35 UTC (History)
12 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2014-04-11 08:35:33 UTC
Target Upstream Version:


Attachments (Terms of Use)
spice debug (90.28 KB, text/plain)
2014-03-31 07:25 UTC, mazhang
no flags Details

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 ;)


Note You need to log in before you can comment on or make changes to this bug.