Linux cryptographic layer development
 help / color / mirror / Atom feed
From: Evgeniy Polyakov <johnpol@2ka.mipt.ru>
To: Loc Ho <lho@amcc.com>
Cc: linux-crypto@vger.kernel.org, Shasi Pulijala <spulijala@amcc.com>
Subject: Re: OpenSSL patch to support Linux CryptoAPI.
Date: Mon, 11 Aug 2008 23:53:26 +0400	[thread overview]
Message-ID: <20080811195325.GA14671@2ka.mipt.ru> (raw)
In-Reply-To: <0CA0A16855646F4FA96D25A158E299D604D29239@SDCEXCHANGE01.ad.amcc.com>

Hi.

On Mon, Aug 11, 2008 at 11:53:41AM -0700, Loc Ho (lho@amcc.com) wrote:
> >You do not need to pass multiple pointers, but instead a multiple data.
> >You can do that via single area provided to the kernel and multiple size fields, where each 
> > one corresponds to the size of the contiguous sectors in the provided data.
> 
> [Loc Ho]
> It sounds like the solution is to format the data (parameter values, src, dst) into a single buffer. This will require memory copy of the source and destination data as follow:
> 1. User space formating the user space buffer that includes:
> 	1a) size parameter fields (this is required regardless)
> 	2b) parameter data such as IV, adata, and etc (this is required regardless)
> 	3c) copy the source data from application buffer into this single buffer (this is extra memcpy)
> 2. Kernel operation of the single user buffer (this is required regardless)
> 3. User space copy the destination data buffer into its appropriate memory pointer
> 	3a) For hash, it is just the hash
> 	3b) For crypto, it is the entire buffer (= to source length)
> 	3c) For aead, it is the entire buffer + aead ICV
> 
> As you can see, there is two extra memcpy's. There is noticeable performance on our SoC (AMCC 4xx) which memory copy is performed.

It will be buried in noise compared to crypto processing time, but you
still can try to optimize it.

> I was thinking. What do you think about passing multiple data pointer using writev (vector write)? And possible a similar idea for AIO.

Yes, that's a good approach.

Another one is to use a dedicated syscall.
It is up to you as developer decide, since all of them have advantages.

-- 
	Evgeniy Polyakov

      reply	other threads:[~2008-08-11 19:53 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-08-08 18:31 OpenSSL patch to support Linux CryptoAPI Shasi Pulijala
2008-08-08 21:09 ` Evgeniy Polyakov
2008-08-08 22:24   ` Loc Ho
2008-08-09  6:29     ` Evgeniy Polyakov
2008-08-11 18:53       ` Loc Ho
2008-08-11 19:53         ` Evgeniy Polyakov [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080811195325.GA14671@2ka.mipt.ru \
    --to=johnpol@2ka.mipt.ru \
    --cc=lho@amcc.com \
    --cc=linux-crypto@vger.kernel.org \
    --cc=spulijala@amcc.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox