Using virtio-input with libvirt
The new virtio input devices are not that new any more. Support was merged in qemu 2.4 (host) and linux kernel 4.1 (guest). Which means that most distributions should have picked up support for virtio-input meanwhile. libvirt gained support for libvirt-input too (version 1.3.0 & newer), so using virtio-input devices is as simple as adding
<input type='tablet' bus='virtio'/>
There are also virtio keyboard and mouse devices. Using them on x86 isn't very useful as every virtual machine has ps/2 keyboard and mouse anyway. For ppc64, arm and aarch64 architectures the virtio keyboard is a possible alternative to the usb keyboard:
<input type='keyboard' bus='virtio'/>
If you have to stick to the usb keyboard or usb tablet due to missing guest drivers for virtio input I strongly suggest to use xhci as usb host adapter:
<controller type='usb' model='nec-xhci'/>
<input type='tablet' bus='usb'/>