Hi Jay, Excellent work! The patch, although need some minor rework, has improved the performance. Some comments:
1. you need to set up capabilities for virtio_crypto PMD. As in Qemu vhost crypto proxy backend only AESCBC and SHA1 are supported (in cryptodev_vhost_user_init() definition), I believe in this version these two algorithms shall be enough. Actually for the same reason I suggest you to remove all AES_CTR test cases in the virtio_crypto PMD functional test, as they will fail when vhost_user crypto backend is used. You may use driver/crypto/qat/qat_crypto_capabilities.h as example. The const capabilities array shall be returned to the application when virtio_crypto_dev_info_get() is called. 2. there is a bug in virtio_crypto_queue_setup(), you declared " uint32_t i, j;" while i may be used uninitialized later. Regards, Fan > diff --git a/drivers/crypto/virtio/virtio_rxtx.c > b/drivers/crypto/virtio/virtio_rxtx.c > new file mode 100644 > index 0000000..b7d8066 > --- /dev/null > +++ b/drivers/crypto/virtio/virtio_rxtx.c > @@ -0,0 +1,533 @@ > +/* SPDX-License-Identifier: BSD-3-Clause > + * Copyright(c) 2018 HUAWEI TECHNOLOGIES CO., LTD. > + */ > +

