Message ID | 20200729220638.344477-1-its@irrelevant.dk |
---|---|
Headers | show |
Series | hw/block/nvme: dma handling and address mapping cleanup | expand |
On Jul 30 00:06, Klaus Jensen wrote: > From: Klaus Jensen <k.jensen@samsung.com> > > This series consists of patches that refactors dma read/write and adds a > number of address mapping helper functions. > > v2: > * hw/block/nvme: add mapping helpers > - Add an assert in case of out of bounds array access. (Maxim) > > * hw/block/nvme: remove redundant has_sg member > - Split the fix for the missing qemu_iov_destroy into a fresh patch > ("hw/block/nvme: destroy request iov before reuse"). (Minwoo) > > * hw/block/nvme: pass request along for tracing [DROPPED] > - Dropped the patch and replaced it with a simple patch that just adds > tracing to the nvme_map_prp function ("hw/block/nvme: add tracing to > nvme_map_prp"). (Minwoo) > > * hw/block/nvme: add request mapping helper > - Changed the name from nvme_map to nvme_map_dptr. (Minwoo, Maxim) > > * hw/block/nvme: add check for mdts > - Don't touch the documentaiton for the cmb_size_mb and max_ioqpairs > parameters in this patch. (Minwoo) > > * hw/block/nvme: refactor NvmeRequest clearing [DROPPED] > - Keep NvmeRequest structure clearing as "before use". (Maxim) > > * hw/block/nvme: add a namespace reference in NvmeRequest > * hw/block/nvme: remove NvmeCmd parameter > - Squash these two patches together into "hw/block/nvme: add ns/cmd > references in NvmeRequest". > > * hw/block/nvme: consolidate qsg/iov clearing > - Move the qsg/iov destroys to a new nvme_req_exit function that is called > after the cqe has been posted. > > * hw/block/nvme: remove explicit qsg/iov parameters > - New patch. THe nvme_map_prp() function doesn't require the qsg and iov > parameters since it can just get them from the passed NvmeRequest. > > Based-on: <20200706061303.246057-1-its@irrelevant.dk> > > Klaus Jensen (16): > hw/block/nvme: memset preallocated requests structures > hw/block/nvme: add mapping helpers > hw/block/nvme: replace dma_acct with blk_acct equivalent > hw/block/nvme: remove redundant has_sg member > hw/block/nvme: destroy request iov before reuse > hw/block/nvme: refactor dma read/write > hw/block/nvme: add tracing to nvme_map_prp > hw/block/nvme: add request mapping helper > hw/block/nvme: verify validity of prp lists in the cmb > hw/block/nvme: refactor request bounds checking > hw/block/nvme: add check for mdts > hw/block/nvme: be consistent about zeros vs zeroes > hw/block/nvme: add ns/cmd references in NvmeRequest > hw/block/nvme: consolidate qsg/iov clearing > hw/block/nvme: use preallocated qsg/iov in nvme_dma_prp > hw/block/nvme: remove explicit qsg/iov parameters > > block/nvme.c | 4 +- > hw/block/nvme.c | 506 +++++++++++++++++++++++++++--------------- > hw/block/nvme.h | 4 +- > hw/block/trace-events | 4 + > include/block/nvme.h | 4 +- > 5 files changed, 340 insertions(+), 182 deletions(-) > > -- > 2.27.0 > > Thanks for the reviews everyone. Pushed to nvme-next.
From: Klaus Jensen <k.jensen@samsung.com> This series consists of patches that refactors dma read/write and adds a number of address mapping helper functions. v2: * hw/block/nvme: add mapping helpers - Add an assert in case of out of bounds array access. (Maxim) * hw/block/nvme: remove redundant has_sg member - Split the fix for the missing qemu_iov_destroy into a fresh patch ("hw/block/nvme: destroy request iov before reuse"). (Minwoo) * hw/block/nvme: pass request along for tracing [DROPPED] - Dropped the patch and replaced it with a simple patch that just adds tracing to the nvme_map_prp function ("hw/block/nvme: add tracing to nvme_map_prp"). (Minwoo) * hw/block/nvme: add request mapping helper - Changed the name from nvme_map to nvme_map_dptr. (Minwoo, Maxim) * hw/block/nvme: add check for mdts - Don't touch the documentaiton for the cmb_size_mb and max_ioqpairs parameters in this patch. (Minwoo) * hw/block/nvme: refactor NvmeRequest clearing [DROPPED] - Keep NvmeRequest structure clearing as "before use". (Maxim) * hw/block/nvme: add a namespace reference in NvmeRequest * hw/block/nvme: remove NvmeCmd parameter - Squash these two patches together into "hw/block/nvme: add ns/cmd references in NvmeRequest". * hw/block/nvme: consolidate qsg/iov clearing - Move the qsg/iov destroys to a new nvme_req_exit function that is called after the cqe has been posted. * hw/block/nvme: remove explicit qsg/iov parameters - New patch. THe nvme_map_prp() function doesn't require the qsg and iov parameters since it can just get them from the passed NvmeRequest. Based-on: <20200706061303.246057-1-its@irrelevant.dk> Klaus Jensen (16): hw/block/nvme: memset preallocated requests structures hw/block/nvme: add mapping helpers hw/block/nvme: replace dma_acct with blk_acct equivalent hw/block/nvme: remove redundant has_sg member hw/block/nvme: destroy request iov before reuse hw/block/nvme: refactor dma read/write hw/block/nvme: add tracing to nvme_map_prp hw/block/nvme: add request mapping helper hw/block/nvme: verify validity of prp lists in the cmb hw/block/nvme: refactor request bounds checking hw/block/nvme: add check for mdts hw/block/nvme: be consistent about zeros vs zeroes hw/block/nvme: add ns/cmd references in NvmeRequest hw/block/nvme: consolidate qsg/iov clearing hw/block/nvme: use preallocated qsg/iov in nvme_dma_prp hw/block/nvme: remove explicit qsg/iov parameters block/nvme.c | 4 +- hw/block/nvme.c | 506 +++++++++++++++++++++++++++--------------- hw/block/nvme.h | 4 +- hw/block/trace-events | 4 + include/block/nvme.h | 4 +- 5 files changed, 340 insertions(+), 182 deletions(-)