From: "Horia Geantă" <horia.geanta@freescale.com>
To: Kim Phillips <kim.phillips@freescale.com>
Cc: Herbert Xu <herbert@gondor.apana.org.au>,
<linux-crypto@vger.kernel.org>,
"David S. Miller" <davem@davemloft.net>,
Carmen Iorga <carmen.iorga@freescale.com>,
Alexandru Porosanu <alexandru.porosanu@freescale.com>,
Vakul Garg <vakul@freescale.com>,
"Ruchika Gupta" <ruchika.gupta@freescale.com>
Subject: Re: [PATCH 0/9] crypto: caam - Add RTA descriptor creation library
Date: Mon, 21 Jul 2014 10:47:49 +0300 [thread overview]
Message-ID: <53CCC5A5.1070004@freescale.com> (raw)
In-Reply-To: <20140718202326.75cfb9a11f3969ee3353135d@freescale.com>
On 7/19/2014 4:23 AM, Kim Phillips wrote:
> On Sat, 19 Jul 2014 02:51:30 +0300
> Horia Geantă <horia.geanta@freescale.com> wrote:
>
>> On 7/19/2014 1:13 AM, Kim Phillips wrote:
>>> On Fri, 18 Jul 2014 19:37:17 +0300
>>> Horia Geanta <horia.geanta@freescale.com> wrote:
>>>
>>>> This patch set adds Run Time Assembler (RTA) SEC descriptor library.
>>>>
>>>> The main reason of replacing incumbent "inline append" is
>>>> to have a single code base both for user space and kernel space.
>>>
>>> that's orthogonal to what this patchseries is doing from the kernel
>>> maintainer's perspective: it's polluting the driver with a
>>> CodingStyle-violating (see, e.g., Chapter 12) 6000+ lines of code -
>>
>> Regarding coding style - AFAICT that's basically:
>> ERROR: Macros with complex values should be enclosed in parenthesis
>> and I am wiling to find a different approach.
>
> There's that, too.
>
>>> which can only mean it's slower and more susceptible to bugs - and
>>> AFAICT for no superior technical advantage: NACK from me.
>>
>> The fact that the code size is bigger doesn't necessarily mean a bad thing:
>> 1-code is better documented - cloc reports ~ 1000 more lines of
>> comments; patch 09 even adds support for generating a docbook
>> 2-pure code (i.e. no comments, white spaces) - cloc reports ~ 5000 more
>> lines; this reflects two things, AFAICT:
>> 2.1-more features: options (for e.g. new SEC instructions, little endian
>> env. support), platform support includes Era 7 and Era 8, i.e.
>> Layerscape LS1 and LS2; this is important to note, since plans are to
>> run the very same CAAM driver on ARM platforms
>
> um, *those* features should not cost any driver *that many* lines of
> code!
You are invited to comment on the code at hand. I am pretty sure it's
not perfect.
>
>> 2.2-more error-checking - from this perspective, I'd say driver is less
>> susceptible to bugs, especially subtle ones in CAAM descriptors that are
>> hard to identify / debug; RTA will complain when generating descriptors
>> using features (say a new bit in an instruction opcode) that are not
>> supported on the SEC on device
>
> ? The hardware does the error checking. This just tells me RTA is
> slow, inflexible, and requires unnecessary maintenance by design:
> all the more reason to keep it out of the kernel :)
This is just like saying a toolchain isn't performing any checks and
lets the user generate invalid machine code and deal with HW errors.
Beside this, there are (quite a few) cases when SEC won't emit any
error, but still the results are different than expected.
SEC HW is complex enough to deserve descriptor error checking.
>
>> RTA currently runs on:
>> -QorIQ platforms - userspace (USDPAA)
>> -Layerscape platforms - AIOP accelerator
>> (obviously, plans are to run also on QorIQ/PowerPC and LS/ARM kernels)
>
> inline append runs elsewhere, too, but I don't see how this is
> related to the subject I'm bringing up.
This is relevant, since having a piece of SW running in multiple
environments should lead to better testing, more exposure, finding bugs
faster.
inline append *could run* elsewhere , but it doesn't AFAICT. Last time
I checked, USDPAA and AIOP use RTA.
>
>> Combined with:
>> -comprehensive unit testing suite
>> -RTA kernel port is bit-exact in terms of SEC descriptors hex dumps with
>> inline append; besides this, it was tested with tcrypt and in IPsec
>> scenarios
>> I would say that RTA is tested more than inline append. In the end, this
>> is a side effect of having a single code base.
>
> inline append has been proven stable for years now. RTA just adds
> redundant code and violates CodingStyle AFAICT.
New platform support is not redundant.
Error checking is not redundant, as explained above.
kernel-doc is always helpful.
Coding Style can be fixed.
Thanks,
Horia
next prev parent reply other threads:[~2014-07-21 7:48 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-18 16:37 [PATCH 0/9] crypto: caam - Add RTA descriptor creation library Horia Geanta
2014-07-18 16:37 ` [PATCH 1/9] crypto: caam - completely remove error propagation handling Horia Geanta
2014-07-18 16:37 ` [PATCH 2/9] crypto: caam - desc.h fixes Horia Geanta
2014-07-18 16:37 ` [PATCH 3/9] crypto: caam - code cleanup Horia Geanta
2014-07-18 16:37 ` [PATCH 4/9] crypto: caam - move sec4_sg_entry to sg_sw_sec4.h Horia Geanta
2014-07-18 16:37 ` [PATCH 6/9] crypto: caam - use RTA instead of inline append Horia Geanta
2014-07-18 16:37 ` [PATCH 7/9] crypto: caam - completely remove " Horia Geanta
2014-07-18 16:37 ` [PATCH 8/9] crypto: caam - refactor descriptor creation Horia Geanta
2014-07-18 16:37 ` [PATCH 9/9] crypto: caam - add Run Time Library (RTA) docbook Horia Geanta
2014-07-18 22:13 ` [PATCH 0/9] crypto: caam - Add RTA descriptor creation library Kim Phillips
2014-07-18 23:51 ` Horia Geantă
2014-07-19 1:23 ` Kim Phillips
2014-07-21 7:47 ` Horia Geantă [this message]
2014-07-21 13:03 ` [PATCH] crypto: caam - fix DECO RSR polling Horia Geanta
2014-07-22 21:31 ` Kim Phillips
2014-07-23 13:36 ` Herbert Xu
2014-07-23 8:53 ` Ruchika Gupta
2014-07-21 15:08 ` [PATCH 0/9] crypto: caam - Add RTA descriptor creation library Kim Phillips
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=53CCC5A5.1070004@freescale.com \
--to=horia.geanta@freescale.com \
--cc=alexandru.porosanu@freescale.com \
--cc=carmen.iorga@freescale.com \
--cc=davem@davemloft.net \
--cc=herbert@gondor.apana.org.au \
--cc=kim.phillips@freescale.com \
--cc=linux-crypto@vger.kernel.org \
--cc=ruchika.gupta@freescale.com \
--cc=vakul@freescale.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.