Re: [PATCH v2 04/11] async_xor: permit callers to pass in a 'dma/page scribble' region

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 11:35, Dan Williams wrote:

> > Don't we need to fall back to sync xor if src_cnt exceeds
> > what the device can handle, i.e. if it is larger than
> > chan->device->max_xor? async_xor_val() further down has a check for
> > this condition.
> 
> No, we don't need this check for async_xor().  The asynchronous path
> of async_xor_val() has the constraint that it must be able to validate
> an xor block without writing to that block i.e. it is a read-only
> operation.  The synchronous path recalculates the xor with the
> destination as a source and then does a memcmp() to validate that the
> new result is zero.
> 
> To support more than ->max_xor sources for async_xor_val() we would
> need an engine that supported hardware continuation of validate
> operations (i.e. an engine with an internal buffer for the
> intermediate xor result) otherwise we will need to store an
> intermediate xor result in system memory which is no better than the
> synchronous path.
> 
> For async_xor() we are always allowed to write the destination, so we
> can reuse it as a source to continue the calculation of the xor
> result.

I see. Thanks for this detailed explanation!

BTW: So far I've only glanced at patches 7-11 of your series. I will
review these patches this evening and tomorrow, so I'll send another
batch of comments/questions/sign-offs by Friday.

Robinson^WAndre
-- 
The only person who always got his work done by Friday was Robinson Crusoe

Attachment: signature.asc
Description: Digital signature


[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux