All of lore.kernel.org
 help / color / mirror / Atom feed
From: Harman Kalra <hkalra@marvell.com>
To: <dev@dpdk.org>, Harman Kalra <hkalra@marvell.com>
Subject: [dpdk-dev] [RFC 4/7] test/interrupt: apply get set interrupt handle APIs
Date: Thu, 26 Aug 2021 20:27:23 +0530	[thread overview]
Message-ID: <20210826145726.102081-5-hkalra@marvell.com> (raw)
In-Reply-To: <20210826145726.102081-1-hkalra@marvell.com>

Updating the interrupt testsuite to make use of interrupt
handle get set APIs.

Signed-off-by: Harman Kalra <hkalra@marvell.com>
---
 app/test/test_interrupts.c | 237 ++++++++++++++++++++++++-------------
 1 file changed, 152 insertions(+), 85 deletions(-)

diff --git a/app/test/test_interrupts.c b/app/test/test_interrupts.c
index 233b14a70b..289bca66dd 100644
--- a/app/test/test_interrupts.c
+++ b/app/test/test_interrupts.c
@@ -27,7 +27,7 @@ enum test_interrupt_handle_type {
 
 /* flag of if callback is called */
 static volatile int flag;
-static struct rte_intr_handle intr_handles[TEST_INTERRUPT_HANDLE_MAX];
+static struct rte_intr_handle *intr_handles;
 static enum test_interrupt_handle_type test_intr_type =
 				TEST_INTERRUPT_HANDLE_MAX;
 
@@ -50,7 +50,7 @@ static union intr_pipefds pfds;
 static inline int
 test_interrupt_handle_sanity_check(struct rte_intr_handle *intr_handle)
 {
-	if (!intr_handle || intr_handle->fd < 0)
+	if (!intr_handle || rte_intr_handle_fd_get(intr_handle) < 0)
 		return -1;
 
 	return 0;
@@ -62,31 +62,70 @@ test_interrupt_handle_sanity_check(struct rte_intr_handle *intr_handle)
 static int
 test_interrupt_init(void)
 {
+	struct rte_intr_handle *test_intr_handle;
+
 	if (pipe(pfds.pipefd) < 0)
 		return -1;
 
-	intr_handles[TEST_INTERRUPT_HANDLE_INVALID].fd = -1;
-	intr_handles[TEST_INTERRUPT_HANDLE_INVALID].type =
-					RTE_INTR_HANDLE_UNKNOWN;
+	intr_handles = rte_intr_handle_instance_alloc(TEST_INTERRUPT_HANDLE_MAX,
+						      false);
+	if (!intr_handles)
+		return -1;
 
-	intr_handles[TEST_INTERRUPT_HANDLE_VALID].fd = pfds.readfd;
-	intr_handles[TEST_INTERRUPT_HANDLE_VALID].type =
-					RTE_INTR_HANDLE_UNKNOWN;
+	test_intr_handle = rte_intr_handle_instance_index_get(intr_handles,
+						TEST_INTERRUPT_HANDLE_INVALID);
+	if (!test_intr_handle)
+		return -1;
+	if (rte_intr_handle_fd_set(test_intr_handle, -1))
+		return -1;
+	if (rte_intr_handle_type_set(test_intr_handle, RTE_INTR_HANDLE_UNKNOWN))
+		return -1;
 
-	intr_handles[TEST_INTERRUPT_HANDLE_VALID_UIO].fd = pfds.readfd;
-	intr_handles[TEST_INTERRUPT_HANDLE_VALID_UIO].type =
-					RTE_INTR_HANDLE_UIO;
+	test_intr_handle = rte_intr_handle_instance_index_get(intr_handles,
+					      TEST_INTERRUPT_HANDLE_VALID);
+	if (!test_intr_handle)
+		return -1;
+	if (rte_intr_handle_fd_set(test_intr_handle, pfds.readfd))
+		return -1;
+	if (rte_intr_handle_type_set(test_intr_handle, RTE_INTR_HANDLE_UNKNOWN))
+		return -1;
+
+	test_intr_handle = rte_intr_handle_instance_index_get(intr_handles,
+					      TEST_INTERRUPT_HANDLE_VALID_UIO);
+	if (!test_intr_handle)
+		return -1;
+	if (rte_intr_handle_fd_set(test_intr_handle, pfds.readfd))
+		return -1;
+	if (rte_intr_handle_type_set(test_intr_handle, RTE_INTR_HANDLE_UIO))
+		return -1;
 
-	intr_handles[TEST_INTERRUPT_HANDLE_VALID_ALARM].fd = pfds.readfd;
-	intr_handles[TEST_INTERRUPT_HANDLE_VALID_ALARM].type =
-					RTE_INTR_HANDLE_ALARM;
+	test_intr_handle = rte_intr_handle_instance_index_get(intr_handles,
+				      TEST_INTERRUPT_HANDLE_VALID_ALARM);
+	if (!test_intr_handle)
+		return -1;
+	if (rte_intr_handle_fd_set(test_intr_handle, pfds.readfd))
+		return -1;
+	if (rte_intr_handle_type_set(test_intr_handle, RTE_INTR_HANDLE_ALARM))
+		return -1;
 
-	intr_handles[TEST_INTERRUPT_HANDLE_VALID_DEV_EVENT].fd = pfds.readfd;
-	intr_handles[TEST_INTERRUPT_HANDLE_VALID_DEV_EVENT].type =
-					RTE_INTR_HANDLE_DEV_EVENT;
+	test_intr_handle = rte_intr_handle_instance_index_get(intr_handles,
+				      TEST_INTERRUPT_HANDLE_VALID_DEV_EVENT);
+	if (!test_intr_handle)
+		return -1;
+	if (rte_intr_handle_fd_set(test_intr_handle, pfds.readfd))
+		return -1;
+	if (rte_intr_handle_type_set(test_intr_handle,
+				     RTE_INTR_HANDLE_DEV_EVENT))
+		return -1;
 
-	intr_handles[TEST_INTERRUPT_HANDLE_CASE1].fd = pfds.writefd;
-	intr_handles[TEST_INTERRUPT_HANDLE_CASE1].type = RTE_INTR_HANDLE_UIO;
+	test_intr_handle = rte_intr_handle_instance_index_get(intr_handles,
+					      TEST_INTERRUPT_HANDLE_CASE1);
+	if (!test_intr_handle)
+		return -1;
+	if (rte_intr_handle_fd_set(test_intr_handle, pfds.writefd))
+		return -1;
+	if (rte_intr_handle_type_set(test_intr_handle, RTE_INTR_HANDLE_UIO))
+		return -1;
 
 	return 0;
 }
@@ -97,6 +136,7 @@ test_interrupt_init(void)
 static int
 test_interrupt_deinit(void)
 {
+	rte_intr_handle_instance_free(intr_handles);
 	close(pfds.pipefd[0]);
 	close(pfds.pipefd[1]);
 
@@ -125,8 +165,10 @@ test_interrupt_handle_compare(struct rte_intr_handle *intr_handle_l,
 	if (!intr_handle_l || !intr_handle_r)
 		return -1;
 
-	if (intr_handle_l->fd != intr_handle_r->fd ||
-		intr_handle_l->type != intr_handle_r->type)
+	if (rte_intr_handle_fd_get(intr_handle_l) !=
+	    rte_intr_handle_fd_get(intr_handle_r) ||
+		rte_intr_handle_type_get(intr_handle_l) !=
+		rte_intr_handle_type_get(intr_handle_r))
 		return -1;
 
 	return 0;
@@ -178,6 +220,8 @@ static void
 test_interrupt_callback(void *arg)
 {
 	struct rte_intr_handle *intr_handle = arg;
+	struct rte_intr_handle *test_intr_handle;
+
 	if (test_intr_type >= TEST_INTERRUPT_HANDLE_MAX) {
 		printf("invalid interrupt type\n");
 		flag = -1;
@@ -198,8 +242,9 @@ test_interrupt_callback(void *arg)
 		return;
 	}
 
-	if (test_interrupt_handle_compare(intr_handle,
-			&(intr_handles[test_intr_type])) == 0)
+	test_intr_handle = rte_intr_handle_instance_index_get(intr_handles,
+							      test_intr_type);
+	if (test_interrupt_handle_compare(intr_handle, test_intr_handle) == 0)
 		flag = 1;
 }
 
@@ -223,7 +268,7 @@ test_interrupt_callback_1(void *arg)
 static int
 test_interrupt_enable(void)
 {
-	struct rte_intr_handle test_intr_handle;
+	struct rte_intr_handle *test_intr_handle;
 
 	/* check with null intr_handle */
 	if (rte_intr_enable(NULL) == 0) {
@@ -232,46 +277,52 @@ test_interrupt_enable(void)
 	}
 
 	/* check with invalid intr_handle */
-	test_intr_handle = intr_handles[TEST_INTERRUPT_HANDLE_INVALID];
-	if (rte_intr_enable(&test_intr_handle) == 0) {
+	test_intr_handle = rte_intr_handle_instance_index_get(intr_handles,
+					      TEST_INTERRUPT_HANDLE_INVALID);
+	if (rte_intr_enable(test_intr_handle) == 0) {
 		printf("unexpectedly enable invalid intr_handle "
 			"successfully\n");
 		return -1;
 	}
 
 	/* check with valid intr_handle */
-	test_intr_handle = intr_handles[TEST_INTERRUPT_HANDLE_VALID];
-	if (rte_intr_enable(&test_intr_handle) == 0) {
+	test_intr_handle = rte_intr_handle_instance_index_get(intr_handles,
+					      TEST_INTERRUPT_HANDLE_VALID);
+	if (rte_intr_enable(test_intr_handle) == 0) {
 		printf("unexpectedly enable a specific intr_handle "
 			"successfully\n");
 		return -1;
 	}
 
 	/* check with specific valid intr_handle */
-	test_intr_handle = intr_handles[TEST_INTERRUPT_HANDLE_VALID_ALARM];
-	if (rte_intr_enable(&test_intr_handle) == 0) {
+	test_intr_handle = rte_intr_handle_instance_index_get(intr_handles,
+				      TEST_INTERRUPT_HANDLE_VALID_ALARM);
+	if (rte_intr_enable(test_intr_handle) == 0) {
 		printf("unexpectedly enable a specific intr_handle "
 			"successfully\n");
 		return -1;
 	}
 
 	/* check with specific valid intr_handle */
-	test_intr_handle = intr_handles[TEST_INTERRUPT_HANDLE_VALID_DEV_EVENT];
-	if (rte_intr_enable(&test_intr_handle) == 0) {
+	test_intr_handle = rte_intr_handle_instance_index_get(intr_handles,
+				      TEST_INTERRUPT_HANDLE_VALID_DEV_EVENT);
+	if (rte_intr_enable(test_intr_handle) == 0) {
 		printf("unexpectedly enable a specific intr_handle "
 			"successfully\n");
 		return -1;
 	}
 
 	/* check with valid handler and its type */
-	test_intr_handle = intr_handles[TEST_INTERRUPT_HANDLE_CASE1];
-	if (rte_intr_enable(&test_intr_handle) < 0) {
+	test_intr_handle = rte_intr_handle_instance_index_get(intr_handles,
+					      TEST_INTERRUPT_HANDLE_CASE1);
+	if (rte_intr_enable(test_intr_handle) < 0) {
 		printf("fail to enable interrupt on a simulated handler\n");
 		return -1;
 	}
 
-	test_intr_handle = intr_handles[TEST_INTERRUPT_HANDLE_VALID_UIO];
-	if (rte_intr_enable(&test_intr_handle) == 0) {
+	test_intr_handle = rte_intr_handle_instance_index_get(intr_handles,
+					      TEST_INTERRUPT_HANDLE_VALID_UIO);
+	if (rte_intr_enable(test_intr_handle) == 0) {
 		printf("unexpectedly enable a specific intr_handle "
 			"successfully\n");
 		return -1;
@@ -286,7 +337,7 @@ test_interrupt_enable(void)
 static int
 test_interrupt_disable(void)
 {
-	struct rte_intr_handle test_intr_handle;
+	struct rte_intr_handle *test_intr_handle;
 
 	/* check with null intr_handle */
 	if (rte_intr_disable(NULL) == 0) {
@@ -296,46 +347,52 @@ test_interrupt_disable(void)
 	}
 
 	/* check with invalid intr_handle */
-	test_intr_handle = intr_handles[TEST_INTERRUPT_HANDLE_INVALID];
-	if (rte_intr_disable(&test_intr_handle) == 0) {
+	test_intr_handle = rte_intr_handle_instance_index_get(intr_handles,
+					      TEST_INTERRUPT_HANDLE_INVALID);
+	if (rte_intr_disable(test_intr_handle) == 0) {
 		printf("unexpectedly disable invalid intr_handle "
 			"successfully\n");
 		return -1;
 	}
 
 	/* check with valid intr_handle */
-	test_intr_handle = intr_handles[TEST_INTERRUPT_HANDLE_VALID];
-	if (rte_intr_disable(&test_intr_handle) == 0) {
+	test_intr_handle = rte_intr_handle_instance_index_get(intr_handles,
+					      TEST_INTERRUPT_HANDLE_VALID);
+	if (rte_intr_disable(test_intr_handle) == 0) {
 		printf("unexpectedly disable a specific intr_handle "
 			"successfully\n");
 		return -1;
 	}
 
 	/* check with specific valid intr_handle */
-	test_intr_handle = intr_handles[TEST_INTERRUPT_HANDLE_VALID_ALARM];
-	if (rte_intr_disable(&test_intr_handle) == 0) {
+	test_intr_handle = rte_intr_handle_instance_index_get(intr_handles,
+				      TEST_INTERRUPT_HANDLE_VALID_ALARM);
+	if (rte_intr_disable(test_intr_handle) == 0) {
 		printf("unexpectedly disable a specific intr_handle "
 			"successfully\n");
 		return -1;
 	}
 
 	/* check with specific valid intr_handle */
-	test_intr_handle = intr_handles[TEST_INTERRUPT_HANDLE_VALID_DEV_EVENT];
-	if (rte_intr_disable(&test_intr_handle) == 0) {
+	test_intr_handle = rte_intr_handle_instance_index_get(intr_handles,
+				      TEST_INTERRUPT_HANDLE_VALID_DEV_EVENT);
+	if (rte_intr_disable(test_intr_handle) == 0) {
 		printf("unexpectedly disable a specific intr_handle "
 			"successfully\n");
 		return -1;
 	}
 
 	/* check with valid handler and its type */
-	test_intr_handle = intr_handles[TEST_INTERRUPT_HANDLE_CASE1];
-	if (rte_intr_disable(&test_intr_handle) < 0) {
+	test_intr_handle = rte_intr_handle_instance_index_get(intr_handles,
+					      TEST_INTERRUPT_HANDLE_CASE1);
+	if (rte_intr_disable(test_intr_handle) < 0) {
 		printf("fail to disable interrupt on a simulated handler\n");
 		return -1;
 	}
 
-	test_intr_handle = intr_handles[TEST_INTERRUPT_HANDLE_VALID_UIO];
-	if (rte_intr_disable(&test_intr_handle) == 0) {
+	test_intr_handle = rte_intr_handle_instance_index_get(intr_handles,
+					      TEST_INTERRUPT_HANDLE_VALID_UIO);
+	if (rte_intr_disable(test_intr_handle) == 0) {
 		printf("unexpectedly disable a specific intr_handle "
 			"successfully\n");
 		return -1;
@@ -351,13 +408,14 @@ static int
 test_interrupt_full_path_check(enum test_interrupt_handle_type intr_type)
 {
 	int count;
-	struct rte_intr_handle test_intr_handle;
+	struct rte_intr_handle *test_intr_handle;
 
 	flag = 0;
-	test_intr_handle = intr_handles[intr_type];
+	test_intr_handle = rte_intr_handle_instance_index_get(intr_handles,
+							      intr_type);
 	test_intr_type = intr_type;
-	if (rte_intr_callback_register(&test_intr_handle,
-			test_interrupt_callback, &test_intr_handle) < 0) {
+	if (rte_intr_callback_register(test_intr_handle,
+			test_interrupt_callback, test_intr_handle) < 0) {
 		printf("fail to register callback\n");
 		return -1;
 	}
@@ -371,9 +429,9 @@ test_interrupt_full_path_check(enum test_interrupt_handle_type intr_type)
 
 	rte_delay_ms(TEST_INTERRUPT_CHECK_INTERVAL);
 	while ((count =
-		rte_intr_callback_unregister(&test_intr_handle,
+		rte_intr_callback_unregister(test_intr_handle,
 					     test_interrupt_callback,
-					     &test_intr_handle)) < 0) {
+					     test_intr_handle)) < 0) {
 		if (count != -EAGAIN)
 			return -1;
 	}
@@ -396,7 +454,7 @@ static int
 test_interrupt(void)
 {
 	int ret = -1;
-	struct rte_intr_handle test_intr_handle;
+	struct rte_intr_handle *test_intr_handle;
 
 	if (test_interrupt_init() < 0) {
 		printf("fail to initialize for testing interrupt\n");
@@ -444,17 +502,20 @@ test_interrupt(void)
 	}
 
 	/* check if it will fail to register cb with invalid intr_handle */
-	test_intr_handle = intr_handles[TEST_INTERRUPT_HANDLE_INVALID];
-	if (rte_intr_callback_register(&test_intr_handle,
-			test_interrupt_callback, &test_intr_handle) == 0) {
+	test_intr_handle = rte_intr_handle_instance_index_get(intr_handles,
+					      TEST_INTERRUPT_HANDLE_INVALID);
+	if (rte_intr_callback_register(test_intr_handle,
+			test_interrupt_callback, test_intr_handle) == 0) {
 		printf("unexpectedly register successfully with invalid "
 			"intr_handle\n");
 		goto out;
 	}
 
 	/* check if it will fail to register without callback */
-	test_intr_handle = intr_handles[TEST_INTERRUPT_HANDLE_VALID];
-	if (rte_intr_callback_register(&test_intr_handle, NULL, &test_intr_handle) == 0) {
+	test_intr_handle = rte_intr_handle_instance_index_get(intr_handles,
+					      TEST_INTERRUPT_HANDLE_VALID);
+	if (rte_intr_callback_register(test_intr_handle, NULL,
+				       test_intr_handle) == 0) {
 		printf("unexpectedly register successfully with "
 			"null callback\n");
 		goto out;
@@ -469,39 +530,41 @@ test_interrupt(void)
 	}
 
 	/* check if it will fail to unregister cb with invalid intr_handle */
-	test_intr_handle = intr_handles[TEST_INTERRUPT_HANDLE_INVALID];
-	if (rte_intr_callback_unregister(&test_intr_handle,
-			test_interrupt_callback, &test_intr_handle) > 0) {
+	test_intr_handle = rte_intr_handle_instance_index_get(intr_handles,
+					      TEST_INTERRUPT_HANDLE_INVALID);
+	if (rte_intr_callback_unregister(test_intr_handle,
+			test_interrupt_callback, test_intr_handle) > 0) {
 		printf("unexpectedly unregister successfully with "
 			"invalid intr_handle\n");
 		goto out;
 	}
 
 	/* check if it is ok to register the same intr_handle twice */
-	test_intr_handle = intr_handles[TEST_INTERRUPT_HANDLE_VALID];
-	if (rte_intr_callback_register(&test_intr_handle,
-			test_interrupt_callback, &test_intr_handle) < 0) {
+	test_intr_handle = rte_intr_handle_instance_index_get(intr_handles,
+						TEST_INTERRUPT_HANDLE_VALID);
+	if (rte_intr_callback_register(test_intr_handle,
+			test_interrupt_callback, test_intr_handle) < 0) {
 		printf("it fails to register test_interrupt_callback\n");
 		goto out;
 	}
-	if (rte_intr_callback_register(&test_intr_handle,
-			test_interrupt_callback_1, &test_intr_handle) < 0) {
+	if (rte_intr_callback_register(test_intr_handle,
+			test_interrupt_callback_1, test_intr_handle) < 0) {
 		printf("it fails to register test_interrupt_callback_1\n");
 		goto out;
 	}
 	/* check if it will fail to unregister with invalid parameter */
-	if (rte_intr_callback_unregister(&test_intr_handle,
+	if (rte_intr_callback_unregister(test_intr_handle,
 			test_interrupt_callback, (void *)0xff) != 0) {
 		printf("unexpectedly unregisters successfully with "
 							"invalid arg\n");
 		goto out;
 	}
-	if (rte_intr_callback_unregister(&test_intr_handle,
-			test_interrupt_callback, &test_intr_handle) <= 0) {
+	if (rte_intr_callback_unregister(test_intr_handle,
+			test_interrupt_callback, test_intr_handle) <= 0) {
 		printf("it fails to unregister test_interrupt_callback\n");
 		goto out;
 	}
-	if (rte_intr_callback_unregister(&test_intr_handle,
+	if (rte_intr_callback_unregister(test_intr_handle,
 			test_interrupt_callback_1, (void *)-1) <= 0) {
 		printf("it fails to unregister test_interrupt_callback_1 "
 			"for all\n");
@@ -528,28 +591,32 @@ test_interrupt(void)
 out:
 	printf("Clearing for interrupt tests\n");
 	/* clear registered callbacks */
-	test_intr_handle = intr_handles[TEST_INTERRUPT_HANDLE_VALID];
-	rte_intr_callback_unregister(&test_intr_handle,
+	test_intr_handle = rte_intr_handle_instance_index_get(intr_handles,
+					      TEST_INTERRUPT_HANDLE_VALID);
+	rte_intr_callback_unregister(test_intr_handle,
 			test_interrupt_callback, (void *)-1);
-	rte_intr_callback_unregister(&test_intr_handle,
+	rte_intr_callback_unregister(test_intr_handle,
 			test_interrupt_callback_1, (void *)-1);
 
-	test_intr_handle = intr_handles[TEST_INTERRUPT_HANDLE_VALID_UIO];
-	rte_intr_callback_unregister(&test_intr_handle,
+	test_intr_handle = rte_intr_handle_instance_index_get(intr_handles,
+					      TEST_INTERRUPT_HANDLE_VALID_UIO);
+	rte_intr_callback_unregister(test_intr_handle,
 			test_interrupt_callback, (void *)-1);
-	rte_intr_callback_unregister(&test_intr_handle,
+	rte_intr_callback_unregister(test_intr_handle,
 			test_interrupt_callback_1, (void *)-1);
 
-	test_intr_handle = intr_handles[TEST_INTERRUPT_HANDLE_VALID_ALARM];
-	rte_intr_callback_unregister(&test_intr_handle,
+	test_intr_handle = rte_intr_handle_instance_index_get(intr_handles,
+				      TEST_INTERRUPT_HANDLE_VALID_ALARM);
+	rte_intr_callback_unregister(test_intr_handle,
 			test_interrupt_callback, (void *)-1);
-	rte_intr_callback_unregister(&test_intr_handle,
+	rte_intr_callback_unregister(test_intr_handle,
 			test_interrupt_callback_1, (void *)-1);
 
-	test_intr_handle = intr_handles[TEST_INTERRUPT_HANDLE_VALID_DEV_EVENT];
-	rte_intr_callback_unregister(&test_intr_handle,
+	test_intr_handle = rte_intr_handle_instance_index_get(intr_handles,
+				      TEST_INTERRUPT_HANDLE_VALID_DEV_EVENT);
+	rte_intr_callback_unregister(test_intr_handle,
 			test_interrupt_callback, (void *)-1);
-	rte_intr_callback_unregister(&test_intr_handle,
+	rte_intr_callback_unregister(test_intr_handle,
 			test_interrupt_callback_1, (void *)-1);
 
 	rte_delay_ms(2 * TEST_INTERRUPT_CHECK_INTERVAL);
-- 
2.18.0


  parent reply	other threads:[~2021-08-26 14:58 UTC|newest]

Thread overview: 152+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-26 14:57 [dpdk-dev] [RFC 0/7] make rte_intr_handle internal Harman Kalra
2021-08-26 14:57 ` [dpdk-dev] [RFC 1/7] eal: interrupt handle API prototypes Harman Kalra
2021-08-31 15:52   ` Kinsella, Ray
2021-08-26 14:57 ` [dpdk-dev] [RFC 2/7] eal/interrupts: implement get set APIs Harman Kalra
2021-08-31 15:53   ` Kinsella, Ray
2021-08-26 14:57 ` [dpdk-dev] [RFC 3/7] eal/interrupts: avoid direct access to interrupt handle Harman Kalra
2021-08-26 14:57 ` Harman Kalra [this message]
2021-08-26 14:57 ` [dpdk-dev] [RFC 5/7] drivers: remove direct access to interrupt handle fields Harman Kalra
2021-08-26 14:57 ` [dpdk-dev] [RFC 6/7] eal/interrupts: make interrupt handle structure opaque Harman Kalra
2021-08-26 14:57 ` [dpdk-dev] [RFC 7/7] eal/alarm: introduce alarm fini routine Harman Kalra
2021-09-03 12:40 ` [dpdk-dev] [PATCH v1 0/7] make rte_intr_handle internal Harman Kalra
2021-09-03 12:40   ` [dpdk-dev] [PATCH v1 1/7] eal: interrupt handle API prototypes Harman Kalra
2021-09-03 12:40   ` [dpdk-dev] [PATCH v1 2/7] eal/interrupts: implement get set APIs Harman Kalra
2021-09-28 15:46     ` David Marchand
2021-10-04  8:51       ` [dpdk-dev] [EXT] " Harman Kalra
2021-10-04  9:57         ` David Marchand
2021-10-12 15:22           ` Thomas Monjalon
2021-10-13 17:54             ` Harman Kalra
2021-10-13 17:57               ` Harman Kalra
2021-10-13 18:52                 ` Thomas Monjalon
2021-10-14  8:22                   ` Thomas Monjalon
2021-10-14  9:31                     ` Harman Kalra
2021-10-14  9:37                       ` David Marchand
2021-10-14  9:41                       ` Thomas Monjalon
2021-10-14 10:31                         ` Harman Kalra
2021-10-14 10:35                           ` Thomas Monjalon
2021-10-14 10:44                             ` Harman Kalra
2021-10-14 12:04                               ` Thomas Monjalon
2021-10-14 10:25                       ` Dmitry Kozlyuk
2021-10-03 18:05     ` [dpdk-dev] " Dmitry Kozlyuk
2021-10-04 10:37       ` [dpdk-dev] [EXT] " Harman Kalra
2021-10-04 11:18         ` Dmitry Kozlyuk
2021-10-04 14:03           ` Harman Kalra
2021-09-03 12:40   ` [dpdk-dev] [PATCH v1 3/7] eal/interrupts: avoid direct access to interrupt handle Harman Kalra
2021-09-03 12:40   ` [dpdk-dev] [PATCH v1 4/7] test/interrupt: apply get set interrupt handle APIs Harman Kalra
2021-09-03 12:41   ` [dpdk-dev] [PATCH v1 5/7] drivers: remove direct access to interrupt handle fields Harman Kalra
2021-09-03 12:41   ` [dpdk-dev] [PATCH v1 6/7] eal/interrupts: make interrupt handle structure opaque Harman Kalra
2021-10-03 18:16     ` Dmitry Kozlyuk
2021-10-04 14:09       ` [dpdk-dev] [EXT] " Harman Kalra
2021-09-03 12:41   ` [dpdk-dev] [PATCH v1 7/7] eal/alarm: introduce alarm fini routine Harman Kalra
2021-09-15 14:13   ` [dpdk-dev] [PATCH v1 0/7] make rte_intr_handle internal Harman Kalra
2021-09-23  8:20   ` David Marchand
2021-10-05 12:14 ` [dpdk-dev] [PATCH v2 0/6] " Harman Kalra
2021-10-05 12:14   ` [dpdk-dev] [PATCH v2 1/6] eal/interrupts: implement get set APIs Harman Kalra
2021-10-14  0:58     ` Dmitry Kozlyuk
2021-10-14 17:15       ` [dpdk-dev] [EXT] " Harman Kalra
2021-10-14 17:53         ` Dmitry Kozlyuk
2021-10-15  7:53           ` Thomas Monjalon
2021-10-14  7:31     ` [dpdk-dev] " David Marchand
2021-10-05 12:14   ` [dpdk-dev] [PATCH v2 2/6] eal/interrupts: avoid direct access to interrupt handle Harman Kalra
2021-10-14  0:59     ` Dmitry Kozlyuk
2021-10-14 17:31       ` [dpdk-dev] [EXT] " Harman Kalra
2021-10-14 17:53         ` Dmitry Kozlyuk
2021-10-05 12:14   ` [dpdk-dev] [PATCH v2 3/6] test/interrupt: apply get set interrupt handle APIs Harman Kalra
2021-10-05 12:15   ` [dpdk-dev] [PATCH v2 4/6] drivers: remove direct access to interrupt handle Harman Kalra
2021-10-05 12:15   ` [dpdk-dev] [PATCH v2 5/6] eal/interrupts: make interrupt handle structure opaque Harman Kalra
2021-10-05 12:15   ` [dpdk-dev] [PATCH v2 6/6] eal/alarm: introduce alarm fini routine Harman Kalra
2021-10-05 16:07 ` [dpdk-dev] [RFC 0/7] make rte_intr_handle internal Stephen Hemminger
2021-10-07 10:57   ` [dpdk-dev] [EXT] " Harman Kalra
2021-10-18 19:37 ` [dpdk-dev] [PATCH v3 " Harman Kalra
2021-10-18 19:37   ` [dpdk-dev] [PATCH v3 1/7] malloc: introduce malloc is ready API Harman Kalra
2021-10-19 15:53     ` Thomas Monjalon
2021-10-18 19:37   ` [dpdk-dev] [PATCH v3 2/7] eal/interrupts: implement get set APIs Harman Kalra
2021-10-18 22:07     ` Dmitry Kozlyuk
2021-10-19  8:50       ` [dpdk-dev] [EXT] " Harman Kalra
2021-10-19 18:44         ` Harman Kalra
2021-10-18 22:56     ` [dpdk-dev] " Stephen Hemminger
2021-10-19  8:32       ` [dpdk-dev] [EXT] " Harman Kalra
2021-10-19 15:58         ` Thomas Monjalon
2021-10-20 15:30         ` Dmitry Kozlyuk
2021-10-21  9:16           ` Harman Kalra
2021-10-21 12:33             ` Dmitry Kozlyuk
2021-10-21 13:32               ` David Marchand
2021-10-21 16:05                 ` Harman Kalra
2021-10-18 19:37   ` [dpdk-dev] [PATCH v3 3/7] eal/interrupts: avoid direct access to interrupt handle Harman Kalra
2021-10-18 19:37   ` [dpdk-dev] [PATCH v3 4/7] test/interrupt: apply get set interrupt handle APIs Harman Kalra
2021-10-18 19:37   ` [dpdk-dev] [PATCH v3 5/7] drivers: remove direct access to interrupt handle Harman Kalra
2021-10-18 19:37   ` [dpdk-dev] [PATCH v3 6/7] eal/interrupts: make interrupt handle structure opaque Harman Kalra
2021-10-18 19:37   ` [dpdk-dev] [PATCH v3 7/7] eal/alarm: introduce alarm fini routine Harman Kalra
2021-10-19 18:35 ` [dpdk-dev] [PATCH v4 0/7] make rte_intr_handle internal Harman Kalra
2021-10-19 18:35   ` [dpdk-dev] [PATCH v4 1/7] malloc: introduce malloc is ready API Harman Kalra
2021-10-19 22:01     ` Dmitry Kozlyuk
2021-10-19 22:04       ` Dmitry Kozlyuk
2021-10-20  9:01         ` [dpdk-dev] [EXT] " Harman Kalra
2021-10-19 18:35   ` [dpdk-dev] [PATCH v4 2/7] eal/interrupts: implement get set APIs Harman Kalra
2021-10-20  6:14     ` David Marchand
2021-10-20 14:29       ` Dmitry Kozlyuk
2021-10-20 16:15     ` Dmitry Kozlyuk
2021-10-19 18:35   ` [dpdk-dev] [PATCH v4 3/7] eal/interrupts: avoid direct access to interrupt handle Harman Kalra
2021-10-19 21:27     ` Dmitry Kozlyuk
2021-10-20  9:25       ` [dpdk-dev] [EXT] " Harman Kalra
2021-10-20  9:52         ` Dmitry Kozlyuk
2021-10-19 18:35   ` [dpdk-dev] [PATCH v4 4/7] test/interrupt: apply get set interrupt handle APIs Harman Kalra
2021-10-19 18:35   ` [dpdk-dev] [PATCH v4 5/7] drivers: remove direct access to interrupt handle Harman Kalra
2021-10-20  1:57     ` Hyong Youb Kim (hyonkim)
2021-10-19 18:35   ` [dpdk-dev] [PATCH v4 6/7] eal/interrupts: make interrupt handle structure opaque Harman Kalra
2021-10-19 18:35   ` [dpdk-dev] [PATCH v4 7/7] eal/alarm: introduce alarm fini routine Harman Kalra
2021-10-19 21:39     ` Dmitry Kozlyuk
2021-10-22 20:49 ` [dpdk-dev] [PATCH v5 0/6] make rte_intr_handle internal Harman Kalra
2021-10-22 20:49   ` [dpdk-dev] [PATCH v5 1/6] eal/interrupts: implement get set APIs Harman Kalra
2021-10-22 23:33     ` Dmitry Kozlyuk
2021-10-22 20:49   ` [dpdk-dev] [PATCH v5 2/6] eal/interrupts: avoid direct access to interrupt handle Harman Kalra
2021-10-22 23:33     ` Dmitry Kozlyuk
2021-10-22 20:49   ` [dpdk-dev] [PATCH v5 3/6] test/interrupt: apply get set interrupt handle APIs Harman Kalra
2021-10-22 20:49   ` [dpdk-dev] [PATCH v5 4/6] drivers: remove direct access to interrupt handle Harman Kalra
2021-10-22 20:49   ` [dpdk-dev] [PATCH v5 5/6] eal/interrupts: make interrupt handle structure opaque Harman Kalra
2021-10-22 23:33     ` Dmitry Kozlyuk
2021-10-22 20:49   ` [dpdk-dev] [PATCH v5 6/6] eal/alarm: introduce alarm fini routine Harman Kalra
2021-10-22 23:33     ` Dmitry Kozlyuk
2021-10-22 23:37       ` Dmitry Kozlyuk
2021-10-24 20:04   ` [dpdk-dev] [PATCH v6 0/9] make rte_intr_handle internal David Marchand
2021-10-24 20:04     ` [dpdk-dev] [PATCH v6 1/9] interrupts: add allocator and accessors David Marchand
2021-10-24 20:04     ` [dpdk-dev] [PATCH v6 2/9] interrupts: remove direct access to interrupt handle David Marchand
2021-10-25  6:57       ` David Marchand
2021-10-24 20:04     ` [dpdk-dev] [PATCH v6 3/9] test/interrupts: " David Marchand
2021-10-24 20:04     ` [dpdk-dev] [PATCH v6 4/9] alarm: " David Marchand
2021-10-25 10:49       ` Dmitry Kozlyuk
2021-10-25 11:09         ` David Marchand
2021-10-24 20:04     ` [dpdk-dev] [PATCH v6 5/9] lib: " David Marchand
2021-10-24 20:04     ` [dpdk-dev] [PATCH v6 6/9] drivers: " David Marchand
2021-10-24 20:04     ` [dpdk-dev] [PATCH v6 7/9] interrupts: make interrupt handle structure opaque David Marchand
2021-10-24 20:04     ` [dpdk-dev] [PATCH v6 8/9] interrupts: rename device specific file descriptor David Marchand
2021-10-24 20:04     ` [dpdk-dev] [PATCH v6 9/9] interrupts: extend event list David Marchand
2021-10-25 10:49       ` Dmitry Kozlyuk
2021-10-25 11:11         ` David Marchand
2021-10-25 13:04   ` [dpdk-dev] [PATCH v5 0/6] make rte_intr_handle internal Raslan Darawsheh
2021-10-25 13:09     ` David Marchand
2021-10-25 13:34   ` [dpdk-dev] [PATCH v7 0/9] " David Marchand
2021-10-25 13:34     ` [dpdk-dev] [PATCH v7 1/9] interrupts: add allocator and accessors David Marchand
2021-10-25 13:34     ` [dpdk-dev] [PATCH v7 2/9] interrupts: remove direct access to interrupt handle David Marchand
2021-10-25 13:34     ` [dpdk-dev] [PATCH v7 3/9] test/interrupts: " David Marchand
2021-10-25 13:34     ` [dpdk-dev] [PATCH v7 4/9] alarm: " David Marchand
2021-10-25 13:34     ` [dpdk-dev] [PATCH v7 5/9] lib: " David Marchand
2021-10-28  6:14       ` Jiang, YuX
2021-10-25 13:34     ` [dpdk-dev] [PATCH v7 6/9] drivers: " David Marchand
2021-10-25 13:34     ` [dpdk-dev] [PATCH v7 7/9] interrupts: make interrupt handle structure opaque David Marchand
2021-10-25 13:34     ` [dpdk-dev] [PATCH v7 8/9] interrupts: rename device specific file descriptor David Marchand
2021-10-25 13:34     ` [dpdk-dev] [PATCH v7 9/9] interrupts: extend event list David Marchand
2021-10-25 14:27   ` [dpdk-dev] [PATCH v8 0/9] make rte_intr_handle internal David Marchand
2021-10-25 14:27     ` [dpdk-dev] [PATCH v8 1/9] interrupts: add allocator and accessors David Marchand
2021-10-25 14:27     ` [dpdk-dev] [PATCH v8 2/9] interrupts: remove direct access to interrupt handle David Marchand
2021-10-25 14:27     ` [dpdk-dev] [PATCH v8 3/9] test/interrupts: " David Marchand
2021-10-25 14:27     ` [dpdk-dev] [PATCH v8 4/9] alarm: " David Marchand
2021-10-25 14:27     ` [dpdk-dev] [PATCH v8 5/9] lib: " David Marchand
2021-10-25 14:27     ` [dpdk-dev] [PATCH v8 6/9] drivers: " David Marchand
2021-10-25 14:27     ` [dpdk-dev] [PATCH v8 7/9] interrupts: make interrupt handle structure opaque David Marchand
2021-10-25 14:27     ` [dpdk-dev] [PATCH v8 8/9] interrupts: rename device specific file descriptor David Marchand
2021-10-25 14:27     ` [dpdk-dev] [PATCH v8 9/9] interrupts: extend event list David Marchand
2021-10-28 15:58       ` Ji, Kai
2021-10-28 17:16         ` David Marchand
2021-10-25 14:32     ` [dpdk-dev] [PATCH v8 0/9] make rte_intr_handle internal Raslan Darawsheh
2021-10-25 19:24     ` David Marchand

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210826145726.102081-5-hkalra@marvell.com \
    --to=hkalra@marvell.com \
    --cc=dev@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.