qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/7] block/nvme: support nested aio_poll()
@ 2020-06-17 13:21 Stefan Hajnoczi
  2020-06-17 13:21 ` [PATCH v2 1/7] block/nvme: poll queues without q->lock Stefan Hajnoczi
                   ` (7 more replies)
  0 siblings, 8 replies; 10+ messages in thread
From: Stefan Hajnoczi @ 2020-06-17 13:21 UTC (permalink / raw)
  To: qemu-devel
  Cc: Kevin Wolf, Fam Zheng, qemu-block, Max Reitz, Stefan Hajnoczi,
	Philippe Mathieu-Daudé

v2:
 * Reword comment in Patch 1 explainin why its safe not to hold q->lock [Sergio]
 * Fix s/unwiedly/unwieldy/ typo in the Patch 6 commit description [Philippe]

This series allows aio_poll() to work from I/O request completion callbacks.
QEMU block drivers are supposed to support this because some code paths rely on
this behavior.

There was no measurable performance difference with nested aio_poll() support.

This patch series also contains cleanups that I made while examining and
benchmarking the code.

Stefan Hajnoczi (7):
  block/nvme: poll queues without q->lock
  block/nvme: drop tautologous assertion
  block/nvme: don't access CQE after moving cq.head
  block/nvme: switch to a NVMeRequest freelist
  block/nvme: clarify that free_req_queue is protected by q->lock
  block/nvme: keep BDRVNVMeState pointer in NVMeQueuePair
  block/nvme: support nested aio_poll()

 block/nvme.c       | 220 ++++++++++++++++++++++++++++++++-------------
 block/trace-events |   2 +-
 2 files changed, 160 insertions(+), 62 deletions(-)

-- 
2.26.2


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2020-06-23 15:03 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-06-17 13:21 [PATCH v2 0/7] block/nvme: support nested aio_poll() Stefan Hajnoczi
2020-06-17 13:21 ` [PATCH v2 1/7] block/nvme: poll queues without q->lock Stefan Hajnoczi
2020-06-22 13:54   ` Sergio Lopez
2020-06-17 13:21 ` [PATCH v2 2/7] block/nvme: drop tautologous assertion Stefan Hajnoczi
2020-06-17 13:21 ` [PATCH v2 3/7] block/nvme: don't access CQE after moving cq.head Stefan Hajnoczi
2020-06-17 13:21 ` [PATCH v2 4/7] block/nvme: switch to a NVMeRequest freelist Stefan Hajnoczi
2020-06-17 13:21 ` [PATCH v2 5/7] block/nvme: clarify that free_req_queue is protected by q->lock Stefan Hajnoczi
2020-06-17 13:22 ` [PATCH v2 6/7] block/nvme: keep BDRVNVMeState pointer in NVMeQueuePair Stefan Hajnoczi
2020-06-17 13:22 ` [PATCH v2 7/7] block/nvme: support nested aio_poll() Stefan Hajnoczi
2020-06-23 14:46 ` [PATCH v2 0/7] " Stefan Hajnoczi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).