mbox series

[0/3] Add uadk compression and crypto PMD

Message ID 20220620123544.3168-1-zhangfei.gao@linaro.org
Headers show
Series Add uadk compression and crypto PMD | expand

Message

Zhangfei Gao June 20, 2022, 12:35 p.m. UTC
UADK compression PMD provides poll mode compression & decompression driver
UADK crypto PMD provides poll mode driver
All cryptography operations are using UADK crypto API.
All compression operations are using UADK compress API.

Hardware accelerators using UADK are supposed to be supported.
Currently supported hardware platforms:
HiSilicon Kunpeng920 and Kunpeng930

Test:
sudo dpdk-test --vdev=compress_uadk
sudo dpdk-test --vdev=crypto_uadk

v1:
Target to DPDK 22.11
Rebased on http://git.dpdk.org/next/dpdk-next-crypto/

Suggested from Akhil Goyal <gakhil@marvell.com>
> Current release cycle is DPDK-22.07 for which this patchset is late.
> As we had the V1 deadline last month.
> This patchset can go for next release cycle which is 22.11.

Zhangfei Gao (3):
  compress/uadk: add uadk compression PMD
  test/crypto: add cryptodev_uadk_autotest
  crypto/uadk: add uadk crypto PMD

 app/test/test_cryptodev.c                 |    7 +
 app/test/test_cryptodev.h                 |    1 +
 doc/guides/compressdevs/index.rst         |    1 +
 doc/guides/compressdevs/uadk.rst          |   60 ++
 doc/guides/cryptodevs/index.rst           |    1 +
 doc/guides/cryptodevs/uadk.rst            |   70 ++
 drivers/compress/meson.build              |    1 +
 drivers/compress/uadk/meson.build         |   28 +
 drivers/compress/uadk/uadk_compress_pmd.c |  489 +++++++++
 drivers/compress/uadk/version.map         |    3 +
 drivers/crypto/meson.build                |    1 +
 drivers/crypto/uadk/meson.build           |   28 +
 drivers/crypto/uadk/uadk_crypto_pmd.c     | 1137 +++++++++++++++++++++
 drivers/crypto/uadk/version.map           |    3 +
 14 files changed, 1830 insertions(+)
 create mode 100644 doc/guides/compressdevs/uadk.rst
 create mode 100644 doc/guides/cryptodevs/uadk.rst
 create mode 100644 drivers/compress/uadk/meson.build
 create mode 100644 drivers/compress/uadk/uadk_compress_pmd.c
 create mode 100644 drivers/compress/uadk/version.map
 create mode 100644 drivers/crypto/uadk/meson.build
 create mode 100644 drivers/crypto/uadk/uadk_crypto_pmd.c
 create mode 100644 drivers/crypto/uadk/version.map

Comments

Akhil Goyal Aug. 28, 2022, 1:02 p.m. UTC | #1
> UADK compression PMD provides poll mode compression & decompression
> driver
> UADK crypto PMD provides poll mode driver
> All cryptography operations are using UADK crypto API.
> All compression operations are using UADK compress API.
> 
> Hardware accelerators using UADK are supposed to be supported.
> Currently supported hardware platforms:
> HiSilicon Kunpeng920 and Kunpeng930
> 
> Test:
> sudo dpdk-test --vdev=compress_uadk
> sudo dpdk-test --vdev=crypto_uadk
> 
> v1:
> Target to DPDK 22.11
> Rebased on http://git.dpdk.org/next/dpdk-next-crypto/
> 
> Suggested from Akhil Goyal <gakhil@marvell.com>
> > Current release cycle is DPDK-22.07 for which this patchset is late.
> > As we had the V1 deadline last month.
> > This patchset can go for next release cycle which is 22.11.
> 
> Zhangfei Gao (3):
>   compress/uadk: add uadk compression PMD
>   test/crypto: add cryptodev_uadk_autotest
>   crypto/uadk: add uadk crypto PMD
> 
>  app/test/test_cryptodev.c                 |    7 +
>  app/test/test_cryptodev.h                 |    1 +
>  doc/guides/compressdevs/index.rst         |    1 +
>  doc/guides/compressdevs/uadk.rst          |   60 ++
>  doc/guides/cryptodevs/index.rst           |    1 +
>  doc/guides/cryptodevs/uadk.rst            |   70 ++
>  drivers/compress/meson.build              |    1 +
>  drivers/compress/uadk/meson.build         |   28 +
>  drivers/compress/uadk/uadk_compress_pmd.c |  489 +++++++++
>  drivers/compress/uadk/version.map         |    3 +
>  drivers/crypto/meson.build                |    1 +
>  drivers/crypto/uadk/meson.build           |   28 +
>  drivers/crypto/uadk/uadk_crypto_pmd.c     | 1137 +++++++++++++++++++++
>  drivers/crypto/uadk/version.map           |    3 +
>  14 files changed, 1830 insertions(+)
>  create mode 100644 doc/guides/compressdevs/uadk.rst
>  create mode 100644 doc/guides/cryptodevs/uadk.rst
>  create mode 100644 drivers/compress/uadk/meson.build
>  create mode 100644 drivers/compress/uadk/uadk_compress_pmd.c
>  create mode 100644 drivers/compress/uadk/version.map
>  create mode 100644 drivers/crypto/uadk/meson.build
>  create mode 100644 drivers/crypto/uadk/uadk_crypto_pmd.c
>  create mode 100644 drivers/crypto/uadk/version.map
> 
Please split the series into two - crypto pmd and compression pmd.
And split each of the PMD into logical small (individually compiled) patches.

Update MAINTAINERS file
Update documentation in doc/guides/cryptodevs/features/uadk.ini
and doc/guides/compressdevs/features/uadk.ini

Also UADK does not look to be a PMD name. It is some development kit
Outside of DPDK. Can you rename it to something else?

Is there some dependency to build it using external libraries etc? 
Can you explain what exactly is UADK?

Regards,
Akhil
Zhangfei Gao Aug. 29, 2022, 6:52 a.m. UTC | #2
Hi, Akhil

On 2022/8/28 下午9:02, Akhil Goyal wrote:
>> UADK compression PMD provides poll mode compression & decompression
>> driver
>> UADK crypto PMD provides poll mode driver
>> All cryptography operations are using UADK crypto API.
>> All compression operations are using UADK compress API.
>>
>> Hardware accelerators using UADK are supposed to be supported.
>> Currently supported hardware platforms:
>> HiSilicon Kunpeng920 and Kunpeng930
>>
>> Test:
>> sudo dpdk-test --vdev=compress_uadk
>> sudo dpdk-test --vdev=crypto_uadk
>>
>> v1:
>> Target to DPDK 22.11
>> Rebased on http://git.dpdk.org/next/dpdk-next-crypto/
>>
>> Suggested from Akhil Goyal <gakhil@marvell.com>
>>> Current release cycle is DPDK-22.07 for which this patchset is late.
>>> As we had the V1 deadline last month.
>>> This patchset can go for next release cycle which is 22.11.
>> Zhangfei Gao (3):
>>    compress/uadk: add uadk compression PMD
>>    test/crypto: add cryptodev_uadk_autotest
>>    crypto/uadk: add uadk crypto PMD
>>
>>   app/test/test_cryptodev.c                 |    7 +
>>   app/test/test_cryptodev.h                 |    1 +
>>   doc/guides/compressdevs/index.rst         |    1 +
>>   doc/guides/compressdevs/uadk.rst          |   60 ++
>>   doc/guides/cryptodevs/index.rst           |    1 +
>>   doc/guides/cryptodevs/uadk.rst            |   70 ++
>>   drivers/compress/meson.build              |    1 +
>>   drivers/compress/uadk/meson.build         |   28 +
>>   drivers/compress/uadk/uadk_compress_pmd.c |  489 +++++++++
>>   drivers/compress/uadk/version.map         |    3 +
>>   drivers/crypto/meson.build                |    1 +
>>   drivers/crypto/uadk/meson.build           |   28 +
>>   drivers/crypto/uadk/uadk_crypto_pmd.c     | 1137 +++++++++++++++++++++
>>   drivers/crypto/uadk/version.map           |    3 +
>>   14 files changed, 1830 insertions(+)
>>   create mode 100644 doc/guides/compressdevs/uadk.rst
>>   create mode 100644 doc/guides/cryptodevs/uadk.rst
>>   create mode 100644 drivers/compress/uadk/meson.build
>>   create mode 100644 drivers/compress/uadk/uadk_compress_pmd.c
>>   create mode 100644 drivers/compress/uadk/version.map
>>   create mode 100644 drivers/crypto/uadk/meson.build
>>   create mode 100644 drivers/crypto/uadk/uadk_crypto_pmd.c
>>   create mode 100644 drivers/crypto/uadk/version.map
>>
> Please split the series into two - crypto pmd and compression pmd.
> And split each of the PMD into logical small (individually compiled) patches.
>
> Update MAINTAINERS file
> Update documentation in doc/guides/cryptodevs/features/uadk.ini
> and doc/guides/compressdevs/features/uadk.ini
Thanks for the suggestion.

>
> Also UADK does not look to be a PMD name. It is some development kit
> Outside of DPDK. Can you rename it to something else?
>
> Is there some dependency to build it using external libraries etc?
> Can you explain what exactly is UADK?
UADK is a framework for user application to access hardware accelerator .
https://github.com/Linaro/uadk/blob/master/docs/wd_design.md

UADK relies on SVA (Shared Virtual Address) that needs to be supported 
by IOMMU.
As a result, user application can directly use virtual address for dma, 
since iommu and
mmu share the same virtual address by coping the same page table, which 
enhance the
performance as well as easy usability.

UADK provide algorithm libraries and api for application to use.
The library will find the real hardware in the platform.

We also provide openssl engine for uadk, 
https://github.com/Linaro/uadk_engine
For alignment, we planned to provide uadk dpdk pmd as well, with the 
name as UADK.

What do you think.


Thanks.
Akhil Goyal Aug. 29, 2022, 7:11 a.m. UTC | #3
> >
> > Also UADK does not look to be a PMD name. It is some development kit
> > Outside of DPDK. Can you rename it to something else?
> >
> > Is there some dependency to build it using external libraries etc?
> > Can you explain what exactly is UADK?
> UADK is a framework for user application to access hardware accelerator .
> https://urldefense.proofpoint.com/v2/url?u=https-
> 3A__github.com_Linaro_uadk_blob_master_docs_wd-
> 5Fdesign.md&d=DwIDaQ&c=nKjWec2b6R0mOyPaz7xtfQ&r=DnL7Si2wl_PRwpZ9
> TWey3eu68gBzn7DkPwuqhd6WNyo&m=5ceaLjLGdoHAuVeeh-
> 9uypoBDKCK43QrqhAOEbBu1vFFrSFxNpncZzByqSguUBUk&s=VSCYj_EhQ67Rxmz
> N-N8H38GXxRyzNnNsRsOtL5eUVIE&e=
> 
> UADK relies on SVA (Shared Virtual Address) that needs to be supported
> by IOMMU.
> As a result, user application can directly use virtual address for dma,
> since iommu and
> mmu share the same virtual address by coping the same page table, which
> enhance the
> performance as well as easy usability.
> 
> UADK provide algorithm libraries and api for application to use.
> The library will find the real hardware in the platform.
> 
> We also provide openssl engine for uadk,
> https://urldefense.proofpoint.com/v2/url?u=https-
> 3A__github.com_Linaro_uadk-
> 5Fengine&d=DwIDaQ&c=nKjWec2b6R0mOyPaz7xtfQ&r=DnL7Si2wl_PRwpZ9TW
> ey3eu68gBzn7DkPwuqhd6WNyo&m=5ceaLjLGdoHAuVeeh-
> 9uypoBDKCK43QrqhAOEbBu1vFFrSFxNpncZzByqSguUBUk&s=s4G4UzM5B3w8t7
> b0IMKgAbWS5DN7n6ez4WkZpIZ1QGs&e=
> For alignment, we planned to provide uadk dpdk pmd as well, with the
> name as UADK.

Thanks for the explanation. Please add the information in documentation as well.
Hardware PMDs are generally named after the hardware device and not on some other library.

Naming it with uadk would look like a software PMD.
Zhangfei Gao Aug. 29, 2022, 8:21 a.m. UTC | #4
On 2022/8/29 下午3:11, Akhil Goyal wrote:
>>> Also UADK does not look to be a PMD name. It is some development kit
>>> Outside of DPDK. Can you rename it to something else?
>>>
>>> Is there some dependency to build it using external libraries etc?
>>> Can you explain what exactly is UADK?
>> UADK is a framework for user application to access hardware accelerator .
>> https://urldefense.proofpoint.com/v2/url?u=https-
>> 3A__github.com_Linaro_uadk_blob_master_docs_wd-
>> 5Fdesign.md&d=DwIDaQ&c=nKjWec2b6R0mOyPaz7xtfQ&r=DnL7Si2wl_PRwpZ9
>> TWey3eu68gBzn7DkPwuqhd6WNyo&m=5ceaLjLGdoHAuVeeh-
>> 9uypoBDKCK43QrqhAOEbBu1vFFrSFxNpncZzByqSguUBUk&s=VSCYj_EhQ67Rxmz
>> N-N8H38GXxRyzNnNsRsOtL5eUVIE&e=
>>
>> UADK relies on SVA (Shared Virtual Address) that needs to be supported
>> by IOMMU.
>> As a result, user application can directly use virtual address for dma,
>> since iommu and
>> mmu share the same virtual address by coping the same page table, which
>> enhance the
>> performance as well as easy usability.
>>
>> UADK provide algorithm libraries and api for application to use.
>> The library will find the real hardware in the platform.
>>
>> We also provide openssl engine for uadk,
>> https://urldefense.proofpoint.com/v2/url?u=https-
>> 3A__github.com_Linaro_uadk-
>> 5Fengine&d=DwIDaQ&c=nKjWec2b6R0mOyPaz7xtfQ&r=DnL7Si2wl_PRwpZ9TW
>> ey3eu68gBzn7DkPwuqhd6WNyo&m=5ceaLjLGdoHAuVeeh-
>> 9uypoBDKCK43QrqhAOEbBu1vFFrSFxNpncZzByqSguUBUk&s=s4G4UzM5B3w8t7
>> b0IMKgAbWS5DN7n6ez4WkZpIZ1QGs&e=
>> For alignment, we planned to provide uadk dpdk pmd as well, with the
>> name as UADK.
> Thanks for the explanation. Please add the information in documentation as well.
> Hardware PMDs are generally named after the hardware device and not on some other library.
>
> Naming it with uadk would look like a software PMD.
Well, UADK is the brand HiSilicon want to advertise, just like Intel's QAT.
And now, we are doing our best to build the UADK ecosystem.
So if possible, we still want to keep the name, as part of the UADK 
ecosystem :)

Thanks