On Mon, 8 Apr 2013 13:49:58 +0000
"Hsieh, Che-Min" <chem...@qti.qualcomm.com> wrote:

> Thanks for the answer.
> 
> I have further question on the same subject.
> With regard to the commit in talitos.c, (attached at end of this mail),  
>   the driver submits requests of same tfm to the same channel to ensure the 
> ordering.  
> 
> Is it because the tfm context needs to be maintained from one operation to 
> next operation? Eg, aead_givencrypt() generates iv based on previous iv 
> result stored in tfm.

is that what the commit text says?

> If requests are sent to different channels dynamically. And driver at the 
> completion of a request from HW, reorders the requests completion callback, 
> what would happen? 

about the same thing as wrapping the driver with pcrypt?  why not
use the h/w to maintain ordering?

Kim

> Thanks in advance.
> 
> Chemin
> 
> 
> 
> commit 5228f0f79e983c2b39c202c75af901ceb0003fc1
> Author: Kim Phillips <kim.phill...@freescale.com>
> Date:   Fri Jul 15 11:21:38 2011 +0800
> 
>     crypto: talitos - ensure request ordering within a single tfm
> 
>     Assign single target channel per tfm in talitos_cra_init instead of
>     performing channel scheduling dynamically during the encryption request.
>     This changes the talitos_submit interface to accept a new channel
>     number argument.  Without this, rapid bursts of misc. sized requests
>     could make it possible for IPsec packets to be encrypted out-of-order,
>     which would result in packet drops due to sequence numbers falling
>     outside the anti-reply window on a peer gateway.
> 
>     Signed-off-by: Kim Phillips <kim.phill...@freescale.com>
>     Signed-off-by: Herbert Xu <herb...@gondor.apana.org.au>
> 
> -----Original Message-----
> From: Kim Phillips [mailto:kim.phill...@freescale.com] 
> Sent: Friday, April 05, 2013 6:33 PM
> To: Hsieh, Che-Min
> Cc: linux-crypto@vger.kernel.org
> Subject: Re: questions of crypto async api
> 
> On Thu, 4 Apr 2013 14:38:41 +0000
> "Hsieh, Che-Min" <chem...@qti.qualcomm.com> wrote:
> 
> > If a driver supports multiple instances of HW crypto engines, the order of 
> > the request completion from HW can be different from the order of requests 
> > submitted to different HW.  The 2nd request sent out to the 2nd HW instance 
> > may take shorter time to complete than the first request for different HW 
> > instance.  Is the driver responsible for re-ordering the completion 
> > callout? Or the agents (such as IP protocol stack) are responsible for 
> > reordering? How does pcrypt do it?
> > 
> >  Does it make sense for a transform to send multiple requests outstanding 
> > to async crypto api?
> 
> see:
> 
> http://comments.gmane.org/gmane.linux.kernel.cryptoapi/5350
> 
> >  Is scatterwalk_sg_next() preferred method over sg_next()?  Why?
> 
> scatterwalk_* is the crypto subsystem's version of the function, so yes.
> 
> >  sg_copy_to_buffer() and sg_copy_from_buffer() -> 
> > sg_copy_buffer()->sg_copy_buffer() -> sg_miter_next()-> sg_next() Sometimes 
> > sg_copy_to_buffer() and sg_copy_from_buffer() in our driver do not copy the 
> > whole list. We have to rewrite those functions by using 
> > scattewalk_sg_next() to walk down the list. Is this the correct behavior?
> 
> sounds like you're on the right track, although buffers shouldn't be being 
> copied that often, if at all.
> 
> Kim
> 
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-crypto" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to