On Wed, Feb 8, 2017 at 8:33 AM, Ed Swierk <[email protected]> wrote: > Recently I noticed that when I configure a virtio-scsi-pci device > using an iothread, as soon as the guest virtio-scsi driver loads, the > iothread spins at 100%: > > -object iothread,id=iothread1 -device virtio-scsi-pci,iothread=iothread1 > > This occurs whether or not a disk is attached, with either > poll-max-ns=0 or poll-max-ns=32768, and with Linux 3.13, 4.1 and 4.4 > guests. The iothread stops spinning as soon as the guest driver is > unloaded. > > I bisected the issue to commit 684e508c23d28af8d6ed2c62738a0f60447c8274: > > aio: add .io_poll_begin/end() callbacks > > It doesn't seem to affect performance, but obviously consuming CPU > cycles when there's no disk attached is undesirable. Is this an > expected side effect of implementing iothread polling? Is there a way > to revert to the old non-polling behavior?
FWIW, changing return run_poll_handlers_once(ctx); to return false; in try_poll_mode() in aio-posix.c makes the iothread stop spinning, but I don't know what damage this will cause. --Ed
