DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH] crypto/scheduler: fix initialization
@ 2017-02-09 13:44 Fan Zhang
  2017-02-09 17:02 ` De Lara Guarch, Pablo
  0 siblings, 1 reply; 2+ messages in thread
From: Fan Zhang @ 2017-02-09 13:44 UTC (permalink / raw)
  To: dev; +Cc: pablo.de.lara.guarch

Fixes the wrong slave initialization issue on start-up

Fixes: 100e4f7("add round-robin mode")

Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
---
 drivers/crypto/scheduler/scheduler_roundrobin.c | 16 +++++++---------
 1 file changed, 7 insertions(+), 9 deletions(-)

diff --git a/drivers/crypto/scheduler/scheduler_roundrobin.c b/drivers/crypto/scheduler/scheduler_roundrobin.c
index 7abdd29..ef2d683 100644
--- a/drivers/crypto/scheduler/scheduler_roundrobin.c
+++ b/drivers/crypto/scheduler/scheduler_roundrobin.c
@@ -62,6 +62,11 @@ schedule_enqueue(void *qp_ctx, struct rte_crypto_op **ops, uint16_t nb_ops)
 		rte_prefetch0(ops[i]->sym->session);
 
 	for (i = 0; (i < (nb_ops - 8)) && (nb_ops > 8); i += 4) {
+		rte_prefetch0(ops[i + 4]->sym->session);
+		rte_prefetch0(ops[i + 5]->sym->session);
+		rte_prefetch0(ops[i + 6]->sym->session);
+		rte_prefetch0(ops[i + 7]->sym->session);
+
 		sess0 = (struct scheduler_session *)
 				ops[i]->sym->session->_private;
 		sess1 = (struct scheduler_session *)
@@ -80,11 +85,6 @@ schedule_enqueue(void *qp_ctx, struct rte_crypto_op **ops, uint16_t nb_ops)
 		ops[i + 1]->sym->session = sess1->sessions[slave_idx];
 		ops[i + 2]->sym->session = sess2->sessions[slave_idx];
 		ops[i + 3]->sym->session = sess3->sessions[slave_idx];
-
-		rte_prefetch0(ops[i + 4]->sym->session);
-		rte_prefetch0(ops[i + 5]->sym->session);
-		rte_prefetch0(ops[i + 6]->sym->session);
-		rte_prefetch0(ops[i + 7]->sym->session);
 	}
 
 	for (; i < nb_ops; i++) {
@@ -350,7 +350,6 @@ static int
 scheduler_start(struct rte_cryptodev *dev)
 {
 	struct scheduler_ctx *sched_ctx = dev->data->dev_private;
-
 	uint16_t i;
 
 	for (i = 0; i < dev->data->nb_queue_pairs; i++) {
@@ -358,14 +357,13 @@ scheduler_start(struct rte_cryptodev *dev)
 		struct rr_scheduler_qp_ctx *rr_qp_ctx =
 				qp_ctx->private_qp_ctx;
 		uint32_t j;
-		uint16_t qp_id = rr_qp_ctx->slaves[0].qp_id;
 
 		memset(rr_qp_ctx->slaves, 0, MAX_SLAVES_NUM *
 				sizeof(struct scheduler_slave));
 		for (j = 0; j < sched_ctx->nb_slaves; j++) {
 			rr_qp_ctx->slaves[j].dev_id =
-					sched_ctx->slaves[i].dev_id;
-			rr_qp_ctx->slaves[j].qp_id = qp_id;
+					sched_ctx->slaves[j].dev_id;
+			rr_qp_ctx->slaves[j].qp_id = i;
 		}
 
 		rr_qp_ctx->nb_slaves = sched_ctx->nb_slaves;
-- 
2.7.4

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [dpdk-dev] [PATCH] crypto/scheduler: fix initialization
  2017-02-09 13:44 [dpdk-dev] [PATCH] crypto/scheduler: fix initialization Fan Zhang
@ 2017-02-09 17:02 ` De Lara Guarch, Pablo
  0 siblings, 0 replies; 2+ messages in thread
From: De Lara Guarch, Pablo @ 2017-02-09 17:02 UTC (permalink / raw)
  To: Zhang, Roy Fan, dev

Hi Fan,

> -----Original Message-----
> From: Zhang, Roy Fan
> Sent: Thursday, February 09, 2017 1:44 PM
> To: dev@dpdk.org
> Cc: De Lara Guarch, Pablo
> Subject: [PATCH] crypto/scheduler: fix initialization
> 
> Fixes the wrong slave initialization issue on start-up
> 
> Fixes: 100e4f7("add round-robin mode")

Use the first 6 bytes of the commit SHA (12 digits).

> 
> Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
> ---
>  drivers/crypto/scheduler/scheduler_roundrobin.c | 16 +++++++---------
>  1 file changed, 7 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/crypto/scheduler/scheduler_roundrobin.c
> b/drivers/crypto/scheduler/scheduler_roundrobin.c
> index 7abdd29..ef2d683 100644
> --- a/drivers/crypto/scheduler/scheduler_roundrobin.c
> +++ b/drivers/crypto/scheduler/scheduler_roundrobin.c
> @@ -62,6 +62,11 @@ schedule_enqueue(void *qp_ctx, struct
> rte_crypto_op **ops, uint16_t nb_ops)
>  		rte_prefetch0(ops[i]->sym->session);
> 
>  	for (i = 0; (i < (nb_ops - 8)) && (nb_ops > 8); i += 4) {
> +		rte_prefetch0(ops[i + 4]->sym->session);
> +		rte_prefetch0(ops[i + 5]->sym->session);
> +		rte_prefetch0(ops[i + 6]->sym->session);
> +		rte_prefetch0(ops[i + 7]->sym->session);
> +
>  		sess0 = (struct scheduler_session *)
>  				ops[i]->sym->session->_private;
>  		sess1 = (struct scheduler_session *)
> @@ -80,11 +85,6 @@ schedule_enqueue(void *qp_ctx, struct
> rte_crypto_op **ops, uint16_t nb_ops)
>  		ops[i + 1]->sym->session = sess1->sessions[slave_idx];
>  		ops[i + 2]->sym->session = sess2->sessions[slave_idx];
>  		ops[i + 3]->sym->session = sess3->sessions[slave_idx];
> -
> -		rte_prefetch0(ops[i + 4]->sym->session);
> -		rte_prefetch0(ops[i + 5]->sym->session);
> -		rte_prefetch0(ops[i + 6]->sym->session);
> -		rte_prefetch0(ops[i + 7]->sym->session);
>  	}

I think this move should go into another patch.

Thanks,
Pablo

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2017-02-09 17:02 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-02-09 13:44 [dpdk-dev] [PATCH] crypto/scheduler: fix initialization Fan Zhang
2017-02-09 17:02 ` De Lara Guarch, Pablo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).