Jeff reported preflush order issue with the existing implementation of virtio pmem preflush. Dan suggested[1] to implement asynchronous flush for virtio pmem using work queue as done in md/RAID. This patch series intends to solve the preflush ordering issue and makes the flush asynchronous for the submitting thread. Also, adds the flush coalscing logic.
Submitting this RFC v3 series for review. Thank You! RFC v2 -> RFC v3 - Improve commit log message - patch1. - Improve return error handling for Async flush. - declare'INIT_WORK' only once. - More testing and bug fix. [1] https://marc.info/?l=linux-kernel&m=157446316409937&w=2 Pankaj Gupta (2): virtio-pmem: Async virtio-pmem flush pmem: enable pmem_submit_bio for asynchronous flush drivers/nvdimm/nd_virtio.c | 74 +++++++++++++++++++++++++++--------- drivers/nvdimm/pmem.c | 15 ++++++-- drivers/nvdimm/region_devs.c | 4 +- drivers/nvdimm/virtio_pmem.c | 10 +++++ drivers/nvdimm/virtio_pmem.h | 16 ++++++++ 5 files changed, 98 insertions(+), 21 deletions(-) -- 2.25.1