All of lore.kernel.org
 help / color / mirror / Atom feed
From: Haren Myneni <haren@linux.vnet.ibm.com>
To: Dan Streetman <ddstreet@ieee.org>
Cc: Michael Ellerman <mpe@ellerman.id.au>,
	mikey@neuling.org, Herbert Xu <herbert@gondor.apana.org.au>,
	Ram Pai <linuxram@us.ibm.com>,
	npiggin@gmail.com, suka@us.ibm.com,
	Linux Crypto Mailing List <linux-crypto@vger.kernel.org>,
	"linuxppc-dev@lists.ozlabs.org" <linuxppc-dev@lists.ozlabs.org>
Subject: Re: [PATCH V3 6/6] crypto/nx: Add P9 NX support for 842 compression engine
Date: Thu, 31 Aug 2017 00:44:14 -0700	[thread overview]
Message-ID: <59A7BE4E.1040806@linux.vnet.ibm.com> (raw)
In-Reply-To: <CALZtONDnFLiGhTRNs89VWr3nrY0Bp9VPRqFXA0iEaa6U_+w4Ag@mail.gmail.com>

Thanks MIchael and Dan for your review comments.


On 08/29/2017 06:32 AM, Dan Streetman wrote:
> On Mon, Aug 28, 2017 at 7:25 PM, Michael Ellerman <mpe@ellerman.id.au> wrote:
>> Hi Haren,
>>
>> Some comments inline ...
>>
>> Haren Myneni <haren@linux.vnet.ibm.com> writes:
>>
>>> diff --git a/drivers/crypto/nx/nx-842-powernv.c b/drivers/crypto/nx/nx-842-powernv.c
>>> index c0dd4c7e17d3..13089a0b9dfa 100644
>>> --- a/drivers/crypto/nx/nx-842-powernv.c
>>> +++ b/drivers/crypto/nx/nx-842-powernv.c
>>> @@ -32,6 +33,9 @@ MODULE_ALIAS_CRYPTO("842-nx");
>>>
>>>  #define WORKMEM_ALIGN        (CRB_ALIGN)
>>>  #define CSB_WAIT_MAX (5000) /* ms */
>>> +#define VAS_RETRIES  (10)
>>
>> Where does that number come from?

Sometimes HW returns copy/paste failures. So we should retry the request again. With 10 retries, Test running 12 hours was successful for repeated compression/decompression requests with 1024 threads. 

>>
>> Do we have any idea what the trade off is between retrying vs just
>> falling back to doing the request in software?

Not checked the overhead with falling back to SW compression. 

>>
>>> +/* # of requests allowed per RxFIFO at a time. 0 for unlimited */
>>> +#define MAX_CREDITS_PER_RXFIFO       (1024)
>>>
>>>  struct nx842_workmem {
>>>       /* Below fields must be properly aligned */
>>> @@ -42,16 +46,27 @@ struct nx842_workmem {
>>>
>>>       ktime_t start;
>>>
>>> +     struct vas_window *txwin;       /* Used with VAS function */
>>
>> I don't understand how it makes sense to put txwin and start between the
>> fields above, and the padding.
> 
> workmem is a scratch buffer and shouldn't be used for something
> persistent like this.
> 
>>
>> If the workmem pointer you receive is not aligned, then PTR_ALIGN() will
>> advance it and mean you end up writing over start and txwin.

We always access workmem with PTR_ALIGN even when assigning txwin (nx842_powernv_crypto_init/exit_vas).
So we should not overwrite start and txwin,

We can add txwin in nx842_crypto_ctx instead of workmem. But nx842_crypto_ctx is used for both powernv and pseries. Hence used workmem. But if nx842_crypto_ctx is preferred, I will send new patch soon. 

>>
>> That's probably not your bug, the code is already like that.
> 
> no, it's a bug in this patch, because workmem is scratch whose
> contents are only valid for the duration of each operation (compress
> or decompress).
> 
>>
>>>       char padding[WORKMEM_ALIGN]; /* unused, to allow alignment */
>>>  } __packed __aligned(WORKMEM_ALIGN);
>>

Thanks
Haren

  reply	other threads:[~2017-08-31  7:44 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-07-22  5:01 [PATCH V3 6/6] crypto/nx: Add P9 NX support for 842 compression engine Haren Myneni
2017-07-24 16:46 ` Ram Pai
2017-08-28 23:25 ` Michael Ellerman
2017-08-29 13:32   ` Dan Streetman
2017-08-31  7:44     ` Haren Myneni [this message]
2017-08-31 13:40       ` Dan Streetman
2017-08-31 19:03         ` Haren Myneni
2017-09-01 11:34       ` Michael Ellerman
2017-09-02  4:11         ` Haren Myneni
2017-08-29  6:30 ` Sukadev Bhattiprolu
2017-08-29 13:58 ` Dan Streetman
2017-08-29 21:23   ` Benjamin Herrenschmidt
2017-08-29 21:54     ` Haren Myneni
2017-08-29 21:57       ` Benjamin Herrenschmidt
2017-08-30  1:02         ` Haren Myneni
2017-08-31 13:31       ` Dan Streetman
2017-08-31 19:09         ` Haren Myneni
2017-09-01 11:29         ` Michael Ellerman
2017-09-02  3:27           ` Haren Myneni
2017-09-02 16:14           ` Dan Streetman
2017-09-02  8:40   ` Haren Myneni
2017-09-02 13:42     ` Michael Neuling
2017-09-02 13:42       ` Michael Neuling
2017-09-02 16:17     ` Dan Streetman
2017-09-02 16:17       ` Dan Streetman
2017-09-03  8:32       ` Haren Myneni
2017-09-03 14:12         ` Dan Streetman
2017-09-03 14:12           ` Dan Streetman

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=59A7BE4E.1040806@linux.vnet.ibm.com \
    --to=haren@linux.vnet.ibm.com \
    --cc=ddstreet@ieee.org \
    --cc=herbert@gondor.apana.org.au \
    --cc=linux-crypto@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=linuxram@us.ibm.com \
    --cc=mikey@neuling.org \
    --cc=mpe@ellerman.id.au \
    --cc=npiggin@gmail.com \
    --cc=suka@us.ibm.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.