storvsc: get rid of bounce buffer
authorVitaly Kuznetsov <vkuznets@redhat.com>
Thu, 1 Oct 2015 21:53:17 +0000 (14:53 -0700)
committerJames Bottomley <JBottomley@Odin.com>
Tue, 10 Nov 2015 00:26:43 +0000 (16:26 -0800)
commit81988a0e6b031bc80da15257201810ddcf989e64
treee247946d2e7922bca1565086e66497315e6d2841
parent8cf308e1225f5f93575f03cc4dbef24516fa81c9
storvsc: get rid of bounce buffer

Storvsc driver needs to ensure there are no 'holes' in the presented
sg list (all segments in the middle of the list need to be of PAGE_SIZE).
When a hole is detected storvsc driver creates a 'bounce sgl' without
holes and copies data over with copy_{to,from}_bounce_buffer() functions.
Setting virt_boundary_mask to PAGE_SIZE - 1 guarantees we'll never see
such holes so we can significantly simplify the driver. This is also
supposed to bring us some performance improvement for certain workloads
as we eliminate copying.

Reported-by: Radim Krčmář <rkrcmar@redhat.com>
Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Reviewed-by: K. Y. Srinivasan <kys@microsoft.com>
Tested-by: Alex Ng <alexng@microsoft.com>
Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
Signed-off-by: James Bottomley <JBottomley@Odin.com>
drivers/scsi/storvsc_drv.c