Using QEMU version 3.1.50 (v3.1.0-2338-g1ba530a4ec-dirty), after the commit 35921860156e39f17ffd7e18d0f84d2396a6e8f4 kbd-state: don't block auto-repeat events
It was noticed that keys can get stuck on an Intel GVT-g (iGVT-g) Windows 10 guest. For example, pressing "e" will result on "eeeeeeeeeeeeeeeeeeeeee" until the key "e" is pressed again. I tried to reproduce this on simple Linux guests and simple Windows 10 guests but failed to do so. The QEMU command line is pretty long: sudo env QEMU_AUDIO_DRV=pa QEMU_AUDIO_DAC_FIXED_FREQ=96000 QEMU_AUDIO_ADC_FIXED_FREQ=96000 QEMU_PA_SERVER=/run/user/1000/pulse/native QEMU_AUDIO_ADC_VOICES=0 PULSE_LATENCY_MSEC=10 qemu-system-x86_64 -name 'Windows 10' -k pt-br -nodefaults -device nec-usb-xhci,id=necxhci -hda /home/usuario/.local/share/libvirt/images/redm.qcow2 -enable-kvm -cpu Skylake-Client,hv_time,hv_relaxed,hv_vapic,hv_spinlocks=0x1fff,hv_runtime -smp cores=2,threads=2 -m 3072M -bios /usr/local/share/qemu/bios.bin -device usb-tablet,id=tablet -device usb-audio,id=usbaudvir,buffer=6144 -device usb-host,vendorid=0x0079,id=redragon -device usb-host,vendorid=0x0458,id=mousegenius -vga none -monitor vc -serial stdio -display gtk,gl=on -device vfio-pci,sysfsdev=/sys/bus/pci/devices/0000:00:02.0/123f09b0-4c00-11e8-a6ca-f3c21e47e012,x-igd-opregion=on,rombar=0,display=on,addr=0x3,id=iHD520 -machine kernel_irqchip=on -global PIIX4_PM.disable_s3=1 -global PIIX4_PM.disable_s4=1 -M pc,usb=false -netdev user,id=net0 -device e1000,netdev=net0,id=n0,addr=0x8 -device usb-host,vendorid=0x0480,productid=0x0200,id=toshiba "redragon" is a gamepad, "toshiba" an external HDD and "mousegenius" is a mouse. The problem was noticed both with devices connected and disconnected, and when they were removed using device_del. While I faced this on multiple situations (even using notepad, for example), this bug is easy to trigger with games. It seems the usb-audio emulation plus iGVT-g load plus high CPU load makes the key release event never to be sent to the guest, making the key get stuck on the guest until it is pressed again.
