#
e2af4e40 |
| 19-Sep-2023 |
David Coyle <david.coyle@intel.com> |
crypto/scheduler: support DOCSIS security protocol
Add support to the cryptodev scheduler PMD for the DOCSIS security protocol. This includes adding the following to the scheduler: - synchronization
crypto/scheduler: support DOCSIS security protocol
Add support to the cryptodev scheduler PMD for the DOCSIS security protocol. This includes adding the following to the scheduler: - synchronization of worker's security capabilities - retrieval of the scheduler's synchronized security capabilities - retrieval of the security session size i.e. maximum session size across all workers - creation of security sessions on each worker - deletion of security sessions on each worker
Signed-off-by: David Coyle <david.coyle@intel.com> Signed-off-by: Kevin O'Sullivan <kevin.osullivan@intel.com> Acked-by: Ciara Power <ciara.power@intel.com> Acked-by: Anoob Joseph <anoobj@marvell.com>
show more ...
|
#
6812b9bf |
| 04-Oct-2022 |
Fan Zhang <roy.fan.zhang@intel.com> |
crypto/scheduler: use unified session
This patch updates the scheduler PMD to use unified session data structure. Previously thanks to the private session array in cryptodev sym session there are no
crypto/scheduler: use unified session
This patch updates the scheduler PMD to use unified session data structure. Previously thanks to the private session array in cryptodev sym session there are no necessary change needed for scheduler PMD other than the way ops are enqueued/dequeued. The patch inherits the same design in the original session data structure to the scheduler PMD so the cryptodev sym session can be as a linear buffer for both session header and driver private data.
With the change there are inevitable extra cost on both memory (64 bytes per session per driver type) and cycle count (set the correct session for each cop based on the worker before enqueue, and retrieve the original session after dequeue).
Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com> Signed-off-by: Akhil Goyal <gakhil@marvell.com> Acked-by: Kai Ji <kai.ji@intel.com> Tested-by: Gagandeep Singh <g.singh@nxp.com> Tested-by: David Coyle <david.coyle@intel.com> Tested-by: Kevin O'Sullivan <kevin.osullivan@intel.com>
show more ...
|
#
92cb1309 |
| 20-Oct-2021 |
Akhil Goyal <gakhil@marvell.com> |
cryptodev: move device-specific structures
The device specific structures - rte_cryptodev and rte_cryptodev_data are moved to cryptodev_pmd.h to hide it from the applications.
Signed-off-by: Akhil
cryptodev: move device-specific structures
The device specific structures - rte_cryptodev and rte_cryptodev_data are moved to cryptodev_pmd.h to hide it from the applications.
Signed-off-by: Akhil Goyal <gakhil@marvell.com> Tested-by: Rebecca Troy <rebecca.troy@intel.com> Acked-by: Fan Zhang <roy.fan.zhang@intel.com> Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
show more ...
|
#
85b00824 |
| 28-Sep-2020 |
Adam Dybkowski <adamx.dybkowski@intel.com> |
crypto/scheduler: rename slave to worker
This patch replaces the usage of the word 'slave' with more appropriate word 'worker' in QAT PMD and Scheduler PMD as well as in their docs. Also the test ap
crypto/scheduler: rename slave to worker
This patch replaces the usage of the word 'slave' with more appropriate word 'worker' in QAT PMD and Scheduler PMD as well as in their docs. Also the test app was modified to use the new wording.
The Scheduler PMD's public API was modified according to the previous deprecation notice: rte_cryptodev_scheduler_slave_attach is now called rte_cryptodev_scheduler_worker_attach, rte_cryptodev_scheduler_slave_detach is rte_cryptodev_scheduler_worker_detach, rte_cryptodev_scheduler_slaves_get is rte_cryptodev_scheduler_workers_get.
Also, the configuration value RTE_CRYPTODEV_SCHEDULER_MAX_NB_SLAVES was renamed to RTE_CRYPTODEV_SCHEDULER_MAX_NB_WORKERS.
Signed-off-by: Adam Dybkowski <adamx.dybkowski@intel.com> Acked-by: Fan Zhang <roy.fan.zhang@intel.com> Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com> Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
show more ...
|
#
8b6c9aee |
| 22-May-2020 |
Konstantin Ananyev <konstantin.ananyev@intel.com> |
crypto/scheduler: use ring peek API
scheduler PMD uses its own hand-made peek functions that directly access rte_ring internals. As now rte_ring has an API for that type of functionality - change sc
crypto/scheduler: use ring peek API
scheduler PMD uses its own hand-made peek functions that directly access rte_ring internals. As now rte_ring has an API for that type of functionality - change scheduler PMD to use API provided by rte_ring.
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com> Acked-by: Fan Zhang <roy.fan.zhang@intel.com>
show more ...
|
#
520dd992 |
| 28-Oct-2018 |
Ferruh Yigit <ferruh.yigit@intel.com> |
drivers: prefix global variables with module name
Some global variables are defined with generic names, add component name as prefix to variables to prevent collusion with application variables.
Si
drivers: prefix global variables with module name
Some global variables are defined with generic names, add component name as prefix to variables to prevent collusion with application variables.
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com> Acked-by: Shreyansh Jain <shreyansh.jain@nxp.com> Acked-by: Tianfei Zhang <tianfei.zhang@intel.com>
show more ...
|
#
b74fd6b8 |
| 28-Oct-2018 |
Ferruh Yigit <ferruh.yigit@intel.com> |
add missing static keyword to globals
Some global variables can indeed be static, add static keyword to them.
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com> Acked-by: Jerin Jacob <jerin.jacob
add missing static keyword to globals
Some global variables can indeed be static, add static keyword to them.
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com> Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com> Acked-by: Shreyansh Jain <shreyansh.jain@nxp.com>
show more ...
|
#
85aa6d34 |
| 29-Jun-2018 |
Hari Kumar <hari.kumarx.vemula@intel.com> |
crypto/scheduler: add dynamic logging
Registered new dynamic logtype for driver and replaced CS_LOG_ERR and RTE_LOG macros with new CR_SCHED macro, which uses the new logtype.
Signed-off-by: Hari K
crypto/scheduler: add dynamic logging
Registered new dynamic logtype for driver and replaced CS_LOG_ERR and RTE_LOG macros with new CR_SCHED macro, which uses the new logtype.
Signed-off-by: Hari Kumar <hari.kumarx.vemula@intel.com> Reviewed-by: Reshma Pattan <reshma.pattan@intel.com> Reviewed-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
show more ...
|
#
1b78e3f2 |
| 21-May-2018 |
Kirill Rybalchenko <kirill.rybalchenko@intel.com> |
crypto/scheduler: fix 64-bit mask of workers cores
The list of workers cores was represented by 64-bit bitmask. It doesn't work if system has cores with id higher than 63. This fix changes list of w
crypto/scheduler: fix 64-bit mask of workers cores
The list of workers cores was represented by 64-bit bitmask. It doesn't work if system has cores with id higher than 63. This fix changes list of workers cores to array of uint16_t. The size of array equals to RTE_MAX_LCORE.
Fixes: 4c07e0552f0a ("crypto/scheduler: add multicore scheduling mode") Cc: stable@dpdk.org
Signed-off-by: Kirill Rybalchenko <kirill.rybalchenko@intel.com> Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
show more ...
|
#
91b9c522 |
| 16-May-2018 |
Fan Zhang <roy.fan.zhang@intel.com> |
crypto/scheduler: fix possible duplicated ring names
This patch fixes the possible duplicated ring names in multi-core scheduler. Originally two or more multi-core schedulers may have same worker ri
crypto/scheduler: fix possible duplicated ring names
This patch fixes the possible duplicated ring names in multi-core scheduler. Originally two or more multi-core schedulers may have same worker ring names thus will cause initialization error.
Fixes: 4c07e0552f0a ("crypto/scheduler: add multicore scheduling mode") Cc: stable@dpdk.org
Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com> Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
show more ...
|
#
cc32201a |
| 16-May-2018 |
Kirill Rybalchenko <kirill.rybalchenko@intel.com> |
crypto/scheduler: fix multicore rings re-use
When scheduler mode changed from multicore to roundrobin and back to multicore, scheduler tries to create memory rings with the same name and fails. The
crypto/scheduler: fix multicore rings re-use
When scheduler mode changed from multicore to roundrobin and back to multicore, scheduler tries to create memory rings with the same name and fails. The fix allows to lookup and re-use previously allocated memory rings.
Fixes: 4c07e0552f0a ("crypto/scheduler: add multicore scheduling mode") Cc: stable@dpdk.org
Signed-off-by: Kirill Rybalchenko <kirill.rybalchenko@intel.com> Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com> Acked-by: Fan Zhang <roy.fan.zhang@intel.com> Tested-by: Reshma Pattan <reshma.pattan@intel.com>
show more ...
|
#
7b2491a6 |
| 26-Apr-2018 |
Pablo de Lara <pablo.de.lara.guarch@intel.com> |
crypto/scheduler: fix memory leak
If private context creation fails, the memory allocated for it and for some of the rings created was being leaked. In case of failure, it must be freed.
Fixes: 4c0
crypto/scheduler: fix memory leak
If private context creation fails, the memory allocated for it and for some of the rings created was being leaked. In case of failure, it must be freed.
Fixes: 4c07e0552f0a ("crypto/scheduler: add multicore scheduling mode") Cc: stable@dpdk.org
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com> Acked-by: Fan Zhang <roy.fan.zhang@intel.com>
show more ...
|
#
06f0a569 |
| 26-Apr-2018 |
Pablo de Lara <pablo.de.lara.guarch@intel.com> |
crypto/scheduler: set null pointer after freeing
When freeing memory, pointers should be set to NULL, to avoid memory corruption/segmentation faults.
Fixes: 31439ee72b2c ("crypto/scheduler: add API
crypto/scheduler: set null pointer after freeing
When freeing memory, pointers should be set to NULL, to avoid memory corruption/segmentation faults.
Fixes: 31439ee72b2c ("crypto/scheduler: add API implementations") Fixes: 50e14527b9d1 ("crypto/scheduler: improve parameters parsing") Fixes: 57523e682bb7 ("crypto/scheduler: register operation functions") Fixes: a783aa634410 ("crypto/scheduler: add packet size based mode") Fixes: 4c07e0552f0a ("crypto/scheduler: add multicore scheduling mode") Cc: stable@dpdk.org
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com> Acked-by: Fan Zhang <roy.fan.zhang@intel.com>
show more ...
|
#
5566a3e3 |
| 19-Dec-2017 |
Bruce Richardson <bruce.richardson@intel.com> |
drivers: use SPDX tag for Intel copyright files
Replace the BSD license header with the SPDX tag for files with only an Intel copyright on them.
Signed-off-by: Bruce Richardson <bruce.richardson@in
drivers: use SPDX tag for Intel copyright files
Replace the BSD license header with the SPDX tag for files with only an Intel copyright on them.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
show more ...
|
#
89244ea4 |
| 18-Jul-2017 |
Kirill Rybalchenko <kirill.rybalchenko@intel.com> |
crypto/scheduler: fix multicore reordering
Operations can be dequeued from the reordering ring only after they were dequeued from the crypto pmd with rte_cryptodev_dequeue_burst() function. It is no
crypto/scheduler: fix multicore reordering
Operations can be dequeued from the reordering ring only after they were dequeued from the crypto pmd with rte_cryptodev_dequeue_burst() function. It is not correct to dequeue them when status just changed from RTE_CRYPTO_OP_STATUS_NOT_PROCESSED to any other value, as the operations still can be processed by crypto pmd internally. Now multicore scheduler workers mark status of all dequeued from crypto pmd operations with CRYPTO_OP_STATUS_BIT_COMPLETE bit set. Scheduler will dequeue crypto operations from reordering ring only when this status bit is set. Prior to put this operation to output buffer, scheduler clears this bit, so the application gets unmodified status from crypto pmd.
Fixes: 4c07e0552f0a ("crypto/scheduler: add multicore scheduling mode")
Signed-off-by: Kirill Rybalchenko <kirill.rybalchenko@intel.com> Acked-by: Declan Doherty <declan.doherty@intel.com>
show more ...
|
#
a76f6b1b |
| 09-Jul-2017 |
Jan Blunck <jblunck@infradead.org> |
crypto/scheduler: fix build with old gcc
Seen with gcc 4.9.2: drivers/crypto/scheduler/scheduler_multicore.c:286:2: error: 'for' loop initial declarations are only allowed in C99 or C11 mode for (
crypto/scheduler: fix build with old gcc
Seen with gcc 4.9.2: drivers/crypto/scheduler/scheduler_multicore.c:286:2: error: 'for' loop initial declarations are only allowed in C99 or C11 mode for (uint16_t i = 0; i < sched_ctx->nb_wc; i++) ^
Fixes: 4c07e0552f0a ("crypto/scheduler: add multicore scheduling mode")
Signed-off-by: Jan Blunck <jblunck@infradead.org>
show more ...
|
#
b3bbd9e5 |
| 05-Jul-2017 |
Slawomir Mrozowicz <slawomirx.mrozowicz@intel.com> |
cryptodev: support device independent sessions
Change crypto device's session management to make it device independent and simplify architecture when session is intended to be used on more than one
cryptodev: support device independent sessions
Change crypto device's session management to make it device independent and simplify architecture when session is intended to be used on more than one device.
Sessions private data is agnostic to underlying device by adding an indirection in the sessions private data using the crypto driver identifier. A single session can contain indirections to multiple device types.
New function rte_cryptodev_sym_session_init has been created, to initialize the driver private session data per driver to be used on a same session, and rte_cryptodev_sym_session_clear to clear this data before calling rte_cryptodev_sym_session_free.
Signed-off-by: Slawomir Mrozowicz <slawomirx.mrozowicz@intel.com> Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com> Acked-by: Declan Doherty <declan.doherty@intel.com> Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
show more ...
|
#
4c07e055 |
| 05-Jul-2017 |
Kirill Rybalchenko <kirill.rybalchenko@intel.com> |
crypto/scheduler: add multicore scheduling mode
Multi-core scheduling mode is a mode where scheduler distributes crypto operations in a round-robin base, between several core assigned as workers.
S
crypto/scheduler: add multicore scheduling mode
Multi-core scheduling mode is a mode where scheduler distributes crypto operations in a round-robin base, between several core assigned as workers.
Signed-off-by: Kirill Rybalchenko <kirill.rybalchenko@intel.com> Acked-by: Fan Zhang <roy.fan.zhang@intel.com>
show more ...
|