Disable event throttling for virtio-serial ports - events were throttled
per-device instead of per-port, leading to missed events by higher
layers.
monitor: remove QAPI_EVENT_VSERPORT_CHANGE throttle

QAPI_EVENT_VSERPORT_CHANGE reports changes of a virtio serial port
state. However, the events may be for different ports, but the throttle
mechanism may replace the event for a different port, since it only
checks the event type.

libvirt relies on a correct state to be reported for all channels: the
qemu-ga commands may no longer work if the state is reported
disconnected. This can be triggered easily by having more than 1
virtio-serial (qemu-ga + spice agent for example), and restarting
quickly daemons or more realistically going quickly in and out of
suspend.

In a future patch, we may want to throttle events based on their
arguments, but this will likely require dynamic allocations and more
complicated code to insert/lookup pending events based on various
arguments ("id" in QAPI_EVENT_VSERPORT_CHANGE case).

Fixes:
https://bugzilla.redhat.com/show_bug.cgi?id=1244064

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <1439312647-22245-1-git-send-email-marcandre.lureau@redhat.com>
Reviewed-by: Daniel P. Berrange <berrange@redhat.com>
Signed-off-by: Amit Shah <amit.shah@redhat.com>
1 file changed
tree: eb60b2487dcfd7a969b095cd8c2ab9292e09e6fb
  1. .exrc
  2. .gitignore
  3. .gitmodules
  4. .mailmap
  5. .travis.yml
  6. CODING_STYLE
  7. COPYING
  8. COPYING.LIB
  9. Changelog
  10. HACKING
  11. LICENSE
  12. MAINTAINERS
  13. Makefile
  14. Makefile.objs
  15. Makefile.target
  16. README
  17. VERSION
  18. accel.c
  19. aio-posix.c
  20. aio-win32.c
  21. arch_init.c
  22. async.c
  23. audio/
  24. backends/
  25. balloon.c
  26. block.c
  27. block/
  28. blockdev-nbd.c
  29. blockdev.c
  30. blockjob.c
  31. bootdevice.c
  32. bsd-user/
  33. bt-host.c
  34. bt-vhci.c
  35. configure
  36. coroutine-gthread.c
  37. coroutine-sigaltstack.c
  38. coroutine-ucontext.c
  39. coroutine-win32.c
  40. cpu-exec.c
  41. cpus.c
  42. cputlb.c
  43. crypto/
  44. default-configs/
  45. device-hotplug.c
  46. device_tree.c
  47. disas.c
  48. disas/
  49. dma-helpers.c
  50. docs/
  51. dump.c
  52. exec.c
  53. fpu/
  54. fsdev/
  55. gdb-xml/
  56. gdbstub.c
  57. hmp-commands.hx
  58. hmp.c
  59. hmp.h
  60. hw/
  61. include/
  62. iohandler.c
  63. ioport.c
  64. iothread.c
  65. kvm-all.c
  66. kvm-stub.c
  67. libcacard/
  68. libdecnumber/
  69. linux-headers/
  70. linux-user/
  71. main-loop.c
  72. memory.c
  73. memory_mapping.c
  74. migration/
  75. module-common.c
  76. monitor.c
  77. nbd.c
  78. net/
  79. numa.c
  80. os-posix.c
  81. os-win32.c
  82. page_cache.c
  83. pc-bios/
  84. po/
  85. qapi-schema.json
  86. qapi/
  87. qdev-monitor.c
  88. qdict-test-data.txt
  89. qemu-bridge-helper.c
  90. qemu-char.c
  91. qemu-coroutine-io.c
  92. qemu-coroutine-lock.c
  93. qemu-coroutine-sleep.c
  94. qemu-coroutine.c
  95. qemu-doc.texi
  96. qemu-img-cmds.hx
  97. qemu-img.c
  98. qemu-img.texi
  99. qemu-io-cmds.c
  100. qemu-io.c
  101. qemu-log.c
  102. qemu-nbd.c
  103. qemu-nbd.texi
  104. qemu-options-wrapper.h
  105. qemu-options.h
  106. qemu-options.hx
  107. qemu-seccomp.c
  108. qemu-tech.texi
  109. qemu-timer.c
  110. qemu.nsi
  111. qemu.sasl
  112. qga/
  113. qjson.c
  114. qmp-commands.hx
  115. qmp.c
  116. qobject/
  117. qom/
  118. qtest.c
  119. roms/
  120. rules.mak
  121. scripts/
  122. slirp/
  123. softmmu_template.h
  124. spice-qemu-char.c
  125. stubs/
  126. target-alpha/
  127. target-arm/
  128. target-cris/
  129. target-i386/
  130. target-lm32/
  131. target-m68k/
  132. target-microblaze/
  133. target-mips/
  134. target-moxie/
  135. target-openrisc/
  136. target-ppc/
  137. target-s390x/
  138. target-sh4/
  139. target-sparc/
  140. target-tricore/
  141. target-unicore32/
  142. target-xtensa/
  143. tcg-runtime.c
  144. tcg/
  145. tci.c
  146. tests/
  147. thread-pool.c
  148. thunk.c
  149. tpm.c
  150. trace-events
  151. trace/
  152. translate-all.c
  153. translate-all.h
  154. ui/
  155. user-exec.c
  156. util/
  157. version.rc
  158. vl.c
  159. xen-common-stub.c
  160. xen-common.c
  161. xen-hvm-stub.c
  162. xen-hvm.c
  163. xen-mapcache.c