Re: [Qemu-devel] [PATCH v7 1/1] crypto: add virtio-crypto driver

From: Michael S. Tsirkin
Date: Thu Dec 15 2016 - 11:42:39 EST


On Thu, Dec 15, 2016 at 01:08:51AM +0000, Gonglei (Arei) wrote:
>
>
>
>
> Regards,
> -Gonglei
>
>
> > -----Original Message-----
> > From: Zeng, Xin [mailto:xin.zeng@xxxxxxxxx]
> > Sent: Thursday, December 15, 2016 8:59 AM
> > To: Gonglei (Arei); Halil Pasic; linux-kernel@xxxxxxxxxxxxxxx;
> > qemu-devel@xxxxxxxxxx; virtio-dev@xxxxxxxxxxxxxxxxxxxx;
> > virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx; linux-crypto@xxxxxxxxxxxxxxx
> > Cc: Huangweidong (C); Claudio Fontana; mst@xxxxxxxxxx; Luonengjun;
> > Hanweidong (Randy); Xuquan (Quan Xu); Wanzongshun (Vincent);
> > stefanha@xxxxxxxxxx; Zhoujian (jay, Euler); cornelia.huck@xxxxxxxxxx;
> > longpeng; arei.gonglei@xxxxxxxxxxx; davem@xxxxxxxxxxxxx; Wubin (H);
> > herbert@xxxxxxxxxxxxxxxxxxx
> > Subject: RE: [Qemu-devel] [PATCH v7 1/1] crypto: add virtio-crypto driver
> >
> > On Thursday, December 15, 2016 8:45 AM, Gonglei (Arei) Wrote:
> > < > > diff --git a/drivers/crypto/virtio/virtio_crypto_core.c
> > < > b/drivers/crypto/virtio/virtio_crypto_core.c
> > < > > new file mode 100644
> > < > > index 0000000..c0854a1
> > < > > --- /dev/null
> > < > > +++ b/drivers/crypto/virtio/virtio_crypto_core.c
> > < > > @@ -0,0 +1,474 @@
> > < > [..]
> > < > > +
> > < > > +static void virtcrypto_dataq_callback(struct virtqueue *vq)
> > < > > +{
> > < > > + struct virtio_crypto *vcrypto = vq->vdev->priv;
> > < > > + struct virtio_crypto_request *vc_req;
> > < > > + unsigned long flags;
> > < > > + unsigned int len;
> > < > > + struct ablkcipher_request *ablk_req;
> > < > > + int error;
> > < > > +
> > < > > + spin_lock_irqsave(&vcrypto->lock, flags);
> > < >
> > < > Would it make sense to use a per virtqueue lock
> > < > like in virtio_blk for example instead of locking on the whole
> > < > device? OK, it seems you use only one dataqueue, so it
> > < > may not be that relevant.
> > < >
> > < Currently yes, both the backend device (cryptodev-backend-builtin)
> > < and the frontend driver use one dataqueue.
> > <
> >
> > I think it makes sense to use per virtqueue lock here though it only uses one
> > queue so far,
> > but in the spec we already have multi queues support.
> >
> Yes, I agree. Will do that in V8 soon.
> Hope to catch up with Michael's pull request for 4.10.
>
> Regards,
> -Gonglei

I merged v7, this change will have to wait. Sorry.