All of lore.kernel.org
 help / color / mirror / Atom feed
* [Accel-config] [PATCH v1 05/14] accel-config/test: Add test code of operation Zdecompress32
@ 2022-05-24 10:24 Li Zhang
  0 siblings, 0 replies; 2+ messages in thread
From: Li Zhang @ 2022-05-24 10:24 UTC (permalink / raw)
  To: accel-config

[-- Attachment #1: Type: text/plain, Size: 8082 bytes --]

Add test code of operation Zdecompress32

Signed-off-by: Li Zhang <li4.zhang(a)intel.com>
---
 test/iaa.c      | 126 ++++++++++++++++++++++++++++++++++++++++++++++++
 test/iaa.h      |   3 ++
 test/iaa_prep.c |  11 +++++
 test/iaa_test.c |  11 +++++
 4 files changed, 151 insertions(+)

diff --git a/test/iaa.c b/test/iaa.c
index f3d45f5..524446a 100644
--- a/test/iaa.c
+++ b/test/iaa.c
@@ -121,6 +121,38 @@ static int init_zcompress32(struct task *tsk, int tflags, int opcode, unsigned l
 	return ACCTEST_STATUS_OK;
 }
 
+static int init_zdecompress32(struct task *tsk, int tflags, int opcode, unsigned long input_size)
+{
+	tsk->pattern = 0x98765432abcdef01;
+	tsk->opcode = opcode;
+	tsk->test_flags = tflags;
+
+	tsk->input = aligned_alloc(ADDR_ALIGNMENT, input_size);
+	if (!tsk->input)
+		return -ENOMEM;
+	iaa_zcompress16_randomize_input(tsk->input, tsk->pattern, input_size);
+
+	tsk->src1 = aligned_alloc(ADDR_ALIGNMENT, input_size * 2);
+	if (!tsk->src1)
+		return -ENOMEM;
+	memset_pattern(tsk->src1, 0, input_size * 2);
+	tsk->xfer_size = iaa_do_zcompress32(tsk->src1, tsk->input, input_size);
+
+	tsk->dst1 = aligned_alloc(ADDR_ALIGNMENT, input_size);
+	if (!tsk->dst1)
+		return -ENOMEM;
+	memset_pattern(tsk->dst1, 0, input_size);
+
+	tsk->output = aligned_alloc(ADDR_ALIGNMENT, input_size);
+	if (!tsk->output)
+		return -ENOMEM;
+	memset_pattern(tsk->output, 0, input_size);
+
+	tsk->iaa_max_dst_size = input_size;
+
+	return ACCTEST_STATUS_OK;
+}
+
 int init_task(struct task *tsk, int tflags, int opcode, unsigned long src1_xfer_size)
 {
 	int rc = 0;
@@ -141,6 +173,9 @@ int init_task(struct task *tsk, int tflags, int opcode, unsigned long src1_xfer_
 	case IAX_OPCODE_ZCOMPRESS32:
 		rc = init_zcompress32(tsk, tflags, opcode, src1_xfer_size);
 		break;
+	case IAX_OPCODE_ZDECOMPRESS32:
+		rc = init_zdecompress32(tsk, tflags, opcode, src1_xfer_size);
+		break;
 	}
 
 	if (rc != ACCTEST_STATUS_OK) {
@@ -386,6 +421,53 @@ int iaa_zcompress32_multi_task_nodes(struct acctest_context *ctx)
 	return ret;
 }
 
+static int iaa_wait_zdecompress32(struct acctest_context *ctx, struct task *tsk)
+{
+	struct completion_record *comp = tsk->comp;
+	int rc;
+
+	rc = acctest_wait_on_desc_timeout(comp, ctx, ms_timeout);
+	if (rc < 0) {
+		err("zdecompress32 desc timeout\n");
+		return ACCTEST_STATUS_TIMEOUT;
+	}
+
+	return ACCTEST_STATUS_OK;
+}
+
+int iaa_zdecompress32_multi_task_nodes(struct acctest_context *ctx)
+{
+	struct task_node *tsk_node = ctx->multi_task_node;
+	int ret = ACCTEST_STATUS_OK;
+
+	while (tsk_node) {
+		tsk_node->tsk->dflags |= (IDXD_OP_FLAG_CRAV | IDXD_OP_FLAG_RCR);
+		if ((tsk_node->tsk->test_flags & TEST_FLAGS_BOF) && ctx->bof)
+			tsk_node->tsk->dflags |= IDXD_OP_FLAG_BOF;
+
+		iaa_prep_zdecompress32(tsk_node->tsk);
+		tsk_node = tsk_node->next;
+	}
+
+	info("Submitted all zdecompress32 jobs\n");
+	tsk_node = ctx->multi_task_node;
+	while (tsk_node) {
+		acctest_desc_submit(ctx, tsk_node->tsk->desc);
+		tsk_node = tsk_node->next;
+	}
+
+	tsk_node = ctx->multi_task_node;
+	while (tsk_node) {
+		ret = iaa_wait_zdecompress32(ctx, tsk_node->tsk);
+		if (ret != ACCTEST_STATUS_OK)
+			info("Desc: %p failed with ret: %d\n",
+			     tsk_node->tsk->desc, tsk_node->tsk->comp->status);
+		tsk_node = tsk_node->next;
+	}
+
+	return ret;
+}
+
 /* mismatch_expected: expect mismatched buffer with success status 0x1 */
 int iaa_task_result_verify(struct task *tsk, int mismatch_expected)
 {
@@ -409,6 +491,9 @@ int iaa_task_result_verify(struct task *tsk, int mismatch_expected)
 	case IAX_OPCODE_ZCOMPRESS32:
 		ret = task_result_verify_zcompress32(tsk, mismatch_expected);
 		break;
+	case IAX_OPCODE_ZDECOMPRESS32:
+		ret = task_result_verify_zdecompress32(tsk, mismatch_expected);
+		break;
 	}
 
 	if (ret == ACCTEST_STATUS_OK)
@@ -596,3 +681,44 @@ int task_result_verify_zcompress32(struct task *tsk, int mismatch_expected)
 
 	return -ENXIO;
 }
+
+int task_result_verify_zdecompress32(struct task *tsk, int mismatch_expected)
+{
+	int i;
+	int rc;
+	int expected_len;
+
+	if (mismatch_expected)
+		warn("invalid arg mismatch_expected for %d\n", tsk->opcode);
+
+	expected_len = iaa_do_zdecompress32(tsk->output, tsk->src1, tsk->xfer_size);
+	rc = memcmp(tsk->dst1, tsk->output, expected_len);
+
+	if (!mismatch_expected) {
+		if (expected_len - tsk->comp->iax_output_size) {
+			err("zdecompress32 mismatch, exp len %d, act len %d\n",
+			    expected_len, tsk->comp->iax_output_size);
+
+			return -ENXIO;
+		}
+		if (rc) {
+			err("zdecompress32 mismatch, memcmp rc %d\n", rc);
+			for (i = 0; i < (expected_len / 4); i++) {
+				printf("Exp[%d]=0x%08X, Act[%d]=0x%08X\n",
+				       i, ((uint32_t *)tsk->output)[i],
+				       i, ((uint32_t *)tsk->dst1)[i]);
+			}
+
+			return -ENXIO;
+		}
+		return ACCTEST_STATUS_OK;
+	}
+
+	/* mismatch_expected */
+	if (rc) {
+		info("expected mismatch\n");
+		return ACCTEST_STATUS_OK;
+	}
+
+	return -ENXIO;
+}
diff --git a/test/iaa.h b/test/iaa.h
index 9746466..2a14781 100644
--- a/test/iaa.h
+++ b/test/iaa.h
@@ -14,11 +14,13 @@ int iaa_crc64_multi_task_nodes(struct acctest_context *ctx);
 int iaa_zcompress16_multi_task_nodes(struct acctest_context *ctx);
 int iaa_zdecompress16_multi_task_nodes(struct acctest_context *ctx);
 int iaa_zcompress32_multi_task_nodes(struct acctest_context *ctx);
+int iaa_zdecompress32_multi_task_nodes(struct acctest_context *ctx);
 void iaa_prep_noop(struct task *tsk);
 void iaa_prep_crc64(struct task *tsk);
 void iaa_prep_zcompress16(struct task *tsk);
 void iaa_prep_zdecompress16(struct task *tsk);
 void iaa_prep_zcompress32(struct task *tsk);
+void iaa_prep_zdecompress32(struct task *tsk);
 
 int iaa_task_result_verify(struct task *tsk, int mismatch_expected);
 int iaa_task_result_verify_task_nodes(struct acctest_context *ctx, int mismatch_expected);
@@ -26,5 +28,6 @@ int task_result_verify_crc64(struct task *tsk, int mismatch_expected);
 int task_result_verify_zcompress16(struct task *tsk, int mismatch_expected);
 int task_result_verify_zdecompress16(struct task *tsk, int mismatch_expected);
 int task_result_verify_zcompress32(struct task *tsk, int mismatch_expected);
+int task_result_verify_zdecompress32(struct task *tsk, int mismatch_expected);
 
 #endif
diff --git a/test/iaa_prep.c b/test/iaa_prep.c
index 7aff1e2..78668ac 100644
--- a/test/iaa_prep.c
+++ b/test/iaa_prep.c
@@ -64,3 +64,14 @@ void iaa_prep_zcompress32(struct task *tsk)
 	tsk->desc->iax_max_dst_size = tsk->iaa_max_dst_size;
 	tsk->comp->status = 0;
 }
+
+void iaa_prep_zdecompress32(struct task *tsk)
+{
+	info("preparing descriptor for zdecompress32\n");
+
+	acctest_prep_desc_common(tsk->desc, tsk->opcode, (uint64_t)(tsk->dst1),
+				 (uint64_t)(tsk->src1), tsk->xfer_size, tsk->dflags);
+	tsk->desc->completion_addr = (uint64_t)(tsk->comp);
+	tsk->desc->iax_max_dst_size = tsk->iaa_max_dst_size;
+	tsk->comp->status = 0;
+}
diff --git a/test/iaa_test.c b/test/iaa_test.c
index 7141979..ba3d412 100644
--- a/test/iaa_test.c
+++ b/test/iaa_test.c
@@ -194,6 +194,16 @@ static int test_zcompress(struct acctest_context *ctx, size_t buf_size,
 			if (rc != ACCTEST_STATUS_OK)
 				return rc;
 
+			/* Verification of all the nodes*/
+			rc = iaa_task_result_verify_task_nodes(ctx, 0);
+			if (rc != ACCTEST_STATUS_OK)
+				return rc;
+			break;
+		case IAX_OPCODE_ZDECOMPRESS32:
+			rc = iaa_zdecompress32_multi_task_nodes(ctx);
+			if (rc != ACCTEST_STATUS_OK)
+				return rc;
+
 			/* Verification of all the nodes*/
 			rc = iaa_task_result_verify_task_nodes(ctx, 0);
 			if (rc != ACCTEST_STATUS_OK)
@@ -299,6 +309,7 @@ int main(int argc, char *argv[])
 	case IAX_OPCODE_ZCOMPRESS16:
 	case IAX_OPCODE_ZDECOMPRESS16:
 	case IAX_OPCODE_ZCOMPRESS32:
+	case IAX_OPCODE_ZDECOMPRESS32:
 		rc = test_zcompress(iaa, buf_size, tflags, opcode, num_desc);
 		if (rc != ACCTEST_STATUS_OK)
 			goto error;
-- 
2.25.1

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

* [Accel-config] [PATCH v1 05/14] accel-config/test: Add test code of operation Zdecompress32
@ 2022-06-04  0:48 Li Zhang
  0 siblings, 0 replies; 2+ messages in thread
From: Li Zhang @ 2022-06-04  0:48 UTC (permalink / raw)
  To: accel-config

[-- Attachment #1: Type: text/plain, Size: 8082 bytes --]

Add test code of operation Zdecompress32

Signed-off-by: Li Zhang <li4.zhang(a)intel.com>
---
 test/iaa.c      | 126 ++++++++++++++++++++++++++++++++++++++++++++++++
 test/iaa.h      |   3 ++
 test/iaa_prep.c |  11 +++++
 test/iaa_test.c |  11 +++++
 4 files changed, 151 insertions(+)

diff --git a/test/iaa.c b/test/iaa.c
index f3d45f5..524446a 100644
--- a/test/iaa.c
+++ b/test/iaa.c
@@ -121,6 +121,38 @@ static int init_zcompress32(struct task *tsk, int tflags, int opcode, unsigned l
 	return ACCTEST_STATUS_OK;
 }
 
+static int init_zdecompress32(struct task *tsk, int tflags, int opcode, unsigned long input_size)
+{
+	tsk->pattern = 0x98765432abcdef01;
+	tsk->opcode = opcode;
+	tsk->test_flags = tflags;
+
+	tsk->input = aligned_alloc(ADDR_ALIGNMENT, input_size);
+	if (!tsk->input)
+		return -ENOMEM;
+	iaa_zcompress16_randomize_input(tsk->input, tsk->pattern, input_size);
+
+	tsk->src1 = aligned_alloc(ADDR_ALIGNMENT, input_size * 2);
+	if (!tsk->src1)
+		return -ENOMEM;
+	memset_pattern(tsk->src1, 0, input_size * 2);
+	tsk->xfer_size = iaa_do_zcompress32(tsk->src1, tsk->input, input_size);
+
+	tsk->dst1 = aligned_alloc(ADDR_ALIGNMENT, input_size);
+	if (!tsk->dst1)
+		return -ENOMEM;
+	memset_pattern(tsk->dst1, 0, input_size);
+
+	tsk->output = aligned_alloc(ADDR_ALIGNMENT, input_size);
+	if (!tsk->output)
+		return -ENOMEM;
+	memset_pattern(tsk->output, 0, input_size);
+
+	tsk->iaa_max_dst_size = input_size;
+
+	return ACCTEST_STATUS_OK;
+}
+
 int init_task(struct task *tsk, int tflags, int opcode, unsigned long src1_xfer_size)
 {
 	int rc = 0;
@@ -141,6 +173,9 @@ int init_task(struct task *tsk, int tflags, int opcode, unsigned long src1_xfer_
 	case IAX_OPCODE_ZCOMPRESS32:
 		rc = init_zcompress32(tsk, tflags, opcode, src1_xfer_size);
 		break;
+	case IAX_OPCODE_ZDECOMPRESS32:
+		rc = init_zdecompress32(tsk, tflags, opcode, src1_xfer_size);
+		break;
 	}
 
 	if (rc != ACCTEST_STATUS_OK) {
@@ -386,6 +421,53 @@ int iaa_zcompress32_multi_task_nodes(struct acctest_context *ctx)
 	return ret;
 }
 
+static int iaa_wait_zdecompress32(struct acctest_context *ctx, struct task *tsk)
+{
+	struct completion_record *comp = tsk->comp;
+	int rc;
+
+	rc = acctest_wait_on_desc_timeout(comp, ctx, ms_timeout);
+	if (rc < 0) {
+		err("zdecompress32 desc timeout\n");
+		return ACCTEST_STATUS_TIMEOUT;
+	}
+
+	return ACCTEST_STATUS_OK;
+}
+
+int iaa_zdecompress32_multi_task_nodes(struct acctest_context *ctx)
+{
+	struct task_node *tsk_node = ctx->multi_task_node;
+	int ret = ACCTEST_STATUS_OK;
+
+	while (tsk_node) {
+		tsk_node->tsk->dflags |= (IDXD_OP_FLAG_CRAV | IDXD_OP_FLAG_RCR);
+		if ((tsk_node->tsk->test_flags & TEST_FLAGS_BOF) && ctx->bof)
+			tsk_node->tsk->dflags |= IDXD_OP_FLAG_BOF;
+
+		iaa_prep_zdecompress32(tsk_node->tsk);
+		tsk_node = tsk_node->next;
+	}
+
+	info("Submitted all zdecompress32 jobs\n");
+	tsk_node = ctx->multi_task_node;
+	while (tsk_node) {
+		acctest_desc_submit(ctx, tsk_node->tsk->desc);
+		tsk_node = tsk_node->next;
+	}
+
+	tsk_node = ctx->multi_task_node;
+	while (tsk_node) {
+		ret = iaa_wait_zdecompress32(ctx, tsk_node->tsk);
+		if (ret != ACCTEST_STATUS_OK)
+			info("Desc: %p failed with ret: %d\n",
+			     tsk_node->tsk->desc, tsk_node->tsk->comp->status);
+		tsk_node = tsk_node->next;
+	}
+
+	return ret;
+}
+
 /* mismatch_expected: expect mismatched buffer with success status 0x1 */
 int iaa_task_result_verify(struct task *tsk, int mismatch_expected)
 {
@@ -409,6 +491,9 @@ int iaa_task_result_verify(struct task *tsk, int mismatch_expected)
 	case IAX_OPCODE_ZCOMPRESS32:
 		ret = task_result_verify_zcompress32(tsk, mismatch_expected);
 		break;
+	case IAX_OPCODE_ZDECOMPRESS32:
+		ret = task_result_verify_zdecompress32(tsk, mismatch_expected);
+		break;
 	}
 
 	if (ret == ACCTEST_STATUS_OK)
@@ -596,3 +681,44 @@ int task_result_verify_zcompress32(struct task *tsk, int mismatch_expected)
 
 	return -ENXIO;
 }
+
+int task_result_verify_zdecompress32(struct task *tsk, int mismatch_expected)
+{
+	int i;
+	int rc;
+	int expected_len;
+
+	if (mismatch_expected)
+		warn("invalid arg mismatch_expected for %d\n", tsk->opcode);
+
+	expected_len = iaa_do_zdecompress32(tsk->output, tsk->src1, tsk->xfer_size);
+	rc = memcmp(tsk->dst1, tsk->output, expected_len);
+
+	if (!mismatch_expected) {
+		if (expected_len - tsk->comp->iax_output_size) {
+			err("zdecompress32 mismatch, exp len %d, act len %d\n",
+			    expected_len, tsk->comp->iax_output_size);
+
+			return -ENXIO;
+		}
+		if (rc) {
+			err("zdecompress32 mismatch, memcmp rc %d\n", rc);
+			for (i = 0; i < (expected_len / 4); i++) {
+				printf("Exp[%d]=0x%08X, Act[%d]=0x%08X\n",
+				       i, ((uint32_t *)tsk->output)[i],
+				       i, ((uint32_t *)tsk->dst1)[i]);
+			}
+
+			return -ENXIO;
+		}
+		return ACCTEST_STATUS_OK;
+	}
+
+	/* mismatch_expected */
+	if (rc) {
+		info("expected mismatch\n");
+		return ACCTEST_STATUS_OK;
+	}
+
+	return -ENXIO;
+}
diff --git a/test/iaa.h b/test/iaa.h
index 9746466..2a14781 100644
--- a/test/iaa.h
+++ b/test/iaa.h
@@ -14,11 +14,13 @@ int iaa_crc64_multi_task_nodes(struct acctest_context *ctx);
 int iaa_zcompress16_multi_task_nodes(struct acctest_context *ctx);
 int iaa_zdecompress16_multi_task_nodes(struct acctest_context *ctx);
 int iaa_zcompress32_multi_task_nodes(struct acctest_context *ctx);
+int iaa_zdecompress32_multi_task_nodes(struct acctest_context *ctx);
 void iaa_prep_noop(struct task *tsk);
 void iaa_prep_crc64(struct task *tsk);
 void iaa_prep_zcompress16(struct task *tsk);
 void iaa_prep_zdecompress16(struct task *tsk);
 void iaa_prep_zcompress32(struct task *tsk);
+void iaa_prep_zdecompress32(struct task *tsk);
 
 int iaa_task_result_verify(struct task *tsk, int mismatch_expected);
 int iaa_task_result_verify_task_nodes(struct acctest_context *ctx, int mismatch_expected);
@@ -26,5 +28,6 @@ int task_result_verify_crc64(struct task *tsk, int mismatch_expected);
 int task_result_verify_zcompress16(struct task *tsk, int mismatch_expected);
 int task_result_verify_zdecompress16(struct task *tsk, int mismatch_expected);
 int task_result_verify_zcompress32(struct task *tsk, int mismatch_expected);
+int task_result_verify_zdecompress32(struct task *tsk, int mismatch_expected);
 
 #endif
diff --git a/test/iaa_prep.c b/test/iaa_prep.c
index 7aff1e2..78668ac 100644
--- a/test/iaa_prep.c
+++ b/test/iaa_prep.c
@@ -64,3 +64,14 @@ void iaa_prep_zcompress32(struct task *tsk)
 	tsk->desc->iax_max_dst_size = tsk->iaa_max_dst_size;
 	tsk->comp->status = 0;
 }
+
+void iaa_prep_zdecompress32(struct task *tsk)
+{
+	info("preparing descriptor for zdecompress32\n");
+
+	acctest_prep_desc_common(tsk->desc, tsk->opcode, (uint64_t)(tsk->dst1),
+				 (uint64_t)(tsk->src1), tsk->xfer_size, tsk->dflags);
+	tsk->desc->completion_addr = (uint64_t)(tsk->comp);
+	tsk->desc->iax_max_dst_size = tsk->iaa_max_dst_size;
+	tsk->comp->status = 0;
+}
diff --git a/test/iaa_test.c b/test/iaa_test.c
index 7141979..ba3d412 100644
--- a/test/iaa_test.c
+++ b/test/iaa_test.c
@@ -194,6 +194,16 @@ static int test_zcompress(struct acctest_context *ctx, size_t buf_size,
 			if (rc != ACCTEST_STATUS_OK)
 				return rc;
 
+			/* Verification of all the nodes*/
+			rc = iaa_task_result_verify_task_nodes(ctx, 0);
+			if (rc != ACCTEST_STATUS_OK)
+				return rc;
+			break;
+		case IAX_OPCODE_ZDECOMPRESS32:
+			rc = iaa_zdecompress32_multi_task_nodes(ctx);
+			if (rc != ACCTEST_STATUS_OK)
+				return rc;
+
 			/* Verification of all the nodes*/
 			rc = iaa_task_result_verify_task_nodes(ctx, 0);
 			if (rc != ACCTEST_STATUS_OK)
@@ -299,6 +309,7 @@ int main(int argc, char *argv[])
 	case IAX_OPCODE_ZCOMPRESS16:
 	case IAX_OPCODE_ZDECOMPRESS16:
 	case IAX_OPCODE_ZCOMPRESS32:
+	case IAX_OPCODE_ZDECOMPRESS32:
 		rc = test_zcompress(iaa, buf_size, tflags, opcode, num_desc);
 		if (rc != ACCTEST_STATUS_OK)
 			goto error;
-- 
2.25.1

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

end of thread, other threads:[~2022-06-04  0:48 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-24 10:24 [Accel-config] [PATCH v1 05/14] accel-config/test: Add test code of operation Zdecompress32 Li Zhang
2022-06-04  0:48 Li Zhang

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.