virtio: Allow guest to defer VIRTIO_F_NOTIFY_ON_EMPTY (Alex Williamson)

There may be cases where the guest does not want the avail queue
interrupt, even when it's empty.  For the virtio-net case, the
guest may use a different buffering scheme or decide polling for
used buffers is more efficient.  This can be accomplished by simply
checking for whether the guest has acknowledged the existing notify
on empty flag.

Signed-off-by: Alex Williamson <alex.williamson@hp.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6865 c046a42c-6fe2-441c-8c8c-71466251a162
1 file changed
tree: 01584249ce6bc8cae70e98db04499d53b44652dd
  1. audio/
  2. bsd-user/
  3. darwin-user/
  4. fpu/
  5. gdb-xml/
  6. hw/
  7. keymaps/
  8. linux-user/
  9. pc-bios/
  10. slirp/
  11. target-alpha/
  12. target-arm/
  13. target-cris/
  14. target-i386/
  15. target-m68k/
  16. target-mips/
  17. target-ppc/
  18. target-sh4/
  19. target-sparc/
  20. tcg/
  21. tests/
  22. .gitignore
  23. a.out.h
  24. acl.c
  25. acl.h
  26. aes.c
  27. aes.h
  28. aio.c
  29. alpha-dis.c
  30. alpha.ld
  31. arm-dis.c
  32. arm-semi.c
  33. arm.ld
  34. balloon.h
  35. block-bochs.c
  36. block-cloop.c
  37. block-cow.c
  38. block-dmg.c
  39. block-nbd.c
  40. block-parallels.c
  41. block-qcow.c
  42. block-qcow2.c
  43. block-raw-posix.c
  44. block-raw-win32.c
  45. block-vmdk.c
  46. block-vpc.c
  47. block-vvfat.c
  48. block.c
  49. block.h
  50. block_int.h
  51. bswap.h
  52. bt-host.c
  53. bt-host.h
  54. bt-vhci.c
  55. buffered_file.c
  56. buffered_file.h
  57. cache-utils.c
  58. cache-utils.h
  59. Changelog
  60. cocoa.m
  61. configure
  62. console.c
  63. console.h
  64. COPYING
  65. COPYING.LIB
  66. cpu-all.h
  67. cpu-defs.h
  68. cpu-exec.c
  69. cris-dis.c
  70. curses.c
  71. curses_keys.h
  72. cutils.c
  73. d3des.c
  74. d3des.h
  75. def-helper.h
  76. device_tree.c
  77. device_tree.h
  78. dis-asm.h
  79. disas.c
  80. disas.h
  81. dma-helpers.c
  82. dma.h
  83. dyngen-exec.h
  84. elf.h
  85. elf_ops.h
  86. exec-all.h
  87. exec.c
  88. feature_to_c.sh
  89. gdbstub.c
  90. gdbstub.h
  91. gen-icount.h
  92. host-utils.c
  93. host-utils.h
  94. hostregs_helper.h
  95. hpet.h
  96. hppa-dis.c
  97. hppa.ld
  98. i386-dis.c
  99. i386.ld
  100. ia64.ld
  101. keymaps.c
  102. keymaps.h
  103. kqemu.c
  104. kqemu.h
  105. kvm-all.c
  106. kvm.h
  107. libfdt_env.h
  108. LICENSE
  109. loader.c
  110. m68k-dis.c
  111. m68k-semi.c
  112. m68k.ld
  113. MAINTAINERS
  114. Makefile
  115. Makefile.target
  116. migration-exec.c
  117. migration-tcp.c
  118. migration.c
  119. migration.h
  120. mips-dis.c
  121. mips.ld
  122. mipsel.ld
  123. monitor.c
  124. monitor.h
  125. nbd.c
  126. nbd.h
  127. net-checksum.c
  128. net.c
  129. net.h
  130. osdep.c
  131. osdep.h
  132. pci-ids.txt
  133. posix-aio-compat.c
  134. posix-aio-compat.h
  135. ppc-dis.c
  136. ppc.ld
  137. ppc64.ld
  138. qemu-aio.h
  139. qemu-binfmt-conf.sh
  140. qemu-char.c
  141. qemu-char.h
  142. qemu-common.h
  143. qemu-doc.texi
  144. qemu-img.c
  145. qemu-img.texi
  146. qemu-lock.h
  147. qemu-log.h
  148. qemu-malloc.c
  149. qemu-nbd.c
  150. qemu-nbd.texi
  151. qemu-sockets.c
  152. qemu-tech.texi
  153. qemu-timer.h
  154. qemu-tool.c
  155. qemu.sasl
  156. qemu_socket.h
  157. readline.c
  158. readline.h
  159. README
  160. rules.mak
  161. s390-dis.c
  162. s390.ld
  163. savevm.c
  164. sdl.c
  165. sdl_keysym.h
  166. sh4-dis.c
  167. softmmu-semi.h
  168. softmmu_defs.h
  169. softmmu_exec.h
  170. softmmu_header.h
  171. softmmu_template.h
  172. sparc-dis.c
  173. sparc.ld
  174. sparc64.ld
  175. sys-queue.h
  176. sysemu.h
  177. tap-win32.c
  178. texi2pod.pl
  179. thunk.c
  180. thunk.h
  181. TODO
  182. translate-all.c
  183. uboot_image.h
  184. usb-bsd.c
  185. usb-linux.c
  186. usb-stub.c
  187. VERSION
  188. vgafont.h
  189. vl.c
  190. vnc-auth-sasl.c
  191. vnc-auth-sasl.h
  192. vnc-auth-vencrypt.c
  193. vnc-auth-vencrypt.h
  194. vnc-tls.c
  195. vnc-tls.h
  196. vnc.c
  197. vnc.h
  198. vnc_keysym.h
  199. vnchextile.h
  200. x86_64.ld
  201. x_keymap.c
  202. x_keymap.h