[Accel-config] Re: [PATCH v1 1/9] accel-config/test: add drain operation support for single submission

Dave Jiang <dave.jiang at intel.com> Fri, 11 Feb 2022 10:08:11 -0700
Newsgroups dev.linux.lists.accel-config
Message-ID <[email protected]>
On 2/11/2022 6:16 AM, Tony Zhu wrote:
> Drain submission is similiar as noop operation, so modify test_noop to
> support drain operation. It is not necessary to test drain in batch,
> single submission is enough.A Drain descriptor may not be included in
> a batch. It is treated as an unsupported operation type. The batch
> completion status is 0x5,the drain subtask completion status should be
> 0x10. In dsa_test for batch, drain is not a support operation.

For drain operation, it would make more sense if another operation is 
submitted in front of it. Perhaps send a MEMMOVE immediately followed by 
DRAIN?


>
> Signed-off-by: Tony Zhu <tony.zhu(a)intel.com>
> ---
>   test/dsa_test.c | 7 ++++---
>   1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/test/dsa_test.c b/test/dsa_test.c
> index eccf89c..8407bfc 100644
> --- a/test/dsa_test.c
> +++ b/test/dsa_test.c
> @@ -136,7 +136,7 @@ static int test_batch(struct dsa_context *ctx, size_t buf_size,
>   	return rc;
>   }
>   
> -static int test_noop(struct dsa_context *ctx, int tflags, int num_desc)
> +static int test_noop_drain(struct dsa_context *ctx, int tflags, uint32_t opcode, int num_desc)
>   {
>   	struct task_node *tsk_node;
>   	int rc = DSA_STATUS_OK;
> @@ -161,7 +161,7 @@ static int test_noop(struct dsa_context *ctx, int tflags, int num_desc)
>   		/* allocate memory to src and dest buffers and fill in the desc for all the nodes*/
>   		tsk_node = ctx->multi_task_node;
>   		while (tsk_node) {
> -			tsk_node->tsk->opcode = DSA_OPCODE_NOOP;
> +			tsk_node->tsk->opcode = opcode;
>   			tsk_node->tsk->test_flags = tflags;
>   			tsk_node = tsk_node->next;
>   		}
> @@ -404,7 +404,8 @@ int main(int argc, char *argv[])
>   
>   	switch (opcode) {
>   	case DSA_OPCODE_NOOP:
> -		rc = test_noop(dsa, tflags, num_desc);
> +	case DSA_OPCODE_DRAIN:
> +		rc = test_noop_drain(dsa, tflags, opcode,  num_desc);
>   		if (rc != DSA_STATUS_OK)
>   			goto error;
>   		break;