[dm-devel] [PATCH 0/15] copy offload patches

Mike Christie michaelc at cs.wisc.edu
Fri Dec 11 05:06:04 UTC 2015


On 12/10/2015 04:33 PM, Martin K. Petersen wrote:
>>>>>> "Mikulas" == Mikulas Patocka <mpatocka at redhat.com> writes:
> 
> Mikulas,
> 
> Mikulas> This patch series adds copy offload (the XCOPY command) to the
> Mikulas> block layer, SCSI subsystems and device mapper.
> 
> Now that the VFS stuff appears to stabilize I agree it's a good time to
> revisit all this. I just merged the required VPD patches from Hannes so
> those will be in 4.5.
> 
> I have a bunch of changes to the SCSI code that I worked on over the
> spring/summer based on a feedback from the array vendors after
> discussions we started at LSF/MM. Generally speaking, their comments
> didn't make things easier, nor prettier :( But your two bio approach is
> a requirement to accommodate those needs (token-based copy) so I'll work
> on consolidating your changes with mine.
> 
> That said, we still need Mike Christie's patches to go in first.
> 
> Mike: What's your status? I'm afraid I didn't get a chance to dig very
> deep in your series since it coincided with me scrambling to sort out
> SCSI for 4.4. Do you think there's a chance we could get your patches in
> shape for 4.5? Is there an up-to-date tree I can look at?
> 

It looks like my original mail did not make it due to an attachment.


I just had 2 review comments left:

1. Originally, I had left REQ_FLUSH a flag. Christoph suggested to break
it up into a op and flag:

http://marc.info/?l=linux-scsi&m=144689113106515&w=2

I started this and messed up  Was going to retry next week.


2. Start REQ_OP_READ off at non-zero to try and shake out code that was
not converted.

There are a several places where we assume reads are zero and writes are
1 for things like indexing in arrays (like blktrace's ddir_act or dm
starts), passing into block functions (like nvme_alloc_request's call of
blk_mq_alloc_request), and if/else's. I am not done fixing all of them
and testing.

Ok, 3 comments. One I gave myself:

3. Also, the btrfs patch is really large (1000 lines) because that code
base is so large and there were so many places we passed around rw to
through multiple functions. I wanted to try and break it up, so it would
be easier for those guys to review.


I uploaded a git tree here:

https://github.com/mikechristie/kernel.git

The patches are in the for-next-req-op.

I made this over Jens's for-next branch in his linux-block tree.





More information about the dm-devel mailing list