All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anatoly Burakov <anatoly.burakov@intel.com>
To: dev@dpdk.org
Cc: laszlo.madarassy@ericsson.com, laszlo.vadkerti@ericsson.com,
	andras.kovacs@ericsson.com, winnie.tian@ericsson.com,
	daniel.andrasi@ericsson.com, janos.kobor@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
Subject: [PATCH 12/16] malloc: allow adding memory to named heaps
Date: Tue,  4 Sep 2018 14:11:47 +0100	[thread overview]
Message-ID: <d0f9f66818709f637a58045a252592c530070661.1536064999.git.anatoly.burakov@intel.com> (raw)
In-Reply-To: <cover.1536064999.git.anatoly.burakov@intel.com>
In-Reply-To: <cover.1536064999.git.anatoly.burakov@intel.com>

Add an API to add externally allocated memory to malloc heap. The
memory will be stored in memseg lists like regular DPDK memory.
Multiple segments are allowed within a heap. If IOVA table is
not provided, IOVA addresses are filled in with RTE_BAD_IOVA.

Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
---
 lib/librte_eal/common/include/rte_malloc.h | 39 ++++++++++++
 lib/librte_eal/common/malloc_heap.c        | 74 ++++++++++++++++++++++
 lib/librte_eal/common/malloc_heap.h        |  4 ++
 lib/librte_eal/common/rte_malloc.c         | 51 +++++++++++++++
 lib/librte_eal/rte_eal_version.map         |  1 +
 5 files changed, 169 insertions(+)

diff --git a/lib/librte_eal/common/include/rte_malloc.h b/lib/librte_eal/common/include/rte_malloc.h
index 8a8cc1e6d..47f867a05 100644
--- a/lib/librte_eal/common/include/rte_malloc.h
+++ b/lib/librte_eal/common/include/rte_malloc.h
@@ -263,6 +263,45 @@ int
 rte_malloc_get_socket_stats(int socket,
 		struct rte_malloc_socket_stats *socket_stats);
 
+/**
+ * Add memory chunk to a heap with specified name.
+ *
+ * @note Multiple memory chunks can be added to the same heap
+ *
+ * @note Memory must be previously allocated for DPDK to be able to use it as a
+ *   malloc heap. Failing to do so will result in undefined behavior, up to and
+ *   including segmentation faults.
+ *
+ * @note Calling this function will erase any contents already present at the
+ *   supplied memory address.
+ *
+ * @param heap_name
+ *   Name of the heap to add memory chunk to
+ * @param va_addr
+ *   Start of virtual area to add to the heap
+ * @param len
+ *   Length of virtual area to add to the heap
+ * @param iova_addrs
+ *   Array of page IOVA addresses corresponding to each page in this memory
+ *   area. Can be NULL, in which case page IOVA addresses will be set to
+ *   RTE_BAD_IOVA.
+ * @param n_pages
+ *   Number of elements in the iova_addrs array. Ignored if  ``iova_addrs``
+ *   is NULL.
+ * @param page_sz
+ *   Page size of the underlying memory
+ *
+ * @return
+ *   - 0 on success
+ *   - -1 in case of error, with rte_errno set to one of the following:
+ *     EINVAL - one of the parameters was invalid
+ *     EPERM  - attempted to add memory to a reserved heap
+ *     ENOSPC - no more space in internal config to store a new memory chunk
+ */
+int __rte_experimental
+rte_malloc_heap_memory_add(const char *heap_name, void *va_addr, size_t len,
+		rte_iova_t iova_addrs[], unsigned int n_pages, size_t page_sz);
+
 /**
  * Creates a new empty malloc heap with a specified name.
  *
diff --git a/lib/librte_eal/common/malloc_heap.c b/lib/librte_eal/common/malloc_heap.c
index 471094cd1..af2476504 100644
--- a/lib/librte_eal/common/malloc_heap.c
+++ b/lib/librte_eal/common/malloc_heap.c
@@ -1010,6 +1010,80 @@ malloc_heap_dump(struct malloc_heap *heap, FILE *f)
 	rte_spinlock_unlock(&heap->lock);
 }
 
+int
+malloc_heap_add_external_memory(struct malloc_heap *heap, void *va_addr,
+		rte_iova_t iova_addrs[], unsigned int n_pages, size_t page_sz)
+{
+	struct rte_mem_config *mcfg = rte_eal_get_configuration()->mem_config;
+	char fbarray_name[RTE_FBARRAY_NAME_LEN];
+	struct rte_memseg_list *msl = NULL;
+	struct rte_fbarray *arr;
+	size_t seg_len = n_pages * page_sz;
+	unsigned int i;
+
+	/* first, find a free memseg list */
+	for (i = 0; i < RTE_MAX_MEMSEG_LISTS; i++) {
+		struct rte_memseg_list *tmp = &mcfg->memsegs[i];
+		if (tmp->base_va == NULL) {
+			msl = tmp;
+			break;
+		}
+	}
+	if (msl == NULL) {
+		RTE_LOG(ERR, EAL, "Couldn't find empty memseg list\n");
+		rte_errno = ENOSPC;
+		return -1;
+	}
+
+	snprintf(fbarray_name, sizeof(fbarray_name) - 1, "%s_%p",
+			heap->name, va_addr);
+
+	/* create the backing fbarray */
+	if (rte_fbarray_init(&msl->memseg_arr, fbarray_name, n_pages,
+			sizeof(struct rte_memseg)) < 0) {
+		RTE_LOG(ERR, EAL, "Couldn't create fbarray backing the memseg list\n");
+		return -1;
+	}
+	arr = &msl->memseg_arr;
+
+	/* fbarray created, fill it up */
+	for (i = 0; i < n_pages; i++) {
+		struct rte_memseg *ms;
+
+		rte_fbarray_set_used(arr, i);
+		ms = rte_fbarray_get(arr, i);
+		ms->addr = RTE_PTR_ADD(va_addr, n_pages * page_sz);
+		ms->iova = iova_addrs == NULL ? RTE_BAD_IOVA : iova_addrs[i];
+		ms->hugepage_sz = page_sz;
+		ms->len = page_sz;
+		ms->nchannel = rte_memory_get_nchannel();
+		ms->nrank = rte_memory_get_nrank();
+		ms->socket_id = heap->socket_id;
+	}
+
+	/* set up the memseg list */
+	msl->base_va = va_addr;
+	msl->page_sz = page_sz;
+	msl->socket_id = heap->socket_id;
+	msl->len = seg_len;
+	msl->version = 0;
+	msl->external = true;
+
+	/* erase contents of new memory */
+	memset(va_addr, 0, seg_len);
+
+	/* now, add newly minted memory to the malloc heap */
+	malloc_heap_add_memory(heap, msl, va_addr, seg_len);
+
+	heap->total_size += seg_len;
+
+	/* all done! */
+	RTE_LOG(DEBUG, EAL, "Added segment for heap %s starting at %p\n",
+			heap->name, va_addr);
+
+	return 0;
+}
+
 int
 malloc_heap_create(struct malloc_heap *heap, const char *heap_name)
 {
diff --git a/lib/librte_eal/common/malloc_heap.h b/lib/librte_eal/common/malloc_heap.h
index 75278da3c..237ce9dc2 100644
--- a/lib/librte_eal/common/malloc_heap.h
+++ b/lib/librte_eal/common/malloc_heap.h
@@ -39,6 +39,10 @@ malloc_heap_create(struct malloc_heap *heap, const char *heap_name);
 int
 malloc_heap_destroy(struct malloc_heap *heap);
 
+int
+malloc_heap_add_external_memory(struct malloc_heap *heap, void *va_addr,
+		rte_iova_t iova_addrs[], unsigned int n_pages, size_t page_sz);
+
 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 d135f9730..329524ac9 100644
--- a/lib/librte_eal/common/rte_malloc.c
+++ b/lib/librte_eal/common/rte_malloc.c
@@ -303,6 +303,57 @@ find_named_heap(const char *name)
 	return NULL;
 }
 
+int
+rte_malloc_heap_memory_add(const char *heap_name, void *va_addr, size_t len,
+		rte_iova_t iova_addrs[], unsigned int n_pages, size_t page_sz)
+{
+	struct rte_mem_config *mcfg = rte_eal_get_configuration()->mem_config;
+	struct malloc_heap *heap = NULL;
+	unsigned int n;
+	int ret;
+
+	if (heap_name == NULL || va_addr == NULL ||
+			page_sz == 0 || !rte_is_power_of_2(page_sz) ||
+			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;
+		ret = -1;
+		goto unlock;
+	}
+	rte_rwlock_write_lock(&mcfg->memory_hotplug_lock);
+
+	/* find our heap */
+	heap = find_named_heap(heap_name);
+	if (heap == NULL) {
+		rte_errno = ENOENT;
+		ret = -1;
+		goto unlock;
+	}
+	if (heap->socket_id < RTE_MAX_NUMA_NODES) {
+		/* cannot add memory to internal heaps */
+		rte_errno = EPERM;
+		ret = -1;
+		goto unlock;
+	}
+	n = len / page_sz;
+	if (n != n_pages && iova_addrs != NULL) {
+		rte_errno = EINVAL;
+		ret = -1;
+		goto unlock;
+	}
+
+	rte_spinlock_lock(&heap->lock);
+	ret = malloc_heap_add_external_memory(heap, va_addr, iova_addrs, n,
+			page_sz);
+	rte_spinlock_unlock(&heap->lock);
+
+unlock:
+	rte_rwlock_write_unlock(&mcfg->memory_hotplug_lock);
+
+	return ret;
+}
+
 int
 rte_malloc_heap_create(const char *heap_name)
 {
diff --git a/lib/librte_eal/rte_eal_version.map b/lib/librte_eal/rte_eal_version.map
index 1d3ca0716..0d052d20a 100644
--- a/lib/librte_eal/rte_eal_version.map
+++ b/lib/librte_eal/rte_eal_version.map
@@ -314,6 +314,7 @@ EXPERIMENTAL {
 	rte_malloc_heap_create;
 	rte_malloc_heap_destroy;
 	rte_malloc_heap_get_socket;
+	rte_malloc_heap_memory_add;
 	rte_mem_alloc_validator_register;
 	rte_mem_alloc_validator_unregister;
 	rte_mem_event_callback_register;
-- 
2.17.1

  parent reply	other threads:[~2018-09-04 13:12 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 ` Anatoly Burakov [this message]
2018-09-04 13:11 ` [PATCH 13/16] malloc: allow removing memory from named heaps 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           ` [PATCH v7 11/21] malloc: allow creating malloc heaps Anatoly Burakov
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=d0f9f66818709f637a58045a252592c530070661.1536064999.git.anatoly.burakov@intel.com \
    --to=anatoly.burakov@intel.com \
    --cc=ajit.khaparde@broadcom.com \
    --cc=andras.kovacs@ericsson.com \
    --cc=bruce.richardson@intel.com \
    --cc=daniel.andrasi@ericsson.com \
    --cc=dev@dpdk.org \
    --cc=janos.kobor@ericsson.com \
    --cc=keith.wiles@intel.com \
    --cc=laszlo.madarassy@ericsson.com \
    --cc=laszlo.vadkerti@ericsson.com \
    --cc=scott.branden@broadcom.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.