Re: [PATCH][RFC] crypto: tcrypt - Ahash tests changed to run in parallel.

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

 



On Thu, 10 Jan 2013 00:49:23 -0600
Garg Vakul-B16394 <B16394@xxxxxxxxxxxxx> wrote:

> > From: Phillips Kim-R1AAHA
> > Sent: Thursday, January 10, 2013 3:16 AM
> > On Sat, 5 Jan 2013 17:14:13 +0000
> > Garg Vakul-B16394 <B16394@xxxxxxxxxxxxx> wrote:
> > > > From: Jussi Kivilinna [mailto:jussi.kivilinna@xxxxxxxx]
> > > > Sent: Saturday, January 05, 2013 9:56 PM
> > > >
> > > > Quoting Vakul Garg <vakul@xxxxxxxxxxxxx>:
> > > >
> > > > > This allows to test & run multiple parallel crypto ahash contexts.
> > > > > Each of the test vector under the ahash speed test template is
> > > > > started under a separate kthread.
> > > >
> > > > Why you want to do this?
> > >
> > > In its current form, we cannot test multiple simultaneous crypto
> > sessions with tcrypt.
> > > Crypto offload hardware accelerators are usually capable of handling
> > multiple session in parallel.
> > > This patch allows to load such hardware.
> > 
> > tcrypt can currently test offload engines with multiple single-session
> > async requests.  So to test multiple _session_ requests, why isn't the
> > change to tcrypt simply to alternate keys in the request loop, as opposed
> > to what this patch does, i.e.
> > adding separate kthreads?  The number of sessions/keys to alternate can
> > be added as a module parameter.
> > 
> > > Even if offload accelerators are not present, multiple crypto sessions
> > can execute in parallel on Multicore.
> > 
> > I think that's more in the area of PCRYPT.
> > 
> 
> 
> > > > Does not this change make tcrypt give inconsistent results?
> > > >
> > >
> > > Based on kernel scheduling of threads, this change can make tcrypt give
> > varying results in different runs.
> > > For consistent results, we can use existing synchronous mode crypto
> > sessions.
> > 
> > see above.  I'm not sure, but I think multithreading tcrypt should be
> > left to the parallel crypto engine (PCRYPT) and Software async crypto
> > daemon (CRYPTD).
> [VG] IIUC, PCRYPT and CRYPTD provides infrastructure to execute crypto contexts under threads to achieve different things.
> PCRYPT allows multiple crypto requests from a transform to execute in parallel.
> 
> CRYPTD provides a daemon which executes crypto requests. 
> It is more like crypto hardware accelerator running in software (e.g. on a certain core of Multicore processor).
> 
> My proposal is to add capability in tcrypt to launch multiple parallel crypto transforms.

but you can do that in a single thread - it's up to the algorithm
implementation (be it a driver, pcrypt, sync s/w, etc.) to
parallelize the requests appropriately for the underlying h/w.

> Currently, only one transform is active at any point of time.

so allocate multiple transforms at startup and round-robin through
them in the single-threaded test loop?

btw, tcrypt's existing async cipher implementation (commit 3f3baf3
"crypto: tcrypt - add test_acipher_speed") waits for request
completion prior to submitting a new request - not good for h/w with
parallel cipher capabilities.  Here's a version that suits the SEC4
better:

http://marc.info/?l=linux-crypto-vger&m=128179098817896&w=2

Kim

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


[Index of Archives]     [Kernel]     [Gnu Classpath]     [Gnu Crypto]     [DM Crypt]     [Netfilter]     [Bugtraq]

  Powered by Linux