Re: [PATCH 0/5] CAAM JR lifecycle

From: Andrey Smirnov
Date: Wed Jan 08 2020 - 10:50:28 EST


On Sat, Nov 16, 2019 at 10:15 PM Andrey Smirnov
<andrew.smirnov@xxxxxxxxx> wrote:
>
> On Wed, Nov 13, 2019 at 11:25 AM Andrey Smirnov
> <andrew.smirnov@xxxxxxxxx> wrote:
> >
> > On Wed, Nov 13, 2019 at 10:57 AM Horia Geanta <horia.geanta@xxxxxxx> wrote:
> > >
> > > On 11/6/2019 5:19 PM, Andrey Smirnov wrote:
> > > > On Tue, Nov 5, 2019 at 11:27 PM Vakul Garg <vakul.garg@xxxxxxx> wrote:
> > > >>
> > > >>
> > > >>
> > > >>> -----Original Message-----
> > > >>> From: linux-crypto-owner@xxxxxxxxxxxxxxx <linux-crypto-
> > > >>> owner@xxxxxxxxxxxxxxx> On Behalf Of Andrey Smirnov
> > > >>> Sent: Tuesday, November 5, 2019 8:44 PM
> > > >>> To: linux-crypto@xxxxxxxxxxxxxxx
> > > >>> Cc: Andrey Smirnov <andrew.smirnov@xxxxxxxxx>; Chris Healy
> > > >>> <cphealy@xxxxxxxxx>; Lucas Stach <l.stach@xxxxxxxxxxxxxx>; Horia Geanta
> > > >>> <horia.geanta@xxxxxxx>; Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>;
> > > >>> Iuliana Prodan <iuliana.prodan@xxxxxxx>; dl-linux-imx <linux-
> > > >>> imx@xxxxxxx>; linux-kernel@xxxxxxxxxxxxxxx
> > > >>> Subject: [PATCH 0/5] CAAM JR lifecycle
> > > >>>
> > > >>> Everyone:
> > > >>>
> > > >>> This series is a different approach to addressing the issues brought up in
> > > >>> [discussion]. This time the proposition is to get away from creating per-JR
> > > >>> platfrom device, move all of the underlying code into caam.ko and disable
> > > >>> manual binding/unbinding of the CAAM device via sysfs. Note that this series
> > > >>> is a rough cut intented to gauge if this approach could be acceptable for
> > > >>> upstreaming.
> > > >>>
> > > >>> Thanks,
> > > >>> Andrey Smirnov
> > > >>>
> > > >>> [discussion] lore.kernel.org/lkml/20190904023515.7107-13-
> > > >>> andrew.smirnov@xxxxxxxxx
> > > >>>
> > > >>> Andrey Smirnov (5):
> > > >>> crypto: caam - use static initialization
> > > >>> crypto: caam - introduce caam_jr_cbk
> > > >>> crypto: caam - convert JR API to use struct caam_drv_private_jr
> > > >>> crypto: caam - do not create a platform devices for JRs
> > > >>> crypto: caam - disable CAAM's bind/unbind attributes
> > > >>>
> > > >>
> > > >> To access caam jobrings from DPDK (user space drivers), we unbind job-ring's platform device from the kernel.
> > > >> What would be the alternate way to enable job ring drivers in user space?
> > > >>
> > > >
> > > > Wouldn't either building your kernel with
> > > > CONFIG_CRYPTO_DEV_FSL_CAAM_JR=n (this series doesn't handle that right
> > > > currently due to being a rough cut) or disabling specific/all JRs via
> > > > DT accomplish the same goal?
> > > >
> > > It's not a 1:1 match, the ability to move a ring to user space / VM etc.
> > > *dynamically* goes away.
> > >
> >
> > Wouldn't it be possible to do that dynamically using DT overlays? That
> > is "modprobe -r caam; <apply overlay>; modprobe caam"?
> >
>
> Or, alternatively, could adding a module parameter, say "jr_mask", to
> limit JRs controlled by the driver cover dynamic use case?
>

Horia, could you please comment on the above? I think getting rid of
struct device for JRs is the best approach to dealing with described
corner case problems + it will allows us to get rid of this custom JR
users lifecycle management
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/drivers/crypto/caam/jr.c?h=v5.4.8#n26
since it can be just done as a part for caam_probe(), so I'd like to
either move forward on this series or close this discussion.

Thanks,
Andrey Smirnov