Skip to contentSkip to conversation

Add security perf application

PATCH Superseded Anoob Joseph 2 participants 12 messages Aug 11, 2022 – Nov 3, 2022 Arm/Amlogic Meson SoC support

lore
Share & tools
lore
#0 lore raw

cover Add security perf application

Add performance application to test security session create & destroy rates supported by the security enabled cryptodev PMD. The application would create specified number of sessions and captures the time taken for the same before proceeding to destroy of the same. When operating on multi-core, the number of sessions would be evenly distributed across all cores.

The application would test with all combinations of cipher & auth algorithms supported by the PMD.

The app is similar to 'test-flow-perf' tool which captures the rate at which flow rules can be created and destroyed.

Anoob Joseph (1):
app/test-security-perf: add security perf app

 MAINTAINERS                                 |   6 +
 app/meson.build                             |   1 +
 app/test-security-perf/meson.build          |  14 +
 app/test-security-perf/test_security_perf.c | 554 ++++++++++++++++++++
 doc/guides/tools/index.rst                  |   1 +
 doc/guides/tools/securityperf.rst           |  47 ++
 6 files changed, 623 insertions(+)
 create mode 100644 app/test-security-perf/meson.build
 create mode 100644 app/test-security-perf/test_security_perf.c
 create mode 100644 doc/guides/tools/securityperf.rst

--
2.25.1

#1 lore raw

PATCH 1/1 app/test-security-perf: add security perf app

Add app to test rte_security session create/destroy rates.

---
 MAINTAINERS                                 |   6 +
 app/meson.build                             |   1 +
 app/test-security-perf/meson.build          |  14 +
 app/test-security-perf/test_security_perf.c | 554 ++++++++++++++++++++
 doc/guides/tools/index.rst                  |   1 +
 doc/guides/tools/securityperf.rst           |  47 ++
 6 files changed, 623 insertions(+)
 create mode 100644 app/test-security-perf/meson.build
 create mode 100644 app/test-security-perf/test_security_perf.c
 create mode 100644 doc/guides/tools/securityperf.rst
MAINTAINERS +6 -0
index 32ffdd1a61..6f3a6363bd 100644
@@ -1739,6 +1739,12 @@ M: Reshma Pattan <[email protected]>
 F: app/proc-info/
 F: doc/guides/tools/proc_info.rst
 
+Security performance tool
+M: Anoob Joseph <[email protected]>
+T: git://dpdk.org/next/dpdk-next-crypto
+F: app/test-security-perf/
+F: doc/guides/tools/securityperf.rst
+
 
 Other Example Applications
 --------------------------
app/meson.build +1 -0
index 93d8c15032..ef54b90d36 100644
@@ -18,6 +18,7 @@ apps = [
         'test-pmd',
         'test-regex',
         'test-sad',
+        'test-security-perf',
 ]
 
 default_cflags = machine_args + ['-DALLOW_EXPERIMENTAL_API']
app/test-security-perf/meson.build new file +14 -0
new file mode 100644
index 0000000000..076999022e
@@ -0,0 +1,14 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(C) 2022 Marvell.
+
+if is_windows
+    build = false
+    reason = 'not supported on Windows'
+    subdir_done()
+endif
+
+sources = files(
+        'test_security_perf.c',
+        '../test/test_cryptodev_security_ipsec.c',
+)
+deps += ['security', 'cmdline']
app/test-security-perf/test_security_perf.c new file +554 -0

554 lines not on this page · raw message

doc/guides/tools/index.rst +1 -0
index 0e5041a3f0..cee07a71b0 100644
@@ -18,5 +18,6 @@ DPDK Tools User Guides
     testbbdev
     cryptoperf
     comp_perf
+    securityperf
     testeventdev
     testregex
doc/guides/tools/securityperf.rst new file +47 -0

47 lines not on this page · raw message

--
2.25.1

#2 lore raw
In reply to Anoob Joseph

Hi Anoob,

Quoted 9 lines

Subject: [PATCH 0/1] Add security perf application

Add performance application to test security session create & destroy rates supported by the security enabled cryptodev PMD. The application would create specified number of sessions and captures the time taken for the same before proceeding to destroy of the same. When operating on multi-core, the number of sessions would be evenly distributed across all cores.

Quoted 6 lines

The application would test with all combinations of cipher & auth algorithms supported by the PMD.

The app is similar to 'test-flow-perf' tool which captures the rate at which flow rules can be created and destroyed.

Is it not good to add this into dpdk-test-crypto-perf? Can we add as a separate .c file, say, cperf_test_sec_session.c in test-crypto-perf folder and use the existing framework. This way we can leverage it for crypto sessions also.

Quoted 16 lines

Anoob Joseph (1):
app/test-security-perf: add security perf app

 MAINTAINERS                                 |   6 +
 app/meson.build                             |   1 +
 app/test-security-perf/meson.build          |  14 +
 app/test-security-perf/test_security_perf.c | 554 ++++++++++++++++++++
 doc/guides/tools/index.rst                  |   1 +
 doc/guides/tools/securityperf.rst           |  47 ++
 6 files changed, 623 insertions(+)
 create mode 100644 app/test-security-perf/meson.build
 create mode 100644 app/test-security-perf/test_security_perf.c
 create mode 100644 doc/guides/tools/securityperf.rst

--
2.25.1

#3 lore raw

Hi Akhil,

Please see inline.

Thanks,
Anoob

Quoted 11 lines

Hi Anoob,

Quoted 9 lines

Subject: [PATCH 0/1] Add security perf application

Add performance application to test security session create & destroy rates supported by the security enabled cryptodev PMD. The application would create specified number of sessions and captures the time taken for the same before proceeding to destroy of the same. When operating on multi-core, the number of sessions would be evenly distributed across all cores.

Quoted 7 lines
Quoted 6 lines

The application would test with all combinations of cipher & auth algorithms supported by the PMD.

The app is similar to 'test-flow-perf' tool which captures the rate at which flow rules can be created and destroyed.

Is it not good to add this into dpdk-test-crypto-perf?

[Anoob] IMO, It is not good. Following are the reasons,

Dpdk-test-crypto-perf is primarily for capturing crypto operation throughputs. And so the framework allocates minimal number of sessions and the datapath function pointer etc deals with only one session. The entire framework available in that application is for populating crypto_op and mbuf, which is not required for this app. Touching that framework would mean throughput tests would get affected, which I don't think is the right thing to do. And for PMDs like Intel's (which don't have security support), it would be an unnecessary performance drop.

The proposed app currently runs for all supported ciphers while in dpdk-test-crypto-perf, it runs only for a specific algorithm combination. If we want to limit the functionality of the proposed app to match dpdk-test-crypto-perf usage, that also calls for a major rework.

And the only thing that can be reused is probably cryptodev init & queue pair configuration. As you are well aware, security device can be cryptodev or an ethdev. Dpdk-test-crypto-perf doesn't have support for initializing ethdev and rightfully so. Adding this to an already complicated framework will be counter productive in the long run.

Quoted 2 lines

Can we add as a separate .c file, say, cperf_test_sec_session.c in test-crypto- perf folder and use the existing framework.

[Anoob] As I mentioned earlier, nothing from the framework can be leveraged for this application. If you insist on not having a new app, then all this can be integrated into dpdk-test-crypto-perf, but that will follow it's own path from very early stage (mempool allocations etc need to happen differently). And it would mean adding more command line options (which is currently at 37) as we add more options for measuring security perf.

Quoted 20 lines

This way we can leverage it for crypto sessions also.

Quoted 7 lines

Anoob Joseph (1):
app/test-security-perf: add security perf app

 MAINTAINERS                                 |   6 +
 app/meson.build                             |   1 +
 app/test-security-perf/meson.build          |  14 +
 app/test-security-perf/test_security_perf.c | 554

++++++++++++++++++++

Quoted 9 lines
 doc/guides/tools/index.rst                  |   1 +
 doc/guides/tools/securityperf.rst           |  47 ++
 6 files changed, 623 insertions(+)
 create mode 100644 app/test-security-perf/meson.build
 create mode 100644 app/test-security-perf/test_security_perf.c
 create mode 100644 doc/guides/tools/securityperf.rst

--
2.25.1

#4 lore raw

Hi Akhil,

Do you have any further comments?

Thanks,
Anoob

Quoted 92 lines

-----Original Message-----
From: Anoob Joseph <[email protected]>
Sent: Friday, August 19, 2022 12:50 PM
To: Akhil Goyal <[email protected]>
Cc: Aakash Sasidharan <[email protected]>; [email protected]; [email protected]; Jerin Jacob Kollanukkaran <[email protected]>; Thomas Monjalon <[email protected]>; Hemant Agrawal <[email protected]>; Sachin Saxena <[email protected]>; Ciara Power <[email protected]>
Subject: [EXT] RE: [PATCH 0/1] Add security perf application

External Email

----------------------------------------------------------------------
Hi Akhil,

Please see inline.

Thanks,
Anoob

Quoted 11 lines

Hi Anoob,

Quoted 9 lines

Subject: [PATCH 0/1] Add security perf application

Add performance application to test security session create & destroy rates supported by the security enabled cryptodev PMD. The application would create specified number of sessions and captures the time taken for the same before proceeding to destroy of the same. When operating on multi-core, the number of sessions would be evenly distributed across all cores.

Quoted 7 lines
Quoted 6 lines

The application would test with all combinations of cipher & auth algorithms supported by the PMD.

The app is similar to 'test-flow-perf' tool which captures the rate at which flow rules can be created and destroyed.

Is it not good to add this into dpdk-test-crypto-perf?

[Anoob] IMO, It is not good. Following are the reasons,

Dpdk-test-crypto-perf is primarily for capturing crypto operation throughputs. And so the framework allocates minimal number of sessions and the datapath function pointer etc deals with only one session. The entire framework available in that application is for populating crypto_op and mbuf, which is not required for this app. Touching that framework would mean throughput tests would get affected, which I don't think is the right thing to do. And for PMDs like Intel's (which don't have security support), it would be an unnecessary performance drop.

The proposed app currently runs for all supported ciphers while in dpdk-test- crypto-perf, it runs only for a specific algorithm combination. If we want to limit the functionality of the proposed app to match dpdk-test-crypto-perf usage, that also calls for a major rework.

And the only thing that can be reused is probably cryptodev init & queue pair configuration. As you are well aware, security device can be cryptodev or an ethdev. Dpdk-test-crypto-perf doesn't have support for initializing ethdev and rightfully so. Adding this to an already complicated framework will be counter productive in the long run.

Quoted 2 lines

Can we add as a separate .c file, say, cperf_test_sec_session.c in test-crypto- perf folder and use the existing framework.

[Anoob] As I mentioned earlier, nothing from the framework can be leveraged for this application. If you insist on not having a new app, then all this can be integrated into dpdk-test-crypto-perf, but that will follow it's own path from very early stage (mempool allocations etc need to happen differently). And it would mean adding more command line options (which is currently at 37) as we add more options for measuring security perf.

Quoted 20 lines

This way we can leverage it for crypto sessions also.

Quoted 7 lines

Anoob Joseph (1):
app/test-security-perf: add security perf app

 MAINTAINERS                                 |   6 +
 app/meson.build                             |   1 +
 app/test-security-perf/meson.build          |  14 +
 app/test-security-perf/test_security_perf.c | 554

++++++++++++++++++++

Quoted 9 lines
 doc/guides/tools/index.rst                  |   1 +
 doc/guides/tools/securityperf.rst           |  47 ++
 6 files changed, 623 insertions(+)
 create mode 100644 app/test-security-perf/meson.build
 create mode 100644 app/test-security-perf/test_security_perf.c
 create mode 100644 doc/guides/tools/securityperf.rst

--
2.25.1

#5 lore raw

Hi Anoob,

Quoted 47 lines

Hi Akhil,

Do you have any further comments?

Quoted 15 lines
Quoted 15 lines
Quoted 15 lines

Subject: [PATCH 0/1] Add security perf application

Add performance application to test security session create & destroy rates supported by the security enabled cryptodev PMD. The application would create specified number of sessions and captures the time taken for the same before proceeding to destroy of the same. When operating on multi-core, the number of sessions would be evenly distributed across all cores.

The application would test with all combinations of cipher & auth algorithms supported by the PMD.

The app is similar to 'test-flow-perf' tool which captures the rate at which flow rules can be created and destroyed.

Quoted 7 lines
Quoted 1 line

Is it not good to add this into dpdk-test-crypto-perf?

[Anoob] IMO, It is not good. Following are the reasons,

Dpdk-test-crypto-perf is primarily for capturing crypto operation throughputs. And so the framework allocates minimal number of sessions and the datapath function pointer etc deals with only one session. The entire framework

available

Quoted 8 lines

in that application is for populating crypto_op and mbuf, which is not required for this app. Touching that framework would mean throughput tests would get affected, which I don't think is the right thing to do. And for PMDs like Intel's (which don't have security support), it would be an unnecessary performance drop.

The proposed app currently runs for all supported ciphers while in dpdk-test- crypto-perf, it runs only for a specific algorithm combination. If we want to

limit

Quoted 12 lines

the functionality of the proposed app to match dpdk-test-crypto-perf usage, that also calls for a major rework.

And the only thing that can be reused is probably cryptodev init & queue pair configuration. As you are well aware, security device can be cryptodev or an ethdev. Dpdk-test-crypto-perf doesn't have support for initializing ethdev and rightfully so. Adding this to an already complicated framework will be counter productive in the long run.

Quoted 2 lines

Can we add as a separate .c file, say, cperf_test_sec_session.c in test-crypto- perf folder and use the existing framework.

Quoted 8 lines
Quoted 5 lines

[Anoob] As I mentioned earlier, nothing from the framework can be leveraged for this application. If you insist on not having a new app, then all this can be integrated into dpdk-test-crypto-perf, but that will follow it's own path from very early stage (mempool allocations etc need to happen differently). And it would mean adding more command line options (which is currently at 37) as

we

Quoted 2 lines

add more options for measuring security perf.

Are you planning to add more options is that app?
if not, then adding just one more option about nb_sess would do trick in test-crypto-perf. You would just need to add 2 new functions (test_security_session_perf and sec_conf_init) in a new .c file in app/test-crypto-perf/ and the mempool_init is being called from cperf_initialize_cryptodev() which we can hook to get the nb_sessions from the command line arguments. I do not suspect any changes in datapath - so it won't be an issue.
The point is not about the things being common in the two apps. The point is whether we can accommodate in existing app or not. We cannot have too many different apps.
We only introduce apps which are not possible to accommodate in existing ones.
I remember, there was discussion in past about having a new app for testing multi-process for crypto. But that was dropped as we do not want too many apps.
I agree that common part would be init only but it can scale for non-security sessions easily.

Regards,
Akhil

#6 lore raw

Hi Akhil,

+Techboard for guidance

Quoted 2 lines

I agree that common part would be init only but it can scale for non-security sessions easily.

Currently, dpdk-test-crypto-perf has a data path framework which prepares crypto_operations based on session. The proposed application is about measuring performance when creating and destroying sessions. So it would take rte_security_conf as the argument and current data path framework would be completely bypassed. Current dpdk-test-crypto-perf creates mbuf_pool etc and creates one session per core. This app would need larger pool for sessions and no pool for crypto_op or mbuf. Moreover, dpdk-test-crypto-perf works on cryptodev while security-perf can work on rte_ethdevs as well. I still do not see any community feedback on whether plugging rte_ethdev init etc in dpdk-test-crypto-perf is the right thing to do.

So other than basic eal_init(), I do not see anything common and even in the long run, this gulf is bound to grow. If the app has to be integrated into dpdk-test-crypto-perf, then it will be separate .c & .h files and completely branch out after very early init phase. The testing methodology and philosophy would also be different (for security-perf, we are running all algos supported as there is no need for command line parsing of all algos. CL parsing would be added for protocol features like custom AR window size). DPDK community had earlier encountered same issue with "test-flow-perf" which could have been integrated into "test-pmd" in a similar manner. But DPDK community decided to allow "test-flow-perf" and so the same logic can be applied here as well.

Thanks,
Anoob

Quoted 94 lines

-----Original Message-----
From: Akhil Goyal <[email protected]>
Sent: Wednesday, September 28, 2022 12:47 AM
To: Anoob Joseph <[email protected]>
Cc: Aakash Sasidharan <[email protected]>; [email protected]; [email protected]; Jerin Jacob Kollanukkaran <[email protected]>; Thomas Monjalon <[email protected]>; Hemant Agrawal <[email protected]>; Sachin Saxena <[email protected]>; Ciara Power <[email protected]>
Subject: RE: [PATCH 0/1] Add security perf application

Hi Anoob,

Quoted 23 lines

Hi Akhil,

Do you have any further comments?

Quoted 20 lines
Quoted 9 lines
Quoted 9 lines

Subject: [PATCH 0/1] Add security perf application

Add performance application to test security session create & destroy rates supported by the security enabled cryptodev PMD. The application would create specified number of sessions and captures the time taken for the same before proceeding to destroy of the same. When operating on multi-core, the number of sessions would be evenly distributed across all cores.

Quoted 7 lines
Quoted 6 lines

The application would test with all combinations of cipher & auth algorithms supported by the PMD.

The app is similar to 'test-flow-perf' tool which captures the rate at which flow rules can be created and destroyed.

Is it not good to add this into dpdk-test-crypto-perf?

[Anoob] IMO, It is not good. Following are the reasons,

Dpdk-test-crypto-perf is primarily for capturing crypto operation

throughputs.

Quoted 10 lines
Quoted 3 lines

And so the framework allocates minimal number of sessions and the datapath function pointer etc deals with only one session. The entire framework

available

Quoted 6 lines

in that application is for populating crypto_op and mbuf, which is not required for this app. Touching that framework would mean throughput tests would get affected, which I don't think is the right thing to do. And for PMDs like Intel's (which don't have security support), it would be an unnecessary performance drop.

Quoted 12 lines
Quoted 3 lines

The proposed app currently runs for all supported ciphers while in dpdk-test- crypto-perf, it runs only for a specific algorithm combination. If we want to

limit

Quoted 8 lines

the functionality of the proposed app to match dpdk-test-crypto-perf usage, that also calls for a major rework.

And the only thing that can be reused is probably cryptodev init & queue pair configuration. As you are well aware, security device can be cryptodev or an ethdev. Dpdk-test-crypto-perf doesn't have support for initializing ethdev and rightfully so. Adding this to an already complicated framework will be counter productive in the long

run.

Quoted 4 lines
Quoted 4 lines
Quoted 3 lines

Can we add as a separate .c file, say, cperf_test_sec_session.c in test-crypto- perf folder and use the existing framework.

Quoted 9 lines
Quoted 6 lines

[Anoob] As I mentioned earlier, nothing from the framework can be leveraged for this application. If you insist on not having a new app, then all this can be integrated into dpdk-test-crypto-perf, but that will follow it's own path from very early stage (mempool allocations etc need to happen differently). And it would mean adding more command line options (which is currently at 37) as

we

Quoted 2 lines

add more options for measuring security perf.

Are you planning to add more options is that app?
if not, then adding just one more option about nb_sess would do trick in test-crypto-perf.
You would just need to add 2 new functions (test_security_session_perf and sec_conf_init) in a new .c file in app/test-crypto-perf/ and the mempool_init is being called from
cperf_initialize_cryptodev() which we can hook to get the nb_sessions from the command line arguments.
I do not suspect any changes in datapath - so it won't be an issue. The point is not about the things being common in the two apps. The point is whether we can accommodate in existing app or not. We cannot have too many different apps.
We only introduce apps which are not possible to accommodate in existing ones.
I remember, there was discussion in past about having a new app for testing multi-process for crypto.
But that was dropped as we do not want too many apps.
I agree that common part would be init only but it can scale for non-security sessions easily.

Regards,
Akhil

#7 lore raw
Quoted 4 lines

Hi Akhil,

+Techboard for guidance

The proposal is accepted in techboard.

Please fix compilation issues reported in CI.

Quoted 122 lines
Quoted 2 lines

I agree that common part would be init only but it can scale for non-security sessions easily.

Currently, dpdk-test-crypto-perf has a data path framework which prepares crypto_operations based on session. The proposed application is about measuring performance when creating and destroying sessions. So it would take rte_security_conf as the argument and current data path framework would be completely bypassed. Current dpdk-test-crypto-perf creates mbuf_pool etc and creates one session per core. This app would need larger pool for sessions and no pool for crypto_op or mbuf. Moreover, dpdk-test-crypto-perf works on cryptodev while security-perf can work on rte_ethdevs as well. I still do not see any community feedback on whether plugging rte_ethdev init etc in dpdk-test- crypto-perf is the right thing to do.

So other than basic eal_init(), I do not see anything common and even in the long run, this gulf is bound to grow. If the app has to be integrated into dpdk- test-crypto-perf, then it will be separate .c & .h files and completely branch out after very early init phase. The testing methodology and philosophy would also be different (for security-perf, we are running all algos supported as there is no need for command line parsing of all algos. CL parsing would be added for protocol features like custom AR window size). DPDK community had earlier encountered same issue with "test-flow-perf" which could have been integrated into "test-pmd" in a similar manner. But DPDK community decided to allow "test-flow-perf" and so the same logic can be applied here as well.

Thanks,
Anoob

Quoted 94 lines

-----Original Message-----
From: Akhil Goyal <[email protected]>
Sent: Wednesday, September 28, 2022 12:47 AM
To: Anoob Joseph <[email protected]>
Cc: Aakash Sasidharan <[email protected]>; [email protected]; [email protected]; Jerin Jacob Kollanukkaran <[email protected]>; Thomas Monjalon <[email protected]>; Hemant Agrawal <[email protected]>; Sachin Saxena <[email protected]>; Ciara Power <[email protected]>
Subject: RE: [PATCH 0/1] Add security perf application

Hi Anoob,

Quoted 23 lines

Hi Akhil,

Do you have any further comments?

Quoted 20 lines
Quoted 9 lines
Quoted 9 lines

Subject: [PATCH 0/1] Add security perf application

Add performance application to test security session create & destroy rates supported by the security enabled cryptodev PMD. The application would create specified number of sessions and captures the time taken for the same before proceeding to destroy of the same. When operating on multi-core, the number of sessions would be evenly distributed across all cores.

Quoted 7 lines
Quoted 6 lines

The application would test with all combinations of cipher & auth algorithms supported by the PMD.

The app is similar to 'test-flow-perf' tool which captures the rate at which flow rules can be created and destroyed.

Is it not good to add this into dpdk-test-crypto-perf?

[Anoob] IMO, It is not good. Following are the reasons,

Dpdk-test-crypto-perf is primarily for capturing crypto operation

throughputs.

Quoted 10 lines
Quoted 3 lines

And so the framework allocates minimal number of sessions and the datapath function pointer etc deals with only one session. The entire framework

available

Quoted 6 lines

in that application is for populating crypto_op and mbuf, which is not required for this app. Touching that framework would mean throughput tests would get affected, which I don't think is the right thing to do. And for PMDs like Intel's (which don't have security support), it would be an unnecessary performance drop.

Quoted 12 lines
Quoted 3 lines

The proposed app currently runs for all supported ciphers while in dpdk-test- crypto-perf, it runs only for a specific algorithm combination. If we want to

limit

Quoted 8 lines

the functionality of the proposed app to match dpdk-test-crypto-perf usage, that also calls for a major rework.

And the only thing that can be reused is probably cryptodev init & queue pair configuration. As you are well aware, security device can be cryptodev or an ethdev. Dpdk-test-crypto-perf doesn't have support for initializing ethdev and rightfully so. Adding this to an already complicated framework will be counter productive in the long

run.

Quoted 4 lines
Quoted 4 lines
Quoted 3 lines

Can we add as a separate .c file, say, cperf_test_sec_session.c in test-crypto- perf folder and use the existing framework.

Quoted 9 lines
Quoted 6 lines

[Anoob] As I mentioned earlier, nothing from the framework can be leveraged for this application. If you insist on not having a new app, then all this can be integrated into dpdk-test-crypto-perf, but that will follow it's own path from very early stage (mempool allocations etc need to happen differently). And it would mean adding more command line options (which is currently at 37) as

we

Quoted 2 lines

add more options for measuring security perf.

Are you planning to add more options is that app?
if not, then adding just one more option about nb_sess would do trick in test-crypto-perf.
You would just need to add 2 new functions (test_security_session_perf and sec_conf_init) in a new .c file in app/test-crypto-perf/ and the mempool_init is being called from
cperf_initialize_cryptodev() which we can hook to get the nb_sessions from the command line arguments.
I do not suspect any changes in datapath - so it won't be an issue. The point is not about the things being common in the two apps. The point is whether we can accommodate in existing app or not. We cannot have too many different apps.
We only introduce apps which are not possible to accommodate in existing ones.
I remember, there was discussion in past about having a new app for testing multi-process for crypto.
But that was dropped as we do not want too many apps.
I agree that common part would be init only but it can scale for non-security sessions easily.

Regards,
Akhil

#8 lore raw

PATCH v2 1/1 app/test-security-perf: add security perf app

In reply to Anoob Joseph

Add performance application to test security session create & destroy rates supported by the security enabled cryptodev PMD. The application would create specified number of sessions and captures the time taken for the same before proceeding to destroy of the same. When operating on multi-core, the number of sessions would be evenly distributed across all cores.

The application would test with all combinations of cipher & auth algorithms supported by the PMD.

---
v2:
* Rebased on latest code. Made changes to accommodate session rework
* Fixed debug build failure

 MAINTAINERS                                 |   6 +
 app/meson.build                             |   1 +
 app/test-security-perf/meson.build          |  14 +
 app/test-security-perf/test_security_perf.c | 575 ++++++++++++++++++++
 doc/guides/rel_notes/release_22_11.rst      |   6 +
 doc/guides/tools/index.rst                  |   1 +
 doc/guides/tools/securityperf.rst           |  47 ++
 7 files changed, 650 insertions(+)
 create mode 100644 app/test-security-perf/meson.build
 create mode 100644 app/test-security-perf/test_security_perf.c
 create mode 100644 doc/guides/tools/securityperf.rst
MAINTAINERS +6 -0
index 6f56111323..14dcdd2d7f 100644
@@ -1735,6 +1735,12 @@ M: Reshma Pattan <[email protected]>
 F: app/proc-info/
 F: doc/guides/tools/proc_info.rst
 
+Security performance tool
+M: Anoob Joseph <[email protected]>
+T: git://dpdk.org/next/dpdk-next-crypto
+F: app/test-security-perf/
+F: doc/guides/tools/securityperf.rst
+
 
 Other Example Applications
 --------------------------
app/meson.build +1 -0
index 93d8c15032..ef54b90d36 100644
@@ -18,6 +18,7 @@ apps = [
         'test-pmd',
         'test-regex',
         'test-sad',
+        'test-security-perf',
 ]
 
 default_cflags = machine_args + ['-DALLOW_EXPERIMENTAL_API']
app/test-security-perf/meson.build new file +14 -0
new file mode 100644
index 0000000000..076999022e
@@ -0,0 +1,14 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(C) 2022 Marvell.
+
+if is_windows
+    build = false
+    reason = 'not supported on Windows'
+    subdir_done()
+endif
+
+sources = files(
+        'test_security_perf.c',
+        '../test/test_cryptodev_security_ipsec.c',
+)
+deps += ['security', 'cmdline']
app/test-security-perf/test_security_perf.c new file +575 -0

575 lines not on this page · raw message

doc/guides/rel_notes/release_22_11.rst +6 -0
index 281ba2fc7f..326890a615 100644
@@ -254,6 +254,12 @@ New Features
   Added support for asymmetric crypto algorithms.
   See the :doc:`../sample_app_ug/fips_validation` for more details.
 
+* **Added security performance test application.**
+
+  Added new application to test ``rte_security`` session create/destroy
+  performance.
+  See the :doc:`../tools/securityperf` for more details.
+
 
 Removed Items
 -------------
doc/guides/tools/index.rst +1 -0
index 0e5041a3f0..cee07a71b0 100644
@@ -18,5 +18,6 @@ DPDK Tools User Guides
     testbbdev
     cryptoperf
     comp_perf
+    securityperf
     testeventdev
     testregex
doc/guides/tools/securityperf.rst new file +47 -0

47 lines not on this page · raw message

--
2.25.1

#9 lore raw

PATCH v3 1/1 app/test-security-perf: add security perf app

Add performance application to test security session create & destroy rates supported by the security enabled cryptodev PMD. The application would create specified number of sessions and captures the time taken for the same before proceeding to destroy of the same. When operating on multi-core, the number of sessions would be evenly distributed across all cores.

The application would test with all combinations of cipher & auth algorithms supported by the PMD.

---
v3:
* Rebased

v2:
* Rebased on latest code. Made changes to accommodate session rework
* Fixed debug build failure

 MAINTAINERS                                 |   6 +
 app/meson.build                             |   1 +
 app/test-security-perf/meson.build          |  14 +
 app/test-security-perf/test_security_perf.c | 575 ++++++++++++++++++++
 doc/guides/rel_notes/release_22_11.rst      |   6 +
 doc/guides/tools/index.rst                  |   1 +
 doc/guides/tools/securityperf.rst           |  47 ++
 7 files changed, 650 insertions(+)
 create mode 100644 app/test-security-perf/meson.build
 create mode 100644 app/test-security-perf/test_security_perf.c
 create mode 100644 doc/guides/tools/securityperf.rst
MAINTAINERS +6 -0
index 0d7df177c9..1e0e60847a 100644
@@ -1743,6 +1743,12 @@ M: Reshma Pattan <[email protected]>
 F: app/proc-info/
 F: doc/guides/tools/proc_info.rst
 
+Security performance tool
+M: Anoob Joseph <[email protected]>
+T: git://dpdk.org/next/dpdk-next-crypto
+F: app/test-security-perf/
+F: doc/guides/tools/securityperf.rst
+
 
 Other Example Applications
 --------------------------
app/meson.build +1 -0
index 96b9a78d3a..b44a3123ee 100644
@@ -21,6 +21,7 @@ apps = [
         'test-pmd',
         'test-regex',
         'test-sad',
+        'test-security-perf',
 ]
 
 default_cflags = machine_args + ['-DALLOW_EXPERIMENTAL_API']
app/test-security-perf/meson.build new file +14 -0
new file mode 100644
index 0000000000..076999022e
@@ -0,0 +1,14 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(C) 2022 Marvell.
+
+if is_windows
+    build = false
+    reason = 'not supported on Windows'
+    subdir_done()
+endif
+
+sources = files(
+        'test_security_perf.c',
+        '../test/test_cryptodev_security_ipsec.c',
+)
+deps += ['security', 'cmdline']
app/test-security-perf/test_security_perf.c new file +575 -0

575 lines not on this page · raw message

doc/guides/rel_notes/release_22_11.rst +6 -0
index c59b907465..9f2a8fa9d8 100644
@@ -306,6 +306,12 @@ New Features
 
      strings $dpdk_binary_or_driver | sed -n 's/^PMD_INFO_STRING= //p'
 
+* **Added security performance test application.**
+
+  Added new application to test ``rte_security`` session create/destroy
+  performance.
+  See the :doc:`../tools/securityperf` for more details.
+
 
 Removed Items
 -------------
doc/guides/tools/index.rst +1 -0
index 0e5041a3f0..cee07a71b0 100644
@@ -18,5 +18,6 @@ DPDK Tools User Guides
     testbbdev
     cryptoperf
     comp_perf
+    securityperf
     testeventdev
     testregex
doc/guides/tools/securityperf.rst new file +47 -0

47 lines not on this page · raw message

Signature · 1 line
2.25.1
#10 lore raw

PATCH v4 1/1 app/test-security-perf: add security perf app

Add performance application to test security session create & destroy rates supported by the security enabled cryptodev PMD. The application would create specified number of sessions and captures the time taken for the same before proceeding to destroy of the same. When operating on multi-core, the number of sessions would be evenly distributed across all cores.

The application would test with all combinations of cipher & auth algorithms supported by the PMD.

---
v4:
* Fixed documentation

v3:
* Rebased

v2:
* Rebased on latest code. Made changes to accommodate session rework
* Fixed debug build failure

 MAINTAINERS                                 |   6 +
 app/meson.build                             |   1 +
 app/test-security-perf/meson.build          |  14 +
 app/test-security-perf/test_security_perf.c | 575 ++++++++++++++++++++
 doc/guides/rel_notes/release_22_11.rst      |   6 +
 doc/guides/tools/index.rst                  |   1 +
 doc/guides/tools/securityperf.rst           |  47 ++
 7 files changed, 650 insertions(+)
 create mode 100644 app/test-security-perf/meson.build
 create mode 100644 app/test-security-perf/test_security_perf.c
 create mode 100644 doc/guides/tools/securityperf.rst
MAINTAINERS +6 -0
index 0d7df177c9..1e0e60847a 100644
@@ -1743,6 +1743,12 @@ M: Reshma Pattan <[email protected]>
 F: app/proc-info/
 F: doc/guides/tools/proc_info.rst
 
+Security performance tool
+M: Anoob Joseph <[email protected]>
+T: git://dpdk.org/next/dpdk-next-crypto
+F: app/test-security-perf/
+F: doc/guides/tools/securityperf.rst
+
 
 Other Example Applications
 --------------------------
app/meson.build +1 -0
index 96b9a78d3a..b44a3123ee 100644
@@ -21,6 +21,7 @@ apps = [
         'test-pmd',
         'test-regex',
         'test-sad',
+        'test-security-perf',
 ]
 
 default_cflags = machine_args + ['-DALLOW_EXPERIMENTAL_API']
app/test-security-perf/meson.build new file +14 -0
new file mode 100644
index 0000000000..076999022e
@@ -0,0 +1,14 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(C) 2022 Marvell.
+
+if is_windows
+    build = false
+    reason = 'not supported on Windows'
+    subdir_done()
+endif
+
+sources = files(
+        'test_security_perf.c',
+        '../test/test_cryptodev_security_ipsec.c',
+)
+deps += ['security', 'cmdline']
app/test-security-perf/test_security_perf.c new file +575 -0

575 lines not on this page · raw message

doc/guides/rel_notes/release_22_11.rst +6 -0
index c59b907465..9f2a8fa9d8 100644
@@ -306,6 +306,12 @@ New Features
 
      strings $dpdk_binary_or_driver | sed -n 's/^PMD_INFO_STRING= //p'
 
+* **Added security performance test application.**
+
+  Added new application to test ``rte_security`` session create/destroy
+  performance.
+  See the :doc:`../tools/securityperf` for more details.
+
 
 Removed Items
 -------------
doc/guides/tools/index.rst +1 -0
index 0e5041a3f0..cee07a71b0 100644
@@ -18,5 +18,6 @@ DPDK Tools User Guides
     testbbdev
     cryptoperf
     comp_perf
+    securityperf
     testeventdev
     testregex
doc/guides/tools/securityperf.rst new file +47 -0

47 lines not on this page · raw message

Signature · 1 line
2.25.1
Applied
#11 lore raw

RE: [PATCH v4] app/test-security-perf: add security perf app

Quoted 9 lines

Subject: [PATCH v4] app/test-security-perf: add security perf app

Add performance application to test security session create & destroy rates supported by the security enabled cryptodev PMD. The application would create specified number of sessions and captures the time taken for the same before proceeding to destroy of the same. When operating on multi-core, the number of sessions would be evenly distributed across all cores.

Quoted 8 lines

The application would test with all combinations of cipher & auth algorithms supported by the PMD.

---
v4:
* Fixed documentation

Applied to dpdk-next-crypto

Thanks.