All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anatoly Burakov <anatoly.burakov@intel.com>
To: dev@dpdk.org
Cc: John McNamara <john.mcnamara@intel.com>,
	Marko Kovacevic <marko.kovacevic@intel.com>,
	laszlo.madarassy@ericsson.com, laszlo.vadkerti@ericsson.com,
	andras.kovacs@ericsson.com, winnie.tian@ericsson.com,
	daniel.andrasi@ericsson.com, janos.kobor@ericsson.com,
	geza.koblo@ericsson.com, srinath.mannam@broadcom.com,
	scott.branden@broadcom.com, ajit.khaparde@broadcom.com,
	keith.wiles@intel.com, bruce.richardson@intel.com,
	thomas@monjalon.net, shreyansh.jain@nxp.com,
	shahafs@mellanox.com, arybchenko@solarflare.com,
	alejandro.lucero@netronome.com
Subject: [PATCH v7 11/21] malloc: allow creating malloc heaps
Date: Mon,  1 Oct 2018 12:05:00 +0100	[thread overview]
Message-ID: <8871981d48e235a978f3a1b822de0baeee49e157.1538384304.git.anatoly.burakov@intel.com> (raw)
In-Reply-To: <cover.1538384304.git.anatoly.burakov@intel.com>
In-Reply-To: <cover.1538384304.git.anatoly.burakov@intel.com>

Add API to allow creating new malloc heaps. They will be created
with socket ID's going above RTE_MAX_NUMA_NODES, to avoid clashing
with internal heaps.

Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
---
 doc/guides/rel_notes/release_18_11.rst        |  2 +
 .../common/include/rte_eal_memconfig.h        |  3 ++
 lib/librte_eal/common/include/rte_malloc.h    | 19 +++++++
 lib/librte_eal/common/malloc_heap.c           | 37 +++++++++++++
 lib/librte_eal/common/malloc_heap.h           |  3 ++
 lib/librte_eal/common/rte_malloc.c            | 52 +++++++++++++++++++
 lib/librte_eal/rte_eal_version.map            |  1 +
 7 files changed, 117 insertions(+)

diff --git a/doc/guides/rel_notes/release_18_11.rst b/doc/guides/rel_notes/release_18_11.rst
index 5a80e1122..5065ec1af 100644
--- a/doc/guides/rel_notes/release_18_11.rst
+++ b/doc/guides/rel_notes/release_18_11.rst
@@ -125,6 +125,8 @@ ABI Changes
        supporting external memory in DPDK. Structure ``rte_memseg_list`` now has
        a new flag indicating whether the memseg list refers to external memory.
        Structure ``rte_malloc_heap`` now has a ``heap_name`` string member.
+       Structure ``rte_eal_memconfig`` has been extended to contain next socket
+       ID for externally allocated memory segments.
 
 Removed Items
 -------------
diff --git a/lib/librte_eal/common/include/rte_eal_memconfig.h b/lib/librte_eal/common/include/rte_eal_memconfig.h
index d7920a4e0..98da58771 100644
--- a/lib/librte_eal/common/include/rte_eal_memconfig.h
+++ b/lib/librte_eal/common/include/rte_eal_memconfig.h
@@ -75,6 +75,9 @@ struct rte_mem_config {
 	/* Heaps of Malloc */
 	struct malloc_heap malloc_heaps[RTE_MAX_HEAPS];
 
+	/* next socket ID for external malloc heap */
+	int next_socket_id;
+
 	/* address of mem_config in primary process. used to map shared config into
 	 * exact same address the primary process maps it.
 	 */
diff --git a/lib/librte_eal/common/include/rte_malloc.h b/lib/librte_eal/common/include/rte_malloc.h
index 403271ddc..e326529d0 100644
--- a/lib/librte_eal/common/include/rte_malloc.h
+++ b/lib/librte_eal/common/include/rte_malloc.h
@@ -263,6 +263,25 @@ int
 rte_malloc_get_socket_stats(int socket,
 		struct rte_malloc_socket_stats *socket_stats);
 
+/**
+ * Creates a new empty malloc heap with a specified name.
+ *
+ * @note Heaps created via this call will automatically get assigned a unique
+ *   socket ID, which can be found using ``rte_malloc_heap_get_socket()``
+ *
+ * @param heap_name
+ *   Name of the heap to create.
+ *
+ * @return
+ *   - 0 on successful creation
+ *   - -1 in case of error, with rte_errno set to one of the following:
+ *     EINVAL - ``heap_name`` was NULL, empty or too long
+ *     EEXIST - heap by name of ``heap_name`` already exists
+ *     ENOSPC - no more space in internal config to store a new heap
+ */
+int __rte_experimental
+rte_malloc_heap_create(const char *heap_name);
+
 /**
  * Find socket ID corresponding to a named heap.
  *
diff --git a/lib/librte_eal/common/malloc_heap.c b/lib/librte_eal/common/malloc_heap.c
index b28905817..00fdf54f7 100644
--- a/lib/librte_eal/common/malloc_heap.c
+++ b/lib/librte_eal/common/malloc_heap.c
@@ -29,6 +29,10 @@
 #include "malloc_heap.h"
 #include "malloc_mp.h"
 
+/* start external socket ID's at a very high number */
+#define CONST_MAX(a, b) (a > b ? a : b) /* RTE_MAX is not a constant */
+#define EXTERNAL_HEAP_MIN_SOCKET_ID (CONST_MAX((1 << 8), RTE_MAX_NUMA_NODES))
+
 static unsigned
 check_hugepage_sz(unsigned flags, uint64_t hugepage_sz)
 {
@@ -1019,6 +1023,36 @@ malloc_heap_dump(struct malloc_heap *heap, FILE *f)
 	rte_spinlock_unlock(&heap->lock);
 }
 
+int
+malloc_heap_create(struct malloc_heap *heap, const char *heap_name)
+{
+	struct rte_mem_config *mcfg = rte_eal_get_configuration()->mem_config;
+	uint32_t next_socket_id = mcfg->next_socket_id;
+
+	/* prevent overflow. did you really create 2 billion heaps??? */
+	if (next_socket_id > INT32_MAX) {
+		RTE_LOG(ERR, EAL, "Cannot assign new socket ID's\n");
+		rte_errno = ENOSPC;
+		return -1;
+	}
+
+	/* initialize empty heap */
+	heap->alloc_count = 0;
+	heap->first = NULL;
+	heap->last = NULL;
+	LIST_INIT(heap->free_head);
+	rte_spinlock_init(&heap->lock);
+	heap->total_size = 0;
+	heap->socket_id = next_socket_id;
+
+	/* we hold a global mem hotplug writelock, so it's safe to increment */
+	mcfg->next_socket_id++;
+
+	/* set up name */
+	strlcpy(heap->name, heap_name, RTE_HEAP_NAME_MAX_LEN);
+	return 0;
+}
+
 int
 rte_eal_malloc_heap_init(void)
 {
@@ -1026,6 +1060,9 @@ rte_eal_malloc_heap_init(void)
 	unsigned int i;
 
 	if (rte_eal_process_type() == RTE_PROC_PRIMARY) {
+		/* assign min socket ID to external heaps */
+		mcfg->next_socket_id = EXTERNAL_HEAP_MIN_SOCKET_ID;
+
 		/* assign names to default DPDK heaps */
 		for (i = 0; i < rte_socket_count(); i++) {
 			struct malloc_heap *heap = &mcfg->malloc_heaps[i];
diff --git a/lib/librte_eal/common/malloc_heap.h b/lib/librte_eal/common/malloc_heap.h
index 61b844b6f..eebee16dc 100644
--- a/lib/librte_eal/common/malloc_heap.h
+++ b/lib/librte_eal/common/malloc_heap.h
@@ -33,6 +33,9 @@ void *
 malloc_heap_alloc_biggest(const char *type, int socket, unsigned int flags,
 		size_t align, bool contig);
 
+int
+malloc_heap_create(struct malloc_heap *heap, const char *heap_name);
+
 int
 malloc_heap_free(struct malloc_elem *elem);
 
diff --git a/lib/librte_eal/common/rte_malloc.c b/lib/librte_eal/common/rte_malloc.c
index fa81d7862..25967a7cb 100644
--- a/lib/librte_eal/common/rte_malloc.c
+++ b/lib/librte_eal/common/rte_malloc.c
@@ -13,6 +13,7 @@
 #include <rte_memory.h>
 #include <rte_eal.h>
 #include <rte_eal_memconfig.h>
+#include <rte_errno.h>
 #include <rte_branch_prediction.h>
 #include <rte_debug.h>
 #include <rte_launch.h>
@@ -311,3 +312,54 @@ rte_malloc_virt2iova(const void *addr)
 
 	return ms->iova + RTE_PTR_DIFF(addr, ms->addr);
 }
+
+int
+rte_malloc_heap_create(const char *heap_name)
+{
+	struct rte_mem_config *mcfg = rte_eal_get_configuration()->mem_config;
+	struct malloc_heap *heap = NULL;
+	int i, ret;
+
+	if (heap_name == NULL ||
+			strnlen(heap_name, RTE_HEAP_NAME_MAX_LEN) == 0 ||
+			strnlen(heap_name, RTE_HEAP_NAME_MAX_LEN) ==
+				RTE_HEAP_NAME_MAX_LEN) {
+		rte_errno = EINVAL;
+		return -1;
+	}
+	/* check if there is space in the heap list, or if heap with this name
+	 * already exists.
+	 */
+	rte_rwlock_write_lock(&mcfg->memory_hotplug_lock);
+
+	for (i = 0; i < RTE_MAX_HEAPS; i++) {
+		struct malloc_heap *tmp = &mcfg->malloc_heaps[i];
+		/* existing heap */
+		if (strncmp(heap_name, tmp->name,
+				RTE_HEAP_NAME_MAX_LEN) == 0) {
+			RTE_LOG(ERR, EAL, "Heap %s already exists\n",
+				heap_name);
+			rte_errno = EEXIST;
+			ret = -1;
+			goto unlock;
+		}
+		/* empty heap */
+		if (strnlen(tmp->name, RTE_HEAP_NAME_MAX_LEN) == 0) {
+			heap = tmp;
+			break;
+		}
+	}
+	if (heap == NULL) {
+		RTE_LOG(ERR, EAL, "Cannot create new heap: no space\n");
+		rte_errno = ENOSPC;
+		ret = -1;
+		goto unlock;
+	}
+
+	/* we're sure that we can create a new heap, so do it */
+	ret = malloc_heap_create(heap, heap_name);
+unlock:
+	rte_rwlock_write_unlock(&mcfg->memory_hotplug_lock);
+
+	return ret;
+}
diff --git a/lib/librte_eal/rte_eal_version.map b/lib/librte_eal/rte_eal_version.map
index bd60506af..376f33bbb 100644
--- a/lib/librte_eal/rte_eal_version.map
+++ b/lib/librte_eal/rte_eal_version.map
@@ -318,6 +318,7 @@ EXPERIMENTAL {
 	rte_fbarray_set_used;
 	rte_log_register_type_and_pick_level;
 	rte_malloc_dump_heaps;
+	rte_malloc_heap_create;
 	rte_malloc_heap_get_socket;
 	rte_malloc_heap_socket_is_external;
 	rte_mem_alloc_validator_register;
-- 
2.17.1

  parent reply	other threads:[~2018-10-01 11:05 UTC|newest]

Thread overview: 225+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-04 13:11 [PATCH 00/16] Support externally allocated memory in DPDK Anatoly Burakov
2018-09-04 13:11 ` [PATCH 01/16] mem: add length to memseg list Anatoly Burakov
2018-09-04 13:11 ` [PATCH 02/16] mem: allow memseg lists to be marked as external Anatoly Burakov
2018-09-04 13:11 ` [PATCH 03/16] malloc: index heaps using heap ID rather than NUMA node Anatoly Burakov
2018-09-04 13:11 ` [PATCH 04/16] mem: do not check for invalid socket ID Anatoly Burakov
2018-09-04 13:11 ` [PATCH 05/16] flow_classify: " Anatoly Burakov
2018-09-04 13:11 ` [PATCH 06/16] pipeline: " Anatoly Burakov
2018-09-04 13:11 ` [PATCH 07/16] sched: " Anatoly Burakov
2018-09-04 13:11 ` [PATCH 08/16] malloc: add name to malloc heaps Anatoly Burakov
2018-09-04 13:11 ` [PATCH 09/16] malloc: add function to query socket ID of named heap Anatoly Burakov
2018-09-04 13:11 ` [PATCH 10/16] malloc: allow creating malloc heaps Anatoly Burakov
2018-09-04 13:11 ` [PATCH 11/16] malloc: allow destroying heaps Anatoly Burakov
2018-09-04 13:11 ` [PATCH 12/16] malloc: allow adding memory to named heaps Anatoly Burakov
2018-09-04 13:11 ` [PATCH 13/16] malloc: allow removing memory from " Anatoly Burakov
2018-09-04 13:11 ` [PATCH 14/16] malloc: allow attaching to external memory chunks Anatoly Burakov
2018-09-04 13:11 ` [PATCH 15/16] malloc: allow detaching from external memory Anatoly Burakov
2018-09-04 13:11 ` [PATCH 16/16] test: add unit tests for external memory support Anatoly Burakov
2018-09-13  7:44 ` [PATCH 00/16] Support externally allocated memory in DPDK Shahaf Shuler
2018-09-17 10:07   ` Burakov, Anatoly
2018-09-17 12:16     ` Shahaf Shuler
2018-09-17 13:00       ` Burakov, Anatoly
2018-09-18 12:29         ` Shreyansh Jain
2018-09-18 15:15           ` Burakov, Anatoly
2018-09-19 13:56 ` [PATCH v2 00/20] " Anatoly Burakov
2018-09-20 11:36   ` [PATCH v3 " Anatoly Burakov
2018-09-21 16:13     ` [PATCH v4 " Anatoly Burakov
2018-09-23 21:21       ` Thomas Monjalon
2018-09-24  8:54         ` Burakov, Anatoly
2018-09-26 11:21       ` [PATCH v5 00/21] " Anatoly Burakov
2018-09-27 10:40         ` [PATCH v6 " Anatoly Burakov
2018-10-01 11:04           ` [PATCH v7 " Anatoly Burakov
2018-10-01 12:56             ` [PATCH v8 " Anatoly Burakov
2018-10-02 13:34               ` [PATCH v9 " Anatoly Burakov
2018-10-11  9:15                 ` Thomas Monjalon
2018-10-02 13:34               ` [PATCH v9 01/21] mem: add length to memseg list Anatoly Burakov
2018-10-02 13:34               ` [PATCH v9 02/21] mem: allow memseg lists to be marked as external Anatoly Burakov
2018-10-02 13:34               ` [PATCH v9 03/21] malloc: index heaps using heap ID rather than NUMA node Anatoly Burakov
2018-10-02 13:34               ` [PATCH v9 04/21] mem: do not check for invalid socket ID Anatoly Burakov
2018-10-02 13:34               ` [PATCH v9 05/21] flow_classify: " Anatoly Burakov
2018-10-02 13:34               ` [PATCH v9 06/21] pipeline: " Anatoly Burakov
2018-10-02 13:34               ` [PATCH v9 07/21] sched: " Anatoly Burakov
2018-10-02 13:34               ` [PATCH v9 08/21] malloc: add name to malloc heaps Anatoly Burakov
2018-10-02 13:34               ` [PATCH v9 09/21] malloc: add function to query socket ID of named heap Anatoly Burakov
2018-10-02 13:34               ` [PATCH v9 10/21] malloc: add function to check if socket is external Anatoly Burakov
2018-10-02 13:34               ` [PATCH v9 11/21] malloc: allow creating malloc heaps Anatoly Burakov
2018-10-02 13:34               ` [PATCH v9 12/21] malloc: allow destroying heaps Anatoly Burakov
2018-10-02 13:34               ` [PATCH v9 13/21] malloc: allow adding memory to named heaps Anatoly Burakov
2018-10-02 13:34               ` [PATCH v9 14/21] malloc: allow removing memory from " Anatoly Burakov
2018-10-02 13:34               ` [PATCH v9 15/21] malloc: allow attaching to external memory chunks Anatoly Burakov
2018-10-02 13:34               ` [PATCH v9 16/21] malloc: allow detaching from external memory Anatoly Burakov
2018-10-02 13:34               ` [PATCH v9 17/21] malloc: enable event callbacks for " Anatoly Burakov
2018-10-02 13:34               ` [PATCH v9 18/21] test: add unit tests for external memory support Anatoly Burakov
2018-10-02 13:34               ` [PATCH v9 19/21] app/testpmd: add support for external memory Anatoly Burakov
2018-10-02 14:05                 ` Iremonger, Bernard
2018-10-02 13:34               ` [PATCH v9 20/21] doc: add external memory feature to the release notes Anatoly Burakov
2018-10-02 13:34               ` [PATCH v9 21/21] doc: add external memory feature to programmer's guide Anatoly Burakov
2018-10-01 12:56             ` [PATCH v8 01/21] mem: add length to memseg list Anatoly Burakov
2018-10-01 17:01               ` Stephen Hemminger
2018-10-02  9:03                 ` Burakov, Anatoly
2018-10-01 12:56             ` [PATCH v8 02/21] mem: allow memseg lists to be marked as external Anatoly Burakov
2018-10-01 12:56             ` [PATCH v8 03/21] malloc: index heaps using heap ID rather than NUMA node Anatoly Burakov
2018-10-01 12:56             ` [PATCH v8 04/21] mem: do not check for invalid socket ID Anatoly Burakov
2018-10-01 12:56             ` [PATCH v8 05/21] flow_classify: " Anatoly Burakov
2018-10-01 12:56             ` [PATCH v8 06/21] pipeline: " Anatoly Burakov
2018-10-01 12:56             ` [PATCH v8 07/21] sched: " Anatoly Burakov
2018-10-01 12:56             ` [PATCH v8 08/21] malloc: add name to malloc heaps Anatoly Burakov
2018-10-01 12:56             ` [PATCH v8 09/21] malloc: add function to query socket ID of named heap Anatoly Burakov
2018-10-01 12:56             ` [PATCH v8 10/21] malloc: add function to check if socket is external Anatoly Burakov
2018-10-01 12:56             ` [PATCH v8 11/21] malloc: allow creating malloc heaps Anatoly Burakov
2018-10-01 12:56             ` [PATCH v8 12/21] malloc: allow destroying heaps Anatoly Burakov
2018-10-01 12:56             ` [PATCH v8 13/21] malloc: allow adding memory to named heaps Anatoly Burakov
2018-10-01 12:56             ` [PATCH v8 14/21] malloc: allow removing memory from " Anatoly Burakov
2018-10-01 12:56             ` [PATCH v8 15/21] malloc: allow attaching to external memory chunks Anatoly Burakov
2018-10-01 12:56             ` [PATCH v8 16/21] malloc: allow detaching from external memory Anatoly Burakov
2018-10-01 12:56             ` [PATCH v8 17/21] malloc: enable event callbacks for " Anatoly Burakov
2018-10-01 12:56             ` [PATCH v8 18/21] test: add unit tests for external memory support Anatoly Burakov
2018-10-01 12:56             ` [PATCH v8 19/21] app/testpmd: add support for external memory Anatoly Burakov
2018-10-01 15:11               ` Iremonger, Bernard
2018-10-01 15:23                 ` Burakov, Anatoly
2018-10-01 12:56             ` [PATCH v8 20/21] doc: add external memory feature to the release notes Anatoly Burakov
2018-10-01 12:56             ` [PATCH v8 21/21] doc: add external memory feature to programmer's guide Anatoly Burakov
2018-10-01 11:04           ` [PATCH v7 01/21] mem: add length to memseg list Anatoly Burakov
2018-10-01 11:04           ` [PATCH v7 02/21] mem: allow memseg lists to be marked as external Anatoly Burakov
2018-10-01 11:04           ` [PATCH v7 03/21] malloc: index heaps using heap ID rather than NUMA node Anatoly Burakov
2018-10-01 11:04           ` [PATCH v7 04/21] mem: do not check for invalid socket ID Anatoly Burakov
2018-10-01 11:04           ` [PATCH v7 05/21] flow_classify: " Anatoly Burakov
2018-10-01 11:04           ` [PATCH v7 06/21] pipeline: " Anatoly Burakov
2018-10-01 11:04           ` [PATCH v7 07/21] sched: " Anatoly Burakov
2018-10-01 11:04           ` [PATCH v7 08/21] malloc: add name to malloc heaps Anatoly Burakov
2018-10-01 11:04           ` [PATCH v7 09/21] malloc: add function to query socket ID of named heap Anatoly Burakov
2018-10-01 11:04           ` [PATCH v7 10/21] malloc: add function to check if socket is external Anatoly Burakov
2018-10-01 11:05           ` Anatoly Burakov [this message]
2018-10-01 11:05           ` [PATCH v7 12/21] malloc: allow destroying heaps Anatoly Burakov
2018-10-01 11:05           ` [PATCH v7 13/21] malloc: allow adding memory to named heaps Anatoly Burakov
2018-10-01 11:05           ` [PATCH v7 14/21] malloc: allow removing memory from " Anatoly Burakov
2018-10-01 11:05           ` [PATCH v7 15/21] malloc: allow attaching to external memory chunks Anatoly Burakov
2018-10-01 11:05           ` [PATCH v7 16/21] malloc: allow detaching from external memory Anatoly Burakov
2018-10-01 11:05           ` [PATCH v7 17/21] malloc: enable event callbacks for " Anatoly Burakov
2018-10-01 11:05           ` [PATCH v7 18/21] test: add unit tests for external memory support Anatoly Burakov
2018-10-01 11:05           ` [PATCH v7 19/21] app/testpmd: add support for external memory Anatoly Burakov
2018-10-01 11:05           ` [PATCH v7 20/21] doc: add external memory feature to the release notes Anatoly Burakov
2018-10-01 11:05           ` [PATCH v7 21/21] doc: add external memory feature to programmer's guide Anatoly Burakov
2018-09-27 10:40         ` [PATCH v6 01/21] mem: add length to memseg list Anatoly Burakov
2018-09-27 11:05           ` Shreyansh Jain
2018-09-27 10:40         ` [PATCH v6 02/21] mem: allow memseg lists to be marked as external Anatoly Burakov
2018-09-27 11:03           ` Shreyansh Jain
2018-09-27 11:08             ` Burakov, Anatoly
2018-09-27 11:12               ` Shreyansh Jain
2018-09-27 11:29                 ` Burakov, Anatoly
2018-09-29  0:09           ` Yongseok Koh
2018-09-27 10:41         ` [PATCH v6 03/21] malloc: index heaps using heap ID rather than NUMA node Anatoly Burakov
2018-09-27 13:01           ` Alejandro Lucero
2018-09-27 13:18             ` Burakov, Anatoly
2018-09-27 13:21               ` Alejandro Lucero
2018-09-27 10:41         ` [PATCH v6 04/21] mem: do not check for invalid socket ID Anatoly Burakov
2018-09-27 13:14           ` Alejandro Lucero
2018-09-27 13:21             ` Burakov, Anatoly
2018-09-27 13:42               ` Alejandro Lucero
2018-09-27 14:04                 ` Burakov, Anatoly
2018-09-27 10:41         ` [PATCH v6 05/21] flow_classify: " Anatoly Burakov
2018-09-27 16:14           ` Iremonger, Bernard
2018-09-27 10:41         ` [PATCH v6 06/21] pipeline: " Anatoly Burakov
2018-09-27 10:41         ` [PATCH v6 07/21] sched: " Anatoly Burakov
2018-09-27 10:41         ` [PATCH v6 08/21] malloc: add name to malloc heaps Anatoly Burakov
2018-09-27 10:41         ` [PATCH v6 09/21] malloc: add function to query socket ID of named heap Anatoly Burakov
2018-09-27 10:41         ` [PATCH v6 10/21] malloc: add function to check if socket is external Anatoly Burakov
2018-09-27 10:41         ` [PATCH v6 11/21] malloc: allow creating malloc heaps Anatoly Burakov
2018-09-27 10:41         ` [PATCH v6 12/21] malloc: allow destroying heaps Anatoly Burakov
2018-09-27 10:41         ` [PATCH v6 13/21] malloc: allow adding memory to named heaps Anatoly Burakov
2018-09-27 10:41         ` [PATCH v6 14/21] malloc: allow removing memory from " Anatoly Burakov
2018-09-27 10:41         ` [PATCH v6 15/21] malloc: allow attaching to external memory chunks Anatoly Burakov
2018-09-27 10:41         ` [PATCH v6 16/21] malloc: allow detaching from external memory Anatoly Burakov
2018-09-27 10:41         ` [PATCH v6 17/21] malloc: enable event callbacks for " Anatoly Burakov
2018-09-27 10:41         ` [PATCH v6 18/21] test: add unit tests for external memory support Anatoly Burakov
2018-09-27 10:41         ` [PATCH v6 19/21] app/testpmd: add support for external memory Anatoly Burakov
2018-09-27 10:41         ` [PATCH v6 20/21] doc: add external memory feature to the release notes Anatoly Burakov
2018-09-27 10:41         ` [PATCH v6 21/21] doc: add external memory feature to programmer's guide Anatoly Burakov
2018-09-26 11:22       ` [PATCH v5 01/21] mem: add length to memseg list Anatoly Burakov
2018-09-26 11:22       ` [PATCH v5 02/21] mem: allow memseg lists to be marked as external Anatoly Burakov
2018-09-26 11:22       ` [PATCH v5 03/21] malloc: index heaps using heap ID rather than NUMA node Anatoly Burakov
2018-09-26 11:22       ` [PATCH v5 04/21] mem: do not check for invalid socket ID Anatoly Burakov
2018-09-26 11:22       ` [PATCH v5 05/21] flow_classify: " Anatoly Burakov
2018-09-26 11:22       ` [PATCH v5 06/21] pipeline: " Anatoly Burakov
2018-09-26 11:22       ` [PATCH v5 07/21] sched: " Anatoly Burakov
2018-09-26 11:22       ` [PATCH v5 08/21] malloc: add name to malloc heaps Anatoly Burakov
2018-09-26 11:22       ` [PATCH v5 09/21] malloc: add function to query socket ID of named heap Anatoly Burakov
2018-09-26 11:22       ` [PATCH v5 10/21] malloc: add function to check if socket is external Anatoly Burakov
2018-09-26 11:22       ` [PATCH v5 11/21] malloc: allow creating malloc heaps Anatoly Burakov
2018-09-26 11:22       ` [PATCH v5 12/21] malloc: allow destroying heaps Anatoly Burakov
2018-09-26 11:22       ` [PATCH v5 13/21] malloc: allow adding memory to named heaps Anatoly Burakov
2018-09-26 11:22       ` [PATCH v5 14/21] malloc: allow removing memory from " Anatoly Burakov
2018-09-26 11:22       ` [PATCH v5 15/21] malloc: allow attaching to external memory chunks Anatoly Burakov
2018-09-26 11:22       ` [PATCH v5 16/21] malloc: allow detaching from external memory Anatoly Burakov
2018-09-26 11:22       ` [PATCH v5 17/21] malloc: enable event callbacks for " Anatoly Burakov
2018-09-26 11:22       ` [PATCH v5 18/21] test: add unit tests for external memory support Anatoly Burakov
2018-09-26 11:22       ` [PATCH v5 19/21] app/testpmd: add support for external memory Anatoly Burakov
2018-09-26 11:22       ` [PATCH v5 20/21] doc: add external memory feature to the release notes Anatoly Burakov
2018-09-26 11:22       ` [PATCH v5 21/21] doc: add external memory feature to programmer's guide Anatoly Burakov
2018-09-26 15:19         ` Kovacevic, Marko
2018-09-26 16:00           ` Burakov, Anatoly
2018-09-26 16:17             ` Kovacevic, Marko
2018-09-21 16:13     ` [PATCH v4 01/20] mem: add length to memseg list Anatoly Burakov
2018-09-21 16:13     ` [PATCH v4 02/20] mem: allow memseg lists to be marked as external Anatoly Burakov
2018-09-21 16:13     ` [PATCH v4 03/20] malloc: index heaps using heap ID rather than NUMA node Anatoly Burakov
2018-09-21 16:13     ` [PATCH v4 04/20] mem: do not check for invalid socket ID Anatoly Burakov
2018-09-21 16:13     ` [PATCH v4 05/20] flow_classify: " Anatoly Burakov
2018-09-21 16:13     ` [PATCH v4 06/20] pipeline: " Anatoly Burakov
2018-09-21 16:13     ` [PATCH v4 07/20] sched: " Anatoly Burakov
2018-09-21 16:13     ` [PATCH v4 08/20] malloc: add name to malloc heaps Anatoly Burakov
2018-09-21 16:13     ` [PATCH v4 09/20] malloc: add function to query socket ID of named heap Anatoly Burakov
2018-09-21 16:13     ` [PATCH v4 10/20] malloc: add function to check if socket is external Anatoly Burakov
2018-09-21 16:14     ` [PATCH v4 11/20] malloc: allow creating malloc heaps Anatoly Burakov
2018-09-21 16:14     ` [PATCH v4 12/20] malloc: allow destroying heaps Anatoly Burakov
2018-09-21 16:14     ` [PATCH v4 13/20] malloc: allow adding memory to named heaps Anatoly Burakov
2018-09-21 16:14     ` [PATCH v4 14/20] malloc: allow removing memory from " Anatoly Burakov
2018-09-21 16:14     ` [PATCH v4 15/20] malloc: allow attaching to external memory chunks Anatoly Burakov
2018-09-21 16:14     ` [PATCH v4 16/20] malloc: allow detaching from external memory Anatoly Burakov
2018-09-21 16:14     ` [PATCH v4 17/20] test: add unit tests for external memory support Anatoly Burakov
2018-09-21 16:14     ` [PATCH v4 18/20] app/testpmd: add support for external memory Anatoly Burakov
2018-09-21 16:14     ` [PATCH v4 19/20] doc: add external memory feature to the release notes Anatoly Burakov
2018-09-21 16:14     ` [PATCH v4 20/20] doc: add external memory feature to programmer's guide Anatoly Burakov
2018-09-20 11:36   ` [PATCH v3 01/20] mem: add length to memseg list Anatoly Burakov
2018-09-20 11:36   ` [PATCH v3 02/20] mem: allow memseg lists to be marked as external Anatoly Burakov
2018-09-20 11:36   ` [PATCH v3 03/20] malloc: index heaps using heap ID rather than NUMA node Anatoly Burakov
2018-09-20 11:36   ` [PATCH v3 04/20] mem: do not check for invalid socket ID Anatoly Burakov
2018-09-20 11:36   ` [PATCH v3 05/20] flow_classify: " Anatoly Burakov
2018-09-20 11:36   ` [PATCH v3 06/20] pipeline: " Anatoly Burakov
2018-09-20 11:36   ` [PATCH v3 07/20] sched: " Anatoly Burakov
2018-09-20 11:36   ` [PATCH v3 08/20] malloc: add name to malloc heaps Anatoly Burakov
2018-09-20 11:36   ` [PATCH v3 09/20] malloc: add function to query socket ID of named heap Anatoly Burakov
2018-09-20 11:36   ` [PATCH v3 10/20] malloc: allow creating malloc heaps Anatoly Burakov
2018-09-20 11:36   ` [PATCH v3 11/20] malloc: allow destroying heaps Anatoly Burakov
2018-09-20 11:36   ` [PATCH v3 12/20] malloc: allow adding memory to named heaps Anatoly Burakov
2018-09-20 11:36   ` [PATCH v3 13/20] malloc: allow removing memory from " Anatoly Burakov
2018-09-20 11:36   ` [PATCH v3 14/20] malloc: allow attaching to external memory chunks Anatoly Burakov
2018-09-20 11:36   ` [PATCH v3 15/20] malloc: allow detaching from external memory Anatoly Burakov
2018-09-20 11:36   ` [PATCH v3 16/20] test: add unit tests for external memory support Anatoly Burakov
2018-09-20 11:36   ` [PATCH v3 17/20] examples: add external memory example app Anatoly Burakov
2018-09-20 22:47     ` Ananyev, Konstantin
2018-09-21  9:03       ` Burakov, Anatoly
2018-09-20 11:36   ` [PATCH v3 18/20] doc: add external memory feature to the release notes Anatoly Burakov
2018-09-20 11:36   ` [PATCH v3 19/20] doc: add external memory feature to programmer's guide Anatoly Burakov
2018-09-20 11:36   ` [PATCH v3 20/20] doc: add external memory sample application guide Anatoly Burakov
2018-09-19 13:56 ` [PATCH v2 01/20] mem: add length to memseg list Anatoly Burakov
2018-09-19 13:56 ` [PATCH v2 02/20] mem: allow memseg lists to be marked as external Anatoly Burakov
2018-09-20  9:30   ` Andrew Rybchenko
2018-09-20  9:54     ` Burakov, Anatoly
2018-09-19 13:56 ` [PATCH v2 03/20] malloc: index heaps using heap ID rather than NUMA node Anatoly Burakov
2018-09-19 13:56 ` [PATCH v2 04/20] mem: do not check for invalid socket ID Anatoly Burakov
2018-09-19 13:56 ` [PATCH v2 05/20] flow_classify: " Anatoly Burakov
2018-09-19 13:56 ` [PATCH v2 06/20] pipeline: " Anatoly Burakov
2018-09-19 13:56 ` [PATCH v2 07/20] sched: " Anatoly Burakov
2018-09-19 13:56 ` [PATCH v2 08/20] malloc: add name to malloc heaps Anatoly Burakov
2018-09-19 13:56 ` [PATCH v2 09/20] malloc: add function to query socket ID of named heap Anatoly Burakov
2018-09-19 13:56 ` [PATCH v2 10/20] malloc: allow creating malloc heaps Anatoly Burakov
2018-09-19 13:56 ` [PATCH v2 11/20] malloc: allow destroying heaps Anatoly Burakov
2018-09-19 13:56 ` [PATCH v2 12/20] malloc: allow adding memory to named heaps Anatoly Burakov
2018-09-19 13:56 ` [PATCH v2 13/20] malloc: allow removing memory from " Anatoly Burakov
2018-09-19 13:56 ` [PATCH v2 14/20] malloc: allow attaching to external memory chunks Anatoly Burakov
2018-09-19 13:56 ` [PATCH v2 15/20] malloc: allow detaching from external memory Anatoly Burakov
2018-09-19 13:56 ` [PATCH v2 16/20] test: add unit tests for external memory support Anatoly Burakov
2018-09-19 13:56 ` [PATCH v2 17/20] examples: add external memory example app Anatoly Burakov
2018-09-19 13:56 ` [PATCH v2 18/20] doc: add external memory feature to the release notes Anatoly Burakov
2018-09-19 13:56 ` [PATCH v2 19/20] doc: add external memory feature to programmer's guide Anatoly Burakov
2018-09-19 13:56 ` [PATCH v2 20/20] doc: add external memory sample application guide Anatoly Burakov

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=8871981d48e235a978f3a1b822de0baeee49e157.1538384304.git.anatoly.burakov@intel.com \
    --to=anatoly.burakov@intel.com \
    --cc=ajit.khaparde@broadcom.com \
    --cc=alejandro.lucero@netronome.com \
    --cc=andras.kovacs@ericsson.com \
    --cc=arybchenko@solarflare.com \
    --cc=bruce.richardson@intel.com \
    --cc=daniel.andrasi@ericsson.com \
    --cc=dev@dpdk.org \
    --cc=geza.koblo@ericsson.com \
    --cc=janos.kobor@ericsson.com \
    --cc=john.mcnamara@intel.com \
    --cc=keith.wiles@intel.com \
    --cc=laszlo.madarassy@ericsson.com \
    --cc=laszlo.vadkerti@ericsson.com \
    --cc=marko.kovacevic@intel.com \
    --cc=scott.branden@broadcom.com \
    --cc=shahafs@mellanox.com \
    --cc=shreyansh.jain@nxp.com \
    --cc=srinath.mannam@broadcom.com \
    --cc=thomas@monjalon.net \
    --cc=winnie.tian@ericsson.com \
    /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.