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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).