[dpdk-dev] [Bug 93] crypto vdev create will reset the dev_started flag when one dpdk process has been up the crypto vdev
bugzilla at dpdk.org
bugzilla at dpdk.org
Fri Sep 28 11:35:23 CEST 2018
https://bugs.dpdk.org/show_bug.cgi?id=93
Bug ID: 93
Summary: crypto vdev create will reset the dev_started flag
when one dpdk process has been up the crypto vdev
Product: DPDK
Version: 17.05
Hardware: All
OS: All
Status: CONFIRMED
Severity: major
Priority: Normal
Component: cryptodev
Assignee: dev at dpdk.org
Reporter: wenjing.1.jin at nokia-sbell.com
Target Milestone: ---
when use crypto vdev in one group primary/secondary processes, when one process
up the crypto vdev , if anther dpdk process startup with same dpdk crypto vdev
paramters, that will lead to the up vdev started flag set to 0.
from the code, if we want to use the vdev in secondary process , it must be
create in primary dpdk process first,and the secondary process which want use
the crypto vdev need startup with same dpdk vdev parameters(--vdev).but when
one dpdk process start after the crypto vdev up in one process , the vdev
started flag will reset to 0. this seem not an expected result,this will broke
the active cryptodev using.
test step:
1: create one crypto vdev in primary dpdk process and then configured
and start the crypto vdev .
2: startup secondary dpdk process with same crypto vdev
parameters(crypto vdev will create in rte_eal_init())
expected result: crypto vdev stats normal in first process
actual result: crypto vdev dev_started set to 0
same issue with up crypto vdev in one secondary process and startup other
secondary process with same crypto parameters
this issue will result in different dpdk process can configured and start
crypto vdev independently in such scenario, it seem not an expected result.
from the code we can see
rte_cryptodev_pmd_allocate {
..............
if (cryptodev->data == NULL) {
struct rte_cryptodev_data *cryptodev_data =
cryptodev_globals.data[dev_id];
int retval = rte_cryptodev_data_alloc(dev_id, &cryptodev_data,
socket_id);
cryptodev->data = cryptodev_data;
...............................
cryptodev->data->dev_id = dev_id;
cryptodev->data->socket_id = socket_id;
cryptodev->data->dev_started = 0;
cryptodev->attached = RTE_CRYPTODEV_ATTACHED;
cryptodev_globals.nb_devs++;
}
....................
}
in this function "cryptodev->data->dev_started = 0;" will executed in all dpdk
process which config with same dpdk crypto vdev, it's better add some condition
to set to zero, such as if the dev_started set to 1,dev_started not set here.
would you please help to check and fixed it?
thanks
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the dev
mailing list