From: Anatoly Burakov <anatoly.burakov@intel.com>
To: dev@dpdk.org
Cc: keith.wiles@intel.com, jianfeng.tan@intel.com,
andras.kovacs@ericsson.com, laszlo.vadkeri@ericsson.com,
benjamin.walker@intel.com, bruce.richardson@intel.com,
thomas@monjalon.net, konstantin.ananyev@intel.com,
kuralamudhan.ramakrishnan@intel.com, louise.m.daly@intel.com,
nelio.laranjeiro@6wind.com, yskoh@mellanox.com, pepperjo@japf.ch,
jerin.jacob@caviumnetworks.com, hemant.agrawal@nxp.com,
olivier.matz@6wind.com, shreyansh.jain@nxp.com,
gowrishankar.m@linux.vnet.ibm.com
Subject: [dpdk-dev] [PATCH v4 10/70] eal: add backend support for contiguous allocation
Date: Sun, 8 Apr 2018 21:17:43 +0100 [thread overview]
Message-ID: <6fd544b79740c4eae7eb111d103d08375fd9f96b.1523218215.git.anatoly.burakov@intel.com> (raw)
In-Reply-To: <cover.1523218215.git.anatoly.burakov@intel.com>
In-Reply-To: <cover.1523218215.git.anatoly.burakov@intel.com>
No major changes, just add some checks in a few key places, and
a new parameter to pass around.
Also, add a function to check malloc element for physical
contiguousness. For now, assume hugepage memory is always
contiguous, while non-hugepage memory will be checked.
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
---
Notes:
v3:
- Moved this patch earlier
- Added physical contiguousness checking function
lib/librte_eal/common/eal_common_memzone.c | 23 +++---
lib/librte_eal/common/malloc_elem.c | 125 ++++++++++++++++++++++++-----
lib/librte_eal/common/malloc_elem.h | 6 +-
lib/librte_eal/common/malloc_heap.c | 11 +--
lib/librte_eal/common/malloc_heap.h | 4 +-
lib/librte_eal/common/rte_malloc.c | 7 +-
6 files changed, 133 insertions(+), 43 deletions(-)
diff --git a/lib/librte_eal/common/eal_common_memzone.c b/lib/librte_eal/common/eal_common_memzone.c
index 1ab3ade..16a2e7a 100644
--- a/lib/librte_eal/common/eal_common_memzone.c
+++ b/lib/librte_eal/common/eal_common_memzone.c
@@ -98,7 +98,8 @@ find_heap_max_free_elem(int *s, unsigned align)
static const struct rte_memzone *
memzone_reserve_aligned_thread_unsafe(const char *name, size_t len,
- int socket_id, unsigned flags, unsigned align, unsigned bound)
+ int socket_id, unsigned int flags, unsigned int align,
+ unsigned int bound, bool contig)
{
struct rte_memzone *mz;
struct rte_mem_config *mcfg;
@@ -188,7 +189,7 @@ memzone_reserve_aligned_thread_unsafe(const char *name, size_t len,
/* allocate memory on heap */
void *mz_addr = malloc_heap_alloc(&mcfg->malloc_heaps[socket], NULL,
- requested_len, flags, align, bound);
+ requested_len, flags, align, bound, contig);
if ((mz_addr == NULL) && (socket_id == SOCKET_ID_ANY)) {
/* try other heaps */
@@ -197,7 +198,8 @@ memzone_reserve_aligned_thread_unsafe(const char *name, size_t len,
continue;
mz_addr = malloc_heap_alloc(&mcfg->malloc_heaps[i],
- NULL, requested_len, flags, align, bound);
+ NULL, requested_len, flags, align,
+ bound, contig);
if (mz_addr != NULL)
break;
}
@@ -235,9 +237,9 @@ memzone_reserve_aligned_thread_unsafe(const char *name, size_t len,
}
static const struct rte_memzone *
-rte_memzone_reserve_thread_safe(const char *name, size_t len,
- int socket_id, unsigned flags, unsigned align,
- unsigned bound)
+rte_memzone_reserve_thread_safe(const char *name, size_t len, int socket_id,
+ unsigned int flags, unsigned int align, unsigned int bound,
+ bool contig)
{
struct rte_mem_config *mcfg;
const struct rte_memzone *mz = NULL;
@@ -248,7 +250,7 @@ rte_memzone_reserve_thread_safe(const char *name, size_t len,
rte_rwlock_write_lock(&mcfg->mlock);
mz = memzone_reserve_aligned_thread_unsafe(
- name, len, socket_id, flags, align, bound);
+ name, len, socket_id, flags, align, bound, contig);
rte_rwlock_write_unlock(&mcfg->mlock);
@@ -265,7 +267,7 @@ rte_memzone_reserve_bounded(const char *name, size_t len, int socket_id,
unsigned flags, unsigned align, unsigned bound)
{
return rte_memzone_reserve_thread_safe(name, len, socket_id, flags,
- align, bound);
+ align, bound, false);
}
/*
@@ -277,7 +279,7 @@ rte_memzone_reserve_aligned(const char *name, size_t len, int socket_id,
unsigned flags, unsigned align)
{
return rte_memzone_reserve_thread_safe(name, len, socket_id, flags,
- align, 0);
+ align, 0, false);
}
/*
@@ -289,7 +291,8 @@ rte_memzone_reserve(const char *name, size_t len, int socket_id,
unsigned flags)
{
return rte_memzone_reserve_thread_safe(name, len, socket_id,
- flags, RTE_CACHE_LINE_SIZE, 0);
+ flags, RTE_CACHE_LINE_SIZE, 0,
+ false);
}
int
diff --git a/lib/librte_eal/common/malloc_elem.c b/lib/librte_eal/common/malloc_elem.c
index c18f050..87695b9 100644
--- a/lib/librte_eal/common/malloc_elem.c
+++ b/lib/librte_eal/common/malloc_elem.c
@@ -6,6 +6,7 @@
#include <stddef.h>
#include <stdio.h>
#include <string.h>
+#include <unistd.h>
#include <sys/queue.h>
#include <rte_memory.h>
@@ -94,33 +95,112 @@ malloc_elem_insert(struct malloc_elem *elem)
}
/*
+ * Attempt to find enough physically contiguous memory in this block to store
+ * our data. Assume that element has at least enough space to fit in the data,
+ * so we just check the page addresses.
+ */
+static bool
+elem_check_phys_contig(const struct rte_memseg *ms __rte_unused,
+ void *start, size_t size)
+{
+ rte_iova_t cur, expected;
+ void *start_page, *end_page, *cur_page;
+ size_t pagesz;
+
+ /* for hugepage memory or IOVA as VA, it's always contiguous */
+ if (rte_eal_has_hugepages() || rte_eal_iova_mode() == RTE_IOVA_VA)
+ return true;
+
+ /* otherwise, check if start and end are within the same page */
+ pagesz = getpagesize();
+
+ start_page = RTE_PTR_ALIGN_FLOOR(start, pagesz);
+ end_page = RTE_PTR_ALIGN_FLOOR(RTE_PTR_ADD(start, size - 1), pagesz);
+
+ if (start_page == end_page)
+ return true;
+
+ /* if they are from different pages, check if they are contiguous */
+
+ /* if we can't access physical addresses, assume non-contiguous */
+ if (!rte_eal_using_phys_addrs())
+ return false;
+
+ /* skip first iteration */
+ cur = rte_mem_virt2iova(start_page);
+ expected = cur + pagesz;
+ cur_page = RTE_PTR_ADD(start_page, pagesz);
+
+ while (cur_page <= end_page) {
+ cur = rte_mem_virt2iova(cur_page);
+ if (cur != expected)
+ return false;
+ cur_page = RTE_PTR_ADD(cur_page, pagesz);
+ expected += pagesz;
+ }
+ return true;
+}
+
+/*
* calculate the starting point of where data of the requested size
* and alignment would fit in the current element. If the data doesn't
* fit, return NULL.
*/
static void *
elem_start_pt(struct malloc_elem *elem, size_t size, unsigned align,
- size_t bound)
+ size_t bound, bool contig)
{
- const size_t bmask = ~(bound - 1);
- uintptr_t end_pt = (uintptr_t)elem +
- elem->size - MALLOC_ELEM_TRAILER_LEN;
- uintptr_t new_data_start = RTE_ALIGN_FLOOR((end_pt - size), align);
- uintptr_t new_elem_start;
-
- /* check boundary */
- if ((new_data_start & bmask) != ((end_pt - 1) & bmask)) {
- end_pt = RTE_ALIGN_FLOOR(end_pt, bound);
- new_data_start = RTE_ALIGN_FLOOR((end_pt - size), align);
- end_pt = new_data_start + size;
- if (((end_pt - 1) & bmask) != (new_data_start & bmask))
- return NULL;
- }
+ size_t elem_size = elem->size;
+
+ /*
+ * we're allocating from the end, so adjust the size of element by
+ * alignment size.
+ */
+ while (elem_size >= size) {
+ const size_t bmask = ~(bound - 1);
+ uintptr_t end_pt = (uintptr_t)elem +
+ elem_size - MALLOC_ELEM_TRAILER_LEN;
+ uintptr_t new_data_start = RTE_ALIGN_FLOOR((end_pt - size),
+ align);
+ uintptr_t new_elem_start;
+
+ /* check boundary */
+ if ((new_data_start & bmask) != ((end_pt - 1) & bmask)) {
+ end_pt = RTE_ALIGN_FLOOR(end_pt, bound);
+ new_data_start = RTE_ALIGN_FLOOR((end_pt - size),
+ align);
+ end_pt = new_data_start + size;
+
+ if (((end_pt - 1) & bmask) != (new_data_start & bmask))
+ return NULL;
+ }
+
+ new_elem_start = new_data_start - MALLOC_ELEM_HEADER_LEN;
- new_elem_start = new_data_start - MALLOC_ELEM_HEADER_LEN;
+ /* if the new start point is before the exist start,
+ * it won't fit
+ */
+ if (new_elem_start < (uintptr_t)elem)
+ return NULL;
- /* if the new start point is before the exist start, it won't fit */
- return (new_elem_start < (uintptr_t)elem) ? NULL : (void *)new_elem_start;
+ if (contig) {
+ size_t new_data_size = end_pt - new_data_start;
+
+ /*
+ * if physical contiguousness was requested and we
+ * couldn't fit all data into one physically contiguous
+ * block, try again with lower addresses.
+ */
+ if (!elem_check_phys_contig(elem->ms,
+ (void *)new_data_start,
+ new_data_size)) {
+ elem_size -= align;
+ continue;
+ }
+ }
+ return (void *)new_elem_start;
+ }
+ return NULL;
}
/*
@@ -129,9 +209,9 @@ elem_start_pt(struct malloc_elem *elem, size_t size, unsigned align,
*/
int
malloc_elem_can_hold(struct malloc_elem *elem, size_t size, unsigned align,
- size_t bound)
+ size_t bound, bool contig)
{
- return elem_start_pt(elem, size, align, bound) != NULL;
+ return elem_start_pt(elem, size, align, bound, contig) != NULL;
}
/*
@@ -259,9 +339,10 @@ malloc_elem_free_list_remove(struct malloc_elem *elem)
*/
struct malloc_elem *
malloc_elem_alloc(struct malloc_elem *elem, size_t size, unsigned align,
- size_t bound)
+ size_t bound, bool contig)
{
- struct malloc_elem *new_elem = elem_start_pt(elem, size, align, bound);
+ struct malloc_elem *new_elem = elem_start_pt(elem, size, align, bound,
+ contig);
const size_t old_elem_size = (uintptr_t)new_elem - (uintptr_t)elem;
const size_t trailer_size = elem->size - old_elem_size - size -
MALLOC_ELEM_OVERHEAD;
diff --git a/lib/librte_eal/common/malloc_elem.h b/lib/librte_eal/common/malloc_elem.h
index 9c1614c..34bd268 100644
--- a/lib/librte_eal/common/malloc_elem.h
+++ b/lib/librte_eal/common/malloc_elem.h
@@ -5,6 +5,8 @@
#ifndef MALLOC_ELEM_H_
#define MALLOC_ELEM_H_
+#include <stdbool.h>
+
#include <rte_memory.h>
/* dummy definition of struct so we can use pointers to it in malloc_elem struct */
@@ -123,7 +125,7 @@ malloc_elem_insert(struct malloc_elem *elem);
*/
int
malloc_elem_can_hold(struct malloc_elem *elem, size_t size,
- unsigned align, size_t bound);
+ unsigned int align, size_t bound, bool contig);
/*
* reserve a block of data in an existing malloc_elem. If the malloc_elem
@@ -131,7 +133,7 @@ malloc_elem_can_hold(struct malloc_elem *elem, size_t size,
*/
struct malloc_elem *
malloc_elem_alloc(struct malloc_elem *elem, size_t size,
- unsigned align, size_t bound);
+ unsigned int align, size_t bound, bool contig);
/*
* free a malloc_elem block by adding it to the free list. If the
diff --git a/lib/librte_eal/common/malloc_heap.c b/lib/librte_eal/common/malloc_heap.c
index a2c2e4c..564b61a 100644
--- a/lib/librte_eal/common/malloc_heap.c
+++ b/lib/librte_eal/common/malloc_heap.c
@@ -88,7 +88,7 @@ malloc_heap_add_memseg(struct malloc_heap *heap, struct rte_memseg *ms)
*/
static struct malloc_elem *
find_suitable_element(struct malloc_heap *heap, size_t size,
- unsigned flags, size_t align, size_t bound)
+ unsigned int flags, size_t align, size_t bound, bool contig)
{
size_t idx;
struct malloc_elem *elem, *alt_elem = NULL;
@@ -97,7 +97,8 @@ find_suitable_element(struct malloc_heap *heap, size_t size,
idx < RTE_HEAP_NUM_FREELISTS; idx++) {
for (elem = LIST_FIRST(&heap->free_head[idx]);
!!elem; elem = LIST_NEXT(elem, free_list)) {
- if (malloc_elem_can_hold(elem, size, align, bound)) {
+ if (malloc_elem_can_hold(elem, size, align, bound,
+ contig)) {
if (check_hugepage_sz(flags, elem->ms->hugepage_sz))
return elem;
if (alt_elem == NULL)
@@ -121,7 +122,7 @@ find_suitable_element(struct malloc_heap *heap, size_t size,
void *
malloc_heap_alloc(struct malloc_heap *heap,
const char *type __attribute__((unused)), size_t size, unsigned flags,
- size_t align, size_t bound)
+ size_t align, size_t bound, bool contig)
{
struct malloc_elem *elem;
@@ -130,9 +131,9 @@ malloc_heap_alloc(struct malloc_heap *heap,
rte_spinlock_lock(&heap->lock);
- elem = find_suitable_element(heap, size, flags, align, bound);
+ elem = find_suitable_element(heap, size, flags, align, bound, contig);
if (elem != NULL) {
- elem = malloc_elem_alloc(elem, size, align, bound);
+ elem = malloc_elem_alloc(elem, size, align, bound, contig);
/* increase heap's count of allocated elements */
heap->alloc_count++;
}
diff --git a/lib/librte_eal/common/malloc_heap.h b/lib/librte_eal/common/malloc_heap.h
index bb28422..c57b59a 100644
--- a/lib/librte_eal/common/malloc_heap.h
+++ b/lib/librte_eal/common/malloc_heap.h
@@ -5,6 +5,8 @@
#ifndef MALLOC_HEAP_H_
#define MALLOC_HEAP_H_
+#include <stdbool.h>
+
#include <rte_malloc.h>
#include <rte_malloc_heap.h>
@@ -25,7 +27,7 @@ malloc_get_numa_socket(void)
void *
malloc_heap_alloc(struct malloc_heap *heap, const char *type, size_t size,
- unsigned flags, size_t align, size_t bound);
+ unsigned int flags, size_t align, size_t bound, bool contig);
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 2cda48e..436818a 100644
--- a/lib/librte_eal/common/rte_malloc.c
+++ b/lib/librte_eal/common/rte_malloc.c
@@ -37,7 +37,8 @@ void rte_free(void *addr)
* Allocate memory on specified heap.
*/
void *
-rte_malloc_socket(const char *type, size_t size, unsigned align, int socket_arg)
+rte_malloc_socket(const char *type, size_t size, unsigned int align,
+ int socket_arg)
{
struct rte_mem_config *mcfg = rte_eal_get_configuration()->mem_config;
int socket, i;
@@ -60,7 +61,7 @@ rte_malloc_socket(const char *type, size_t size, unsigned align, int socket_arg)
return NULL;
ret = malloc_heap_alloc(&mcfg->malloc_heaps[socket], type,
- size, 0, align == 0 ? 1 : align, 0);
+ size, 0, align == 0 ? 1 : align, 0, false);
if (ret != NULL || socket_arg != SOCKET_ID_ANY)
return ret;
@@ -71,7 +72,7 @@ rte_malloc_socket(const char *type, size_t size, unsigned align, int socket_arg)
continue;
ret = malloc_heap_alloc(&mcfg->malloc_heaps[i], type,
- size, 0, align == 0 ? 1 : align, 0);
+ size, 0, align == 0 ? 1 : align, 0, false);
if (ret != NULL)
return ret;
}
--
2.7.4
next prev parent reply other threads:[~2018-04-08 20:18 UTC|newest]
Thread overview: 471+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-03 13:45 [dpdk-dev] [PATCH 00/41] Memory Hotplug for DPDK Anatoly Burakov
2018-03-03 13:45 ` [dpdk-dev] [PATCH 01/41] eal: move get_virtual_area out of linuxapp eal_memory.c Anatoly Burakov
2018-03-03 13:45 ` [dpdk-dev] [PATCH 02/41] eal: move all locking to heap Anatoly Burakov
2018-03-03 13:45 ` [dpdk-dev] [PATCH 03/41] eal: make malloc heap a doubly-linked list Anatoly Burakov
2018-03-19 17:33 ` Olivier Matz
2018-03-20 9:39 ` Burakov, Anatoly
2018-03-03 13:45 ` [dpdk-dev] [PATCH 04/41] eal: add function to dump malloc heap contents Anatoly Burakov
2018-03-03 13:45 ` [dpdk-dev] [PATCH 05/41] test: add command " Anatoly Burakov
2018-03-03 13:45 ` [dpdk-dev] [PATCH 06/41] eal: make malloc_elem_join_adjacent_free public Anatoly Burakov
2018-03-03 13:45 ` [dpdk-dev] [PATCH 07/41] eal: make malloc free list remove public Anatoly Burakov
2018-03-03 13:45 ` [dpdk-dev] [PATCH 08/41] eal: make malloc free return resulting malloc element Anatoly Burakov
2018-03-19 17:34 ` Olivier Matz
2018-03-20 9:40 ` Burakov, Anatoly
2018-03-03 13:45 ` [dpdk-dev] [PATCH 09/41] eal: add rte_fbarray Anatoly Burakov
2018-03-03 13:45 ` [dpdk-dev] [PATCH 10/41] eal: add "single file segments" command-line option Anatoly Burakov
2018-03-03 13:45 ` [dpdk-dev] [PATCH 11/41] eal: add "legacy memory" option Anatoly Burakov
2018-03-03 13:46 ` [dpdk-dev] [PATCH 12/41] eal: read hugepage counts from node-specific sysfs path Anatoly Burakov
2018-03-03 13:46 ` [dpdk-dev] [PATCH 13/41] eal: replace memseg with memseg lists Anatoly Burakov
2018-03-19 17:39 ` Olivier Matz
2018-03-20 9:47 ` Burakov, Anatoly
2018-03-03 13:46 ` [dpdk-dev] [PATCH 14/41] eal: add support for mapping hugepages at runtime Anatoly Burakov
2018-03-19 17:42 ` Olivier Matz
2018-03-03 13:46 ` [dpdk-dev] [PATCH 15/41] eal: add support for unmapping pages " Anatoly Burakov
2018-03-03 13:46 ` [dpdk-dev] [PATCH 16/41] eal: make use of memory hotplug for init Anatoly Burakov
2018-03-03 13:46 ` [dpdk-dev] [PATCH 17/41] eal: enable memory hotplug support in rte_malloc Anatoly Burakov
2018-03-19 17:46 ` Olivier Matz
2018-03-03 13:46 ` [dpdk-dev] [PATCH 18/41] test: fix malloc autotest to support memory hotplug Anatoly Burakov
2018-03-19 17:49 ` Olivier Matz
2018-03-03 13:46 ` [dpdk-dev] [PATCH 19/41] eal: add API to check if memory is contiguous Anatoly Burakov
2018-03-03 13:46 ` [dpdk-dev] [PATCH 20/41] eal: add backend support for contiguous allocation Anatoly Burakov
2018-03-03 13:46 ` [dpdk-dev] [PATCH 21/41] eal: enable reserving physically contiguous memzones Anatoly Burakov
2018-03-03 13:46 ` [dpdk-dev] [PATCH 22/41] eal: replace memzone array with fbarray Anatoly Burakov
2018-03-03 13:46 ` [dpdk-dev] [PATCH 23/41] mempool: add support for the new allocation methods Anatoly Burakov
2018-03-03 13:46 ` [dpdk-dev] [PATCH 24/41] vfio: allow to map other memory regions Anatoly Burakov
2018-03-03 13:46 ` [dpdk-dev] [PATCH 25/41] eal: map/unmap memory with VFIO when alloc/free pages Anatoly Burakov
2018-03-03 13:46 ` [dpdk-dev] [PATCH 26/41] eal: prepare memseg lists for multiprocess sync Anatoly Burakov
2018-03-03 13:46 ` [dpdk-dev] [PATCH 27/41] eal: add multiprocess init with memory hotplug Anatoly Burakov
2018-03-03 13:46 ` [dpdk-dev] [PATCH 28/41] eal: add support for multiprocess " Anatoly Burakov
2018-03-03 13:46 ` [dpdk-dev] [PATCH 29/41] eal: add support for callbacks on " Anatoly Burakov
2018-03-03 13:46 ` [dpdk-dev] [PATCH 30/41] eal: enable callbacks on malloc/free and mp sync Anatoly Burakov
2018-03-03 13:46 ` [dpdk-dev] [PATCH 31/41] ethdev: use contiguous allocation for DMA memory Anatoly Burakov
2018-03-03 14:05 ` Andrew Rybchenko
2018-03-05 9:08 ` Burakov, Anatoly
2018-03-05 9:15 ` Andrew Rybchenko
2018-03-05 10:00 ` Burakov, Anatoly
2018-03-03 13:46 ` [dpdk-dev] [PATCH 32/41] crypto/qat: " Anatoly Burakov
2018-03-05 11:06 ` Trahe, Fiona
2018-03-03 13:46 ` [dpdk-dev] [PATCH 33/41] net/avf: " Anatoly Burakov
2018-03-03 13:46 ` [dpdk-dev] [PATCH 34/41] net/bnx2x: " Anatoly Burakov
2018-03-03 13:46 ` [dpdk-dev] [PATCH 35/41] net/cxgbe: " Anatoly Burakov
2018-03-03 13:46 ` [dpdk-dev] [PATCH 36/41] net/ena: " Anatoly Burakov
2018-03-03 13:46 ` [dpdk-dev] [PATCH 37/41] net/enic: " Anatoly Burakov
2018-03-05 19:45 ` John Daley (johndale)
2018-03-03 13:46 ` [dpdk-dev] [PATCH 38/41] net/i40e: " Anatoly Burakov
2018-03-03 13:46 ` [dpdk-dev] [PATCH 39/41] net/qede: " Anatoly Burakov
2018-03-03 13:46 ` [dpdk-dev] [PATCH 40/41] net/virtio: " Anatoly Burakov
2018-03-03 16:52 ` Venkatesh Srinivas
2018-03-03 13:46 ` [dpdk-dev] [PATCH 41/41] net/vmxnet3: " Anatoly Burakov
2018-03-06 11:04 ` [dpdk-dev] [PATCH 00/41] Memory Hotplug for DPDK Burakov, Anatoly
2018-03-07 15:27 ` Nélio Laranjeiro
2018-03-07 16:05 ` Burakov, Anatoly
2018-03-08 9:37 ` Burakov, Anatoly
2018-03-08 10:53 ` Nélio Laranjeiro
2018-03-08 12:12 ` Burakov, Anatoly
2018-03-08 12:14 ` Bruce Richardson
2018-03-07 16:11 ` Burakov, Anatoly
2018-03-07 16:56 ` [dpdk-dev] [PATCH v2 " Anatoly Burakov
2018-03-08 10:18 ` Pavan Nikhilesh
2018-03-08 10:46 ` Burakov, Anatoly
2018-03-08 11:13 ` Pavan Nikhilesh
2018-03-08 13:36 ` Pavan Nikhilesh
2018-03-08 14:36 ` Burakov, Anatoly
2018-03-08 20:11 ` Burakov, Anatoly
2018-03-08 20:33 ` Burakov, Anatoly
2018-03-09 9:15 ` Pavan Nikhilesh
2018-03-09 10:42 ` Burakov, Anatoly
2018-03-12 15:58 ` Nélio Laranjeiro
2018-03-13 5:17 ` Shreyansh Jain
2018-03-15 14:01 ` Shreyansh Jain
2018-03-21 13:45 ` Shreyansh Jain
2018-03-21 14:48 ` Burakov, Anatoly
2018-03-22 5:09 ` Shreyansh Jain
2018-03-22 9:24 ` Burakov, Anatoly
2018-03-19 8:58 ` Shreyansh Jain
2018-03-20 10:07 ` Burakov, Anatoly
2018-03-29 10:57 ` Shreyansh Jain
2018-04-03 23:21 ` [dpdk-dev] [PATCH v3 00/68] " Anatoly Burakov
2018-04-05 14:24 ` Shreyansh Jain
2018-04-05 14:12 ` Thomas Monjalon
2018-04-05 14:20 ` Hemant Agrawal
2018-04-06 12:01 ` Hemant Agrawal
2018-04-06 12:55 ` Burakov, Anatoly
2018-04-05 18:59 ` santosh
2018-04-08 20:17 ` [dpdk-dev] [PATCH v4 00/70] " Anatoly Burakov
2018-04-09 18:00 ` [dpdk-dev] [PATCH v5 " Anatoly Burakov
2018-04-09 18:35 ` gowrishankar muthukrishnan
2018-04-11 12:29 ` [dpdk-dev] [PATCH v6 " Anatoly Burakov
2018-04-11 18:07 ` Thomas Monjalon
2018-04-11 12:29 ` [dpdk-dev] [PATCH v6 01/70] eal: move get_virtual_area out of linuxapp eal_memory.c Anatoly Burakov
2018-04-11 12:29 ` [dpdk-dev] [PATCH v6 02/70] malloc: move all locking to heap Anatoly Burakov
2018-04-11 12:29 ` [dpdk-dev] [PATCH v6 03/70] malloc: make heap a doubly-linked list Anatoly Burakov
2018-04-11 12:29 ` [dpdk-dev] [PATCH v6 04/70] malloc: add function to dump heap contents Anatoly Burakov
2018-04-11 12:29 ` [dpdk-dev] [PATCH v6 05/70] test: add command to dump malloc " Anatoly Burakov
2018-04-11 12:29 ` [dpdk-dev] [PATCH v6 06/70] malloc: make malloc_elem_join_adjacent_free public Anatoly Burakov
2018-04-11 12:29 ` [dpdk-dev] [PATCH v6 07/70] malloc: make elem_free_list_remove public Anatoly Burakov
2018-04-11 12:29 ` [dpdk-dev] [PATCH v6 08/70] malloc: make free return resulting element Anatoly Burakov
2018-04-11 12:29 ` [dpdk-dev] [PATCH v6 09/70] malloc: replace panics with error messages Anatoly Burakov
2018-04-11 12:29 ` [dpdk-dev] [PATCH v6 10/70] malloc: add support for contiguous allocation Anatoly Burakov
2018-04-11 12:29 ` [dpdk-dev] [PATCH v6 11/70] memzone: enable reserving IOVA-contiguous memzones Anatoly Burakov
2018-04-11 12:29 ` [dpdk-dev] [PATCH v6 12/70] ethdev: use contiguous allocation for DMA memory Anatoly Burakov
2018-04-11 12:29 ` [dpdk-dev] [PATCH v6 13/70] crypto/qat: " Anatoly Burakov
2018-04-11 12:29 ` [dpdk-dev] [PATCH v6 14/70] net/avf: " Anatoly Burakov
2018-04-11 12:29 ` [dpdk-dev] [PATCH v6 15/70] net/bnx2x: " Anatoly Burakov
2018-04-11 12:29 ` [dpdk-dev] [PATCH v6 16/70] net/bnxt: " Anatoly Burakov
2018-04-11 12:29 ` [dpdk-dev] [PATCH v6 17/70] net/cxgbe: " Anatoly Burakov
2018-04-11 12:29 ` [dpdk-dev] [PATCH v6 18/70] net/ena: " Anatoly Burakov
2018-04-11 12:29 ` [dpdk-dev] [PATCH v6 19/70] net/enic: " Anatoly Burakov
2018-04-11 12:29 ` [dpdk-dev] [PATCH v6 20/70] net/i40e: " Anatoly Burakov
2018-04-11 12:29 ` [dpdk-dev] [PATCH v6 21/70] net/qede: " Anatoly Burakov
2018-04-11 12:29 ` [dpdk-dev] [PATCH v6 22/70] net/virtio: " Anatoly Burakov
2018-04-11 12:29 ` [dpdk-dev] [PATCH v6 23/70] net/vmxnet3: " Anatoly Burakov
2018-04-11 12:29 ` [dpdk-dev] [PATCH v6 24/70] mempool: add support for the new allocation methods Anatoly Burakov
2018-04-11 14:35 ` Olivier Matz
2018-04-11 14:35 ` Olivier Matz
2018-04-11 14:43 ` Andrew Rybchenko
2018-04-11 15:03 ` Burakov, Anatoly
2018-04-11 12:30 ` [dpdk-dev] [PATCH v6 25/70] eal: add function to walk all memsegs Anatoly Burakov
2018-04-11 12:30 ` [dpdk-dev] [PATCH v6 26/70] bus/fslmc: use memseg walk instead of iteration Anatoly Burakov
2018-04-11 12:30 ` [dpdk-dev] [PATCH v6 27/70] bus/pci: " Anatoly Burakov
2018-04-11 12:30 ` [dpdk-dev] [PATCH v6 28/70] net/mlx5: " Anatoly Burakov
2018-04-11 12:30 ` [dpdk-dev] [PATCH v6 29/70] eal: " Anatoly Burakov
2018-04-11 12:30 ` [dpdk-dev] [PATCH v6 30/70] mempool: " Anatoly Burakov
2018-04-11 12:30 ` [dpdk-dev] [PATCH v6 31/70] test: " Anatoly Burakov
2018-04-11 12:30 ` [dpdk-dev] [PATCH v6 32/70] vfio/type1: " Anatoly Burakov
2018-04-11 12:30 ` [dpdk-dev] [PATCH v6 33/70] vfio/spapr: " Anatoly Burakov
2018-04-11 12:30 ` [dpdk-dev] [PATCH v6 34/70] eal: add contig walk function Anatoly Burakov
2018-04-11 12:30 ` [dpdk-dev] [PATCH v6 35/70] virtio: use memseg contig walk instead of iteration Anatoly Burakov
2018-04-11 12:30 ` [dpdk-dev] [PATCH v6 36/70] eal: add iova2virt function Anatoly Burakov
2018-04-11 12:30 ` [dpdk-dev] [PATCH v6 37/70] bus/dpaa: use iova2virt instead of memseg iteration Anatoly Burakov
2018-04-11 12:30 ` [dpdk-dev] [PATCH v6 38/70] bus/fslmc: " Anatoly Burakov
2018-04-11 12:30 ` [dpdk-dev] [PATCH v6 39/70] crypto/dpaa_sec: " Anatoly Burakov
2018-04-11 12:30 ` [dpdk-dev] [PATCH v6 40/70] eal: add virt2memseg function Anatoly Burakov
2018-04-11 12:30 ` [dpdk-dev] [PATCH v6 41/70] bus/fslmc: use virt2memseg instead of iteration Anatoly Burakov
2018-04-11 12:30 ` [dpdk-dev] [PATCH v6 42/70] crypto/dpaa_sec: " Anatoly Burakov
2018-04-11 12:30 ` [dpdk-dev] [PATCH v6 43/70] net/mlx4: " Anatoly Burakov
2018-04-11 12:30 ` [dpdk-dev] [PATCH v6 44/70] net/mlx5: " Anatoly Burakov
2018-04-17 2:48 ` Yongseok Koh
2018-04-17 9:03 ` Burakov, Anatoly
2018-04-17 18:08 ` Yongseok Koh
2018-04-11 12:30 ` [dpdk-dev] [PATCH v6 45/70] memzone: use walk instead of iteration for dumping Anatoly Burakov
2018-04-11 12:30 ` [dpdk-dev] [PATCH v6 46/70] vfio: allow to map other memory regions Anatoly Burakov
2018-04-11 12:30 ` [dpdk-dev] [PATCH v6 47/70] eal: add legacy memory option Anatoly Burakov
2018-04-11 12:30 ` [dpdk-dev] [PATCH v6 48/70] eal: add shared indexed file-backed array Anatoly Burakov
2018-04-11 12:30 ` [dpdk-dev] [PATCH v6 49/70] eal: replace memseg with memseg lists Anatoly Burakov
2018-04-11 12:30 ` [dpdk-dev] [PATCH v6 50/70] eal: replace memzone array with fbarray Anatoly Burakov
2018-04-11 12:30 ` [dpdk-dev] [PATCH v6 51/70] mem: add support for mapping hugepages at runtime Anatoly Burakov
2018-04-17 2:06 ` Yongseok Koh
2018-04-17 7:20 ` Thomas Monjalon
2018-04-17 18:13 ` Yongseok Koh
2018-04-11 12:30 ` [dpdk-dev] [PATCH v6 52/70] mem: add support for unmapping pages " Anatoly Burakov
2018-04-11 12:30 ` [dpdk-dev] [PATCH v6 53/70] eal: add single file segments command-line option Anatoly Burakov
2018-04-11 12:30 ` [dpdk-dev] [PATCH v6 54/70] mem: add internal API to check if memory is contiguous Anatoly Burakov
2018-04-11 12:30 ` [dpdk-dev] [PATCH v6 55/70] mem: prepare memseg lists for multiprocess sync Anatoly Burakov
2018-04-11 12:30 ` [dpdk-dev] [PATCH v6 56/70] eal: read hugepage counts from node-specific sysfs path Anatoly Burakov
2018-04-11 12:30 ` [dpdk-dev] [PATCH v6 57/70] eal: make use of memory hotplug for init Anatoly Burakov
2018-04-11 12:30 ` [dpdk-dev] [PATCH v6 58/70] eal: share hugepage info primary and secondary Anatoly Burakov
2018-04-11 12:30 ` [dpdk-dev] [PATCH v6 59/70] eal: add secondary process init with memory hotplug Anatoly Burakov
2018-04-11 12:30 ` [dpdk-dev] [PATCH v6 60/70] malloc: enable memory hotplug support Anatoly Burakov
2018-04-11 12:30 ` [dpdk-dev] [PATCH v6 61/70] malloc: add support for multiprocess memory hotplug Anatoly Burakov
2018-04-11 12:30 ` [dpdk-dev] [PATCH v6 62/70] malloc: add support for callbacks on memory events Anatoly Burakov
2018-04-11 12:30 ` [dpdk-dev] [PATCH v6 63/70] malloc: enable callbacks on alloc/free and mp sync Anatoly Burakov
2018-04-11 12:30 ` [dpdk-dev] [PATCH v6 64/70] vfio: enable support for mem event callbacks Anatoly Burakov
2018-04-11 12:30 ` [dpdk-dev] [PATCH v6 65/70] bus/fslmc: move vfio DMA map into bus probe Anatoly Burakov
2018-04-11 12:30 ` [dpdk-dev] [PATCH v6 66/70] bus/fslmc: enable support for mem event callbacks for vfio Anatoly Burakov
2018-04-11 12:30 ` [dpdk-dev] [PATCH v6 67/70] eal: enable non-legacy memory mode Anatoly Burakov
2018-04-11 12:30 ` [dpdk-dev] [PATCH v6 68/70] eal: add memory validator callback Anatoly Burakov
2018-04-11 12:30 ` [dpdk-dev] [PATCH v6 69/70] malloc: enable validation before new page allocation Anatoly Burakov
2018-04-11 12:30 ` [dpdk-dev] [PATCH v6 70/70] mem: prevent preallocated pages from being freed Anatoly Burakov
2018-04-09 18:00 ` [dpdk-dev] [PATCH v5 01/70] eal: move get_virtual_area out of linuxapp eal_memory.c Anatoly Burakov
2018-04-09 18:00 ` [dpdk-dev] [PATCH v5 02/70] eal: move all locking to heap Anatoly Burakov
2018-04-09 18:00 ` [dpdk-dev] [PATCH v5 03/70] eal: make malloc heap a doubly-linked list Anatoly Burakov
2018-04-09 18:00 ` [dpdk-dev] [PATCH v5 04/70] eal: add function to dump malloc heap contents Anatoly Burakov
2018-04-09 18:00 ` [dpdk-dev] [PATCH v5 05/70] test: add command " Anatoly Burakov
2018-04-09 18:00 ` [dpdk-dev] [PATCH v5 06/70] eal: make malloc_elem_join_adjacent_free public Anatoly Burakov
2018-04-09 18:00 ` [dpdk-dev] [PATCH v5 07/70] eal: make malloc free list remove public Anatoly Burakov
2018-04-09 18:00 ` [dpdk-dev] [PATCH v5 08/70] eal: make malloc free return resulting malloc element Anatoly Burakov
2018-04-09 18:00 ` [dpdk-dev] [PATCH v5 09/70] eal: replace panics with error messages in malloc Anatoly Burakov
2018-04-09 18:00 ` [dpdk-dev] [PATCH v5 10/70] eal: add backend support for contiguous allocation Anatoly Burakov
2018-04-09 18:00 ` [dpdk-dev] [PATCH v5 11/70] eal: enable reserving physically contiguous memzones Anatoly Burakov
2018-04-09 18:00 ` [dpdk-dev] [PATCH v5 12/70] ethdev: use contiguous allocation for DMA memory Anatoly Burakov
2018-04-09 18:00 ` [dpdk-dev] [PATCH v5 13/70] crypto/qat: " Anatoly Burakov
2018-04-09 18:00 ` [dpdk-dev] [PATCH v5 14/70] net/avf: " Anatoly Burakov
2018-04-09 18:00 ` [dpdk-dev] [PATCH v5 15/70] net/bnx2x: " Anatoly Burakov
2018-04-11 9:12 ` Thomas Monjalon
2018-04-11 9:18 ` Burakov, Anatoly
2018-04-09 18:00 ` [dpdk-dev] [PATCH v5 16/70] net/bnxt: " Anatoly Burakov
2018-04-09 18:00 ` [dpdk-dev] [PATCH v5 17/70] net/cxgbe: " Anatoly Burakov
2018-04-09 18:00 ` [dpdk-dev] [PATCH v5 18/70] net/ena: " Anatoly Burakov
2018-04-09 18:00 ` [dpdk-dev] [PATCH v5 19/70] net/enic: " Anatoly Burakov
2018-04-09 18:00 ` [dpdk-dev] [PATCH v5 20/70] net/i40e: " Anatoly Burakov
2018-04-09 18:00 ` [dpdk-dev] [PATCH v5 21/70] net/qede: " Anatoly Burakov
2018-04-09 18:00 ` [dpdk-dev] [PATCH v5 22/70] net/virtio: " Anatoly Burakov
2018-04-09 18:00 ` [dpdk-dev] [PATCH v5 23/70] net/vmxnet3: " Anatoly Burakov
2018-04-09 18:00 ` [dpdk-dev] [PATCH v5 24/70] mempool: add support for the new allocation methods Anatoly Burakov
2018-04-09 18:00 ` [dpdk-dev] [PATCH v5 25/70] eal: add function to walk all memsegs Anatoly Burakov
2018-04-09 18:00 ` [dpdk-dev] [PATCH v5 26/70] bus/fslmc: use memseg walk instead of iteration Anatoly Burakov
2018-04-09 18:00 ` [dpdk-dev] [PATCH v5 27/70] bus/pci: " Anatoly Burakov
2018-04-09 18:00 ` [dpdk-dev] [PATCH v5 28/70] net/mlx5: " Anatoly Burakov
2018-04-09 18:00 ` [dpdk-dev] [PATCH v5 29/70] eal: " Anatoly Burakov
2018-04-09 18:00 ` [dpdk-dev] [PATCH v5 30/70] mempool: " Anatoly Burakov
2018-04-09 18:00 ` [dpdk-dev] [PATCH v5 31/70] test: " Anatoly Burakov
2018-04-09 18:00 ` [dpdk-dev] [PATCH v5 32/70] vfio/type1: " Anatoly Burakov
2018-04-09 18:00 ` [dpdk-dev] [PATCH v5 33/70] vfio/spapr: " Anatoly Burakov
2018-04-09 18:00 ` [dpdk-dev] [PATCH v5 34/70] eal: add contig walk function Anatoly Burakov
2018-04-09 18:00 ` [dpdk-dev] [PATCH v5 35/70] virtio: use memseg contig walk instead of iteration Anatoly Burakov
2018-04-09 18:00 ` [dpdk-dev] [PATCH v5 36/70] eal: add iova2virt function Anatoly Burakov
2018-04-09 18:00 ` [dpdk-dev] [PATCH v5 37/70] bus/dpaa: use iova2virt instead of memseg iteration Anatoly Burakov
2018-04-09 18:00 ` [dpdk-dev] [PATCH v5 38/70] bus/fslmc: " Anatoly Burakov
2018-04-09 18:00 ` [dpdk-dev] [PATCH v5 39/70] crypto/dpaa_sec: " Anatoly Burakov
2018-04-09 18:00 ` [dpdk-dev] [PATCH v5 40/70] eal: add virt2memseg function Anatoly Burakov
2018-04-09 18:00 ` [dpdk-dev] [PATCH v5 41/70] bus/fslmc: use virt2memseg instead of iteration Anatoly Burakov
2018-04-09 18:00 ` [dpdk-dev] [PATCH v5 42/70] crypto/dpaa_sec: " Anatoly Burakov
2018-04-09 18:00 ` [dpdk-dev] [PATCH v5 43/70] net/mlx4: " Anatoly Burakov
2018-04-09 18:00 ` [dpdk-dev] [PATCH v5 44/70] net/mlx5: " Anatoly Burakov
2018-04-09 18:00 ` [dpdk-dev] [PATCH v5 45/70] eal: use memzone walk " Anatoly Burakov
2018-04-09 18:00 ` [dpdk-dev] [PATCH v5 46/70] vfio: allow to map other memory regions Anatoly Burakov
2018-04-09 18:00 ` [dpdk-dev] [PATCH v5 47/70] eal: add "legacy memory" option Anatoly Burakov
2018-04-09 18:00 ` [dpdk-dev] [PATCH v5 48/70] eal: add rte_fbarray Anatoly Burakov
2018-04-09 18:00 ` [dpdk-dev] [PATCH v5 49/70] eal: replace memseg with memseg lists Anatoly Burakov
2018-04-09 18:00 ` [dpdk-dev] [PATCH v5 50/70] eal: replace memzone array with fbarray Anatoly Burakov
2018-04-09 18:00 ` [dpdk-dev] [PATCH v5 51/70] eal: add support for mapping hugepages at runtime Anatoly Burakov
2018-04-09 18:00 ` [dpdk-dev] [PATCH v5 52/70] eal: add support for unmapping pages " Anatoly Burakov
2018-04-09 18:00 ` [dpdk-dev] [PATCH v5 53/70] eal: add "single file segments" command-line option Anatoly Burakov
2018-04-09 18:00 ` [dpdk-dev] [PATCH v5 54/70] eal: add API to check if memory is contiguous Anatoly Burakov
2018-04-09 18:00 ` [dpdk-dev] [PATCH v5 55/70] eal: prepare memseg lists for multiprocess sync Anatoly Burakov
2018-04-09 18:00 ` [dpdk-dev] [PATCH v5 56/70] eal: read hugepage counts from node-specific sysfs path Anatoly Burakov
2018-04-09 18:01 ` [dpdk-dev] [PATCH v5 57/70] eal: make use of memory hotplug for init Anatoly Burakov
2018-04-09 18:01 ` [dpdk-dev] [PATCH v5 58/70] eal: share hugepage info primary and secondary Anatoly Burakov
2018-04-09 18:01 ` [dpdk-dev] [PATCH v5 59/70] eal: add secondary process init with memory hotplug Anatoly Burakov
2018-04-09 18:01 ` [dpdk-dev] [PATCH v5 60/70] eal: enable memory hotplug support in rte_malloc Anatoly Burakov
2018-04-09 18:01 ` [dpdk-dev] [PATCH v5 61/70] eal: add support for multiprocess memory hotplug Anatoly Burakov
2018-04-09 18:01 ` [dpdk-dev] [PATCH v5 62/70] eal: add support for callbacks on " Anatoly Burakov
2018-04-09 18:01 ` [dpdk-dev] [PATCH v5 63/70] eal: enable callbacks on malloc/free and mp sync Anatoly Burakov
2018-04-09 18:01 ` [dpdk-dev] [PATCH v5 64/70] vfio: enable support for mem event callbacks Anatoly Burakov
2018-04-09 18:01 ` [dpdk-dev] [PATCH v5 65/70] bus/fslmc: move vfio DMA map into bus probe Anatoly Burakov
2018-04-09 18:01 ` [dpdk-dev] [PATCH v5 66/70] bus/fslmc: enable support for mem event callbacks for vfio Anatoly Burakov
2018-04-09 18:01 ` [dpdk-dev] [PATCH v5 67/70] eal: enable non-legacy memory mode Anatoly Burakov
2018-04-09 18:01 ` [dpdk-dev] [PATCH v5 68/70] eal: add memory validator callback Anatoly Burakov
2018-04-09 18:01 ` [dpdk-dev] [PATCH v5 69/70] eal: enable validation before new page allocation Anatoly Burakov
2018-04-09 18:01 ` [dpdk-dev] [PATCH v5 70/70] eal: prevent preallocated pages from being freed Anatoly Burakov
2018-04-08 20:17 ` [dpdk-dev] [PATCH v4 01/70] eal: move get_virtual_area out of linuxapp eal_memory.c Anatoly Burakov
2018-04-08 20:17 ` [dpdk-dev] [PATCH v4 02/70] eal: move all locking to heap Anatoly Burakov
2018-04-08 20:17 ` [dpdk-dev] [PATCH v4 03/70] eal: make malloc heap a doubly-linked list Anatoly Burakov
2018-04-08 20:17 ` [dpdk-dev] [PATCH v4 04/70] eal: add function to dump malloc heap contents Anatoly Burakov
2018-04-08 20:17 ` [dpdk-dev] [PATCH v4 05/70] test: add command " Anatoly Burakov
2018-04-08 20:17 ` [dpdk-dev] [PATCH v4 06/70] eal: make malloc_elem_join_adjacent_free public Anatoly Burakov
2018-04-08 20:17 ` [dpdk-dev] [PATCH v4 07/70] eal: make malloc free list remove public Anatoly Burakov
2018-04-08 20:17 ` [dpdk-dev] [PATCH v4 08/70] eal: make malloc free return resulting malloc element Anatoly Burakov
2018-04-08 20:17 ` [dpdk-dev] [PATCH v4 09/70] eal: replace panics with error messages in malloc Anatoly Burakov
2018-04-08 20:17 ` Anatoly Burakov [this message]
2018-04-08 20:17 ` [dpdk-dev] [PATCH v4 11/70] eal: enable reserving physically contiguous memzones Anatoly Burakov
2018-04-08 20:17 ` [dpdk-dev] [PATCH v4 12/70] ethdev: use contiguous allocation for DMA memory Anatoly Burakov
2018-04-08 20:17 ` [dpdk-dev] [PATCH v4 13/70] crypto/qat: " Anatoly Burakov
2018-04-08 20:17 ` [dpdk-dev] [PATCH v4 14/70] net/avf: " Anatoly Burakov
2018-04-08 20:17 ` [dpdk-dev] [PATCH v4 15/70] net/bnx2x: " Anatoly Burakov
2018-04-08 20:17 ` [dpdk-dev] [PATCH v4 16/70] net/bnxt: " Anatoly Burakov
2018-04-08 20:17 ` [dpdk-dev] [PATCH v4 17/70] net/cxgbe: " Anatoly Burakov
2018-04-08 20:17 ` [dpdk-dev] [PATCH v4 18/70] net/ena: " Anatoly Burakov
2018-04-08 20:17 ` [dpdk-dev] [PATCH v4 19/70] net/enic: " Anatoly Burakov
2018-04-08 20:17 ` [dpdk-dev] [PATCH v4 20/70] net/i40e: " Anatoly Burakov
2018-04-08 20:17 ` [dpdk-dev] [PATCH v4 21/70] net/qede: " Anatoly Burakov
2018-04-08 20:17 ` [dpdk-dev] [PATCH v4 22/70] net/virtio: " Anatoly Burakov
2018-04-08 20:17 ` [dpdk-dev] [PATCH v4 23/70] net/vmxnet3: " Anatoly Burakov
2018-04-08 20:17 ` [dpdk-dev] [PATCH v4 24/70] mempool: add support for the new allocation methods Anatoly Burakov
2018-04-08 20:17 ` [dpdk-dev] [PATCH v4 25/70] eal: add function to walk all memsegs Anatoly Burakov
2018-04-08 20:17 ` [dpdk-dev] [PATCH v4 26/70] bus/fslmc: use memseg walk instead of iteration Anatoly Burakov
2018-04-08 20:18 ` [dpdk-dev] [PATCH v4 27/70] bus/pci: " Anatoly Burakov
2018-04-08 20:18 ` [dpdk-dev] [PATCH v4 28/70] net/mlx5: " Anatoly Burakov
2018-04-08 20:18 ` [dpdk-dev] [PATCH v4 29/70] eal: " Anatoly Burakov
2018-04-08 20:18 ` [dpdk-dev] [PATCH v4 30/70] mempool: " Anatoly Burakov
2018-04-08 20:18 ` [dpdk-dev] [PATCH v4 31/70] test: " Anatoly Burakov
2018-04-08 20:18 ` [dpdk-dev] [PATCH v4 32/70] vfio/type1: " Anatoly Burakov
2018-04-08 20:18 ` [dpdk-dev] [PATCH v4 33/70] vfio/spapr: " Anatoly Burakov
2018-04-08 20:18 ` [dpdk-dev] [PATCH v4 34/70] eal: add contig walk function Anatoly Burakov
2018-04-08 20:18 ` [dpdk-dev] [PATCH v4 35/70] virtio: use memseg contig walk instead of iteration Anatoly Burakov
2018-04-08 20:18 ` [dpdk-dev] [PATCH v4 36/70] eal: add iova2virt function Anatoly Burakov
2018-04-08 20:18 ` [dpdk-dev] [PATCH v4 37/70] bus/dpaa: use iova2virt instead of memseg iteration Anatoly Burakov
2018-04-08 20:18 ` [dpdk-dev] [PATCH v4 38/70] bus/fslmc: " Anatoly Burakov
2018-04-08 20:18 ` [dpdk-dev] [PATCH v4 39/70] crypto/dpaa_sec: " Anatoly Burakov
2018-04-08 20:18 ` [dpdk-dev] [PATCH v4 40/70] eal: add virt2memseg function Anatoly Burakov
2018-04-08 20:18 ` [dpdk-dev] [PATCH v4 41/70] bus/fslmc: use virt2memseg instead of iteration Anatoly Burakov
2018-04-08 20:18 ` [dpdk-dev] [PATCH v4 42/70] crypto/dpaa_sec: " Anatoly Burakov
2018-04-08 20:18 ` [dpdk-dev] [PATCH v4 43/70] net/mlx4: " Anatoly Burakov
2018-04-08 20:18 ` [dpdk-dev] [PATCH v4 44/70] net/mlx5: " Anatoly Burakov
2018-04-09 10:26 ` gowrishankar muthukrishnan
2018-04-08 20:18 ` [dpdk-dev] [PATCH v4 45/70] eal: use memzone walk " Anatoly Burakov
2018-04-08 20:18 ` [dpdk-dev] [PATCH v4 46/70] vfio: allow to map other memory regions Anatoly Burakov
2018-04-08 20:18 ` [dpdk-dev] [PATCH v4 47/70] eal: add "legacy memory" option Anatoly Burakov
2018-04-08 20:18 ` [dpdk-dev] [PATCH v4 48/70] eal: add rte_fbarray Anatoly Burakov
2018-04-08 20:18 ` [dpdk-dev] [PATCH v4 49/70] eal: replace memseg with memseg lists Anatoly Burakov
2018-04-08 20:18 ` [dpdk-dev] [PATCH v4 50/70] eal: replace memzone array with fbarray Anatoly Burakov
2018-04-08 20:18 ` [dpdk-dev] [PATCH v4 51/70] eal: add support for mapping hugepages at runtime Anatoly Burakov
2018-04-08 20:18 ` [dpdk-dev] [PATCH v4 52/70] eal: add support for unmapping pages " Anatoly Burakov
2018-04-08 20:18 ` [dpdk-dev] [PATCH v4 53/70] eal: add "single file segments" command-line option Anatoly Burakov
2018-04-08 20:18 ` [dpdk-dev] [PATCH v4 54/70] eal: add API to check if memory is contiguous Anatoly Burakov
2018-04-08 20:18 ` [dpdk-dev] [PATCH v4 55/70] eal: prepare memseg lists for multiprocess sync Anatoly Burakov
2018-04-08 20:18 ` [dpdk-dev] [PATCH v4 56/70] eal: read hugepage counts from node-specific sysfs path Anatoly Burakov
2018-04-08 20:18 ` [dpdk-dev] [PATCH v4 57/70] eal: make use of memory hotplug for init Anatoly Burakov
2018-04-08 20:18 ` [dpdk-dev] [PATCH v4 58/70] eal: share hugepage info primary and secondary Anatoly Burakov
2018-04-08 20:18 ` [dpdk-dev] [PATCH v4 59/70] eal: add secondary process init with memory hotplug Anatoly Burakov
2018-04-08 20:18 ` [dpdk-dev] [PATCH v4 60/70] eal: enable memory hotplug support in rte_malloc Anatoly Burakov
2018-04-08 20:18 ` [dpdk-dev] [PATCH v4 61/70] eal: add support for multiprocess memory hotplug Anatoly Burakov
2018-04-08 20:18 ` [dpdk-dev] [PATCH v4 62/70] eal: add support for callbacks on " Anatoly Burakov
2018-04-08 20:18 ` [dpdk-dev] [PATCH v4 63/70] eal: enable callbacks on malloc/free and mp sync Anatoly Burakov
2018-04-08 20:18 ` [dpdk-dev] [PATCH v4 64/70] vfio: enable support for mem event callbacks Anatoly Burakov
2018-04-08 20:18 ` [dpdk-dev] [PATCH v4 65/70] bus/fslmc: move vfio DMA map into bus probe Anatoly Burakov
2018-04-08 20:18 ` [dpdk-dev] [PATCH v4 66/70] bus/fslmc: enable support for mem event callbacks for vfio Anatoly Burakov
2018-04-09 10:01 ` Shreyansh Jain
2018-04-09 10:55 ` Burakov, Anatoly
2018-04-09 12:09 ` Shreyansh Jain
2018-04-09 12:35 ` Burakov, Anatoly
2018-04-08 20:18 ` [dpdk-dev] [PATCH v4 67/70] eal: enable non-legacy memory mode Anatoly Burakov
2018-04-08 20:18 ` [dpdk-dev] [PATCH v4 68/70] eal: add memory validator callback Anatoly Burakov
2018-04-08 20:18 ` [dpdk-dev] [PATCH v4 69/70] eal: enable validation before new page allocation Anatoly Burakov
2018-04-08 20:18 ` [dpdk-dev] [PATCH v4 70/70] eal: prevent preallocated pages from being freed Anatoly Burakov
2018-04-03 23:21 ` [dpdk-dev] [PATCH v3 01/68] eal: move get_virtual_area out of linuxapp eal_memory.c Anatoly Burakov
2018-04-03 23:21 ` [dpdk-dev] [PATCH v3 02/68] eal: move all locking to heap Anatoly Burakov
2018-04-03 23:21 ` [dpdk-dev] [PATCH v3 03/68] eal: make malloc heap a doubly-linked list Anatoly Burakov
2018-04-03 23:32 ` Stephen Hemminger
2018-04-04 8:05 ` Burakov, Anatoly
2018-04-03 23:21 ` [dpdk-dev] [PATCH v3 04/68] eal: add function to dump malloc heap contents Anatoly Burakov
2018-04-03 23:21 ` [dpdk-dev] [PATCH v3 05/68] test: add command " Anatoly Burakov
2018-04-03 23:21 ` [dpdk-dev] [PATCH v3 06/68] eal: make malloc_elem_join_adjacent_free public Anatoly Burakov
2018-04-03 23:21 ` [dpdk-dev] [PATCH v3 07/68] eal: make malloc free list remove public Anatoly Burakov
2018-04-03 23:21 ` [dpdk-dev] [PATCH v3 08/68] eal: make malloc free return resulting malloc element Anatoly Burakov
2018-04-03 23:21 ` [dpdk-dev] [PATCH v3 09/68] eal: replace panics with error messages in malloc Anatoly Burakov
2018-04-03 23:21 ` [dpdk-dev] [PATCH v3 10/68] eal: add backend support for contiguous allocation Anatoly Burakov
2018-04-03 23:21 ` [dpdk-dev] [PATCH v3 11/68] eal: enable reserving physically contiguous memzones Anatoly Burakov
2018-04-03 23:41 ` Stephen Hemminger
2018-04-04 8:01 ` Burakov, Anatoly
2018-04-03 23:21 ` [dpdk-dev] [PATCH v3 12/68] ethdev: use contiguous allocation for DMA memory Anatoly Burakov
2018-04-03 23:21 ` [dpdk-dev] [PATCH v3 13/68] crypto/qat: " Anatoly Burakov
2018-04-03 23:21 ` [dpdk-dev] [PATCH v3 14/68] net/avf: " Anatoly Burakov
2018-04-03 23:21 ` [dpdk-dev] [PATCH v3 15/68] net/bnx2x: " Anatoly Burakov
2018-04-03 23:21 ` [dpdk-dev] [PATCH v3 16/68] net/cxgbe: " Anatoly Burakov
2018-04-03 23:21 ` [dpdk-dev] [PATCH v3 17/68] net/ena: " Anatoly Burakov
2018-04-03 23:21 ` [dpdk-dev] [PATCH v3 18/68] net/enic: " Anatoly Burakov
2018-04-03 23:21 ` [dpdk-dev] [PATCH v3 19/68] net/i40e: " Anatoly Burakov
2018-04-03 23:21 ` [dpdk-dev] [PATCH v3 20/68] net/qede: " Anatoly Burakov
2018-04-03 23:21 ` [dpdk-dev] [PATCH v3 21/68] net/virtio: " Anatoly Burakov
2018-04-03 23:21 ` [dpdk-dev] [PATCH v3 22/68] net/vmxnet3: " Anatoly Burakov
2018-04-03 23:21 ` [dpdk-dev] [PATCH v3 23/68] net/bnxt: " Anatoly Burakov
2018-04-03 23:21 ` [dpdk-dev] [PATCH v3 24/68] mempool: add support for the new allocation methods Anatoly Burakov
2018-04-03 23:21 ` [dpdk-dev] [PATCH v3 25/68] eal: add function to walk all memsegs Anatoly Burakov
2018-04-03 23:21 ` [dpdk-dev] [PATCH v3 26/68] bus/fslmc: use memseg walk instead of iteration Anatoly Burakov
2018-04-05 14:06 ` Shreyansh Jain
2018-04-05 14:14 ` [dpdk-dev] [PATCH] bus/fslmc: support for hotplugging of memory Shreyansh Jain
2018-04-08 17:14 ` Burakov, Anatoly
2018-04-09 7:49 ` Shreyansh Jain
2018-04-09 15:49 ` Burakov, Anatoly
2018-04-09 16:06 ` Shreyansh Jain
2018-04-03 23:21 ` [dpdk-dev] [PATCH v3 27/68] bus/pci: use memseg walk instead of iteration Anatoly Burakov
2018-04-03 23:21 ` [dpdk-dev] [PATCH v3 28/68] net/mlx5: " Anatoly Burakov
2018-04-03 23:21 ` [dpdk-dev] [PATCH v3 29/68] eal: " Anatoly Burakov
2018-04-03 23:21 ` [dpdk-dev] [PATCH v3 30/68] mempool: " Anatoly Burakov
2018-04-03 23:21 ` [dpdk-dev] [PATCH v3 31/68] test: " Anatoly Burakov
2018-04-03 23:21 ` [dpdk-dev] [PATCH v3 32/68] vfio/type1: " Anatoly Burakov
2018-04-03 23:21 ` [dpdk-dev] [PATCH v3 33/68] vfio/spapr: " Anatoly Burakov
2018-04-03 23:21 ` [dpdk-dev] [PATCH v3 34/68] eal: add contig walk function Anatoly Burakov
2018-04-03 23:21 ` [dpdk-dev] [PATCH v3 35/68] virtio: use memseg contig walk instead of iteration Anatoly Burakov
2018-04-03 23:21 ` [dpdk-dev] [PATCH v3 36/68] eal: add iova2virt function Anatoly Burakov
2018-04-03 23:21 ` [dpdk-dev] [PATCH v3 37/68] bus/dpaa: use iova2virt instead of memseg iteration Anatoly Burakov
2018-04-03 23:21 ` [dpdk-dev] [PATCH v3 38/68] bus/fslmc: " Anatoly Burakov
2018-04-03 23:21 ` [dpdk-dev] [PATCH v3 39/68] crypto/dpaa_sec: " Anatoly Burakov
2018-04-03 23:21 ` [dpdk-dev] [PATCH v3 40/68] eal: add virt2memseg function Anatoly Burakov
2018-04-03 23:21 ` [dpdk-dev] [PATCH v3 41/68] bus/fslmc: use virt2memseg instead of iteration Anatoly Burakov
2018-04-03 23:21 ` [dpdk-dev] [PATCH v3 42/68] net/mlx4: " Anatoly Burakov
2018-04-03 23:21 ` [dpdk-dev] [PATCH v3 43/68] net/mlx5: " Anatoly Burakov
2018-04-03 23:21 ` [dpdk-dev] [PATCH v3 44/68] crypto/dpaa_sec: " Anatoly Burakov
2018-04-03 23:21 ` [dpdk-dev] [PATCH v3 45/68] eal: use memzone walk " Anatoly Burakov
2018-04-03 23:21 ` [dpdk-dev] [PATCH v3 46/68] vfio: allow to map other memory regions Anatoly Burakov
2018-04-04 11:27 ` Burakov, Anatoly
2018-04-05 11:30 ` Burakov, Anatoly
2018-04-03 23:21 ` [dpdk-dev] [PATCH v3 47/68] eal: add "legacy memory" option Anatoly Burakov
2018-04-03 23:22 ` [dpdk-dev] [PATCH v3 48/68] eal: add rte_fbarray Anatoly Burakov
2018-04-03 23:22 ` [dpdk-dev] [PATCH v3 49/68] eal: replace memseg with memseg lists Anatoly Burakov
2018-04-03 23:22 ` [dpdk-dev] [PATCH v3 50/68] eal: replace memzone array with fbarray Anatoly Burakov
2018-04-05 14:23 ` Shreyansh Jain
2018-04-03 23:22 ` [dpdk-dev] [PATCH v3 51/68] eal: add support for mapping hugepages at runtime Anatoly Burakov
2018-04-03 23:22 ` [dpdk-dev] [PATCH v3 52/68] eal: add support for unmapping pages " Anatoly Burakov
2018-04-03 23:22 ` [dpdk-dev] [PATCH v3 53/68] eal: add "single file segments" command-line option Anatoly Burakov
2018-04-03 23:22 ` [dpdk-dev] [PATCH v3 54/68] eal: add API to check if memory is contiguous Anatoly Burakov
2018-04-03 23:22 ` [dpdk-dev] [PATCH v3 55/68] eal: prepare memseg lists for multiprocess sync Anatoly Burakov
2018-04-03 23:22 ` [dpdk-dev] [PATCH v3 56/68] eal: read hugepage counts from node-specific sysfs path Anatoly Burakov
2018-04-03 23:22 ` [dpdk-dev] [PATCH v3 57/68] eal: make use of memory hotplug for init Anatoly Burakov
2018-04-03 23:22 ` [dpdk-dev] [PATCH v3 58/68] eal: share hugepage info primary and secondary Anatoly Burakov
2018-04-03 23:22 ` [dpdk-dev] [PATCH v3 59/68] eal: add secondary process init with memory hotplug Anatoly Burakov
2018-04-03 23:22 ` [dpdk-dev] [PATCH v3 60/68] eal: enable memory hotplug support in rte_malloc Anatoly Burakov
2018-04-03 23:22 ` [dpdk-dev] [PATCH v3 61/68] eal: add support for multiprocess memory hotplug Anatoly Burakov
2018-04-03 23:22 ` [dpdk-dev] [PATCH v3 62/68] eal: add support for callbacks on " Anatoly Burakov
2018-04-03 23:22 ` [dpdk-dev] [PATCH v3 63/68] eal: enable callbacks on malloc/free and mp sync Anatoly Burakov
2018-04-03 23:22 ` [dpdk-dev] [PATCH v3 64/68] vfio: enable support for mem event callbacks Anatoly Burakov
2018-04-03 23:22 ` [dpdk-dev] [PATCH v3 65/68] eal: enable non-legacy memory mode Anatoly Burakov
2018-04-03 23:22 ` [dpdk-dev] [PATCH v3 66/68] eal: add memory validator callback Anatoly Burakov
2018-04-03 23:22 ` [dpdk-dev] [PATCH v3 67/68] eal: enable validation before new page allocation Anatoly Burakov
2018-04-03 23:22 ` [dpdk-dev] [PATCH v3 68/68] eal: prevent preallocated pages from being freed Anatoly Burakov
2018-03-07 16:56 ` [dpdk-dev] [PATCH v2 01/41] eal: move get_virtual_area out of linuxapp eal_memory.c Anatoly Burakov
2018-03-07 16:56 ` [dpdk-dev] [PATCH v2 02/41] eal: move all locking to heap Anatoly Burakov
2018-03-07 16:56 ` [dpdk-dev] [PATCH v2 03/41] eal: make malloc heap a doubly-linked list Anatoly Burakov
2018-03-07 16:56 ` [dpdk-dev] [PATCH v2 04/41] eal: add function to dump malloc heap contents Anatoly Burakov
2018-03-07 16:56 ` [dpdk-dev] [PATCH v2 05/41] test: add command " Anatoly Burakov
2018-03-07 16:56 ` [dpdk-dev] [PATCH v2 06/41] eal: make malloc_elem_join_adjacent_free public Anatoly Burakov
2018-03-07 16:56 ` [dpdk-dev] [PATCH v2 07/41] eal: make malloc free list remove public Anatoly Burakov
2018-03-07 16:56 ` [dpdk-dev] [PATCH v2 08/41] eal: make malloc free return resulting malloc element Anatoly Burakov
2018-03-07 16:56 ` [dpdk-dev] [PATCH v2 09/41] eal: add rte_fbarray Anatoly Burakov
2018-03-07 16:56 ` [dpdk-dev] [PATCH v2 10/41] eal: add "single file segments" command-line option Anatoly Burakov
2018-03-07 16:56 ` [dpdk-dev] [PATCH v2 11/41] eal: add "legacy memory" option Anatoly Burakov
2018-03-07 16:56 ` [dpdk-dev] [PATCH v2 12/41] eal: read hugepage counts from node-specific sysfs path Anatoly Burakov
2018-03-07 16:56 ` [dpdk-dev] [PATCH v2 13/41] eal: replace memseg with memseg lists Anatoly Burakov
2018-03-24 6:01 ` santosh
2018-03-24 11:08 ` Burakov, Anatoly
2018-03-24 12:23 ` santosh
2018-03-24 12:32 ` Burakov, Anatoly
2018-03-07 16:56 ` [dpdk-dev] [PATCH v2 14/41] eal: add support for mapping hugepages at runtime Anatoly Burakov
2018-03-07 16:56 ` [dpdk-dev] [PATCH v2 15/41] eal: add support for unmapping pages " Anatoly Burakov
2018-03-07 16:56 ` [dpdk-dev] [PATCH v2 16/41] eal: make use of memory hotplug for init Anatoly Burakov
2018-03-07 16:56 ` [dpdk-dev] [PATCH v2 17/41] eal: enable memory hotplug support in rte_malloc Anatoly Burakov
2018-03-07 16:56 ` [dpdk-dev] [PATCH v2 18/41] test: fix malloc autotest to support memory hotplug Anatoly Burakov
2018-03-07 16:56 ` [dpdk-dev] [PATCH v2 19/41] eal: add API to check if memory is contiguous Anatoly Burakov
2018-03-07 16:56 ` [dpdk-dev] [PATCH v2 20/41] eal: add backend support for contiguous allocation Anatoly Burakov
2018-03-07 16:56 ` [dpdk-dev] [PATCH v2 21/41] eal: enable reserving physically contiguous memzones Anatoly Burakov
2018-03-07 16:56 ` [dpdk-dev] [PATCH v2 22/41] eal: replace memzone array with fbarray Anatoly Burakov
2018-03-07 16:56 ` [dpdk-dev] [PATCH v2 23/41] mempool: add support for the new allocation methods Anatoly Burakov
2018-03-19 17:11 ` Olivier Matz
2018-03-21 7:49 ` Andrew Rybchenko
2018-03-21 8:32 ` Olivier Matz
2018-03-20 11:35 ` Shreyansh Jain
2018-03-20 12:17 ` Burakov, Anatoly
2018-03-23 11:25 ` Burakov, Anatoly
2018-03-07 16:56 ` [dpdk-dev] [PATCH v2 24/41] vfio: allow to map other memory regions Anatoly Burakov
2018-03-30 9:42 ` Gowrishankar
2018-04-02 11:36 ` Gowrishankar
2018-03-07 16:56 ` [dpdk-dev] [PATCH v2 25/41] eal: map/unmap memory with VFIO when alloc/free pages Anatoly Burakov
2018-03-07 16:56 ` [dpdk-dev] [PATCH v2 26/41] eal: prepare memseg lists for multiprocess sync Anatoly Burakov
2018-03-07 16:56 ` [dpdk-dev] [PATCH v2 27/41] eal: add multiprocess init with memory hotplug Anatoly Burakov
2018-03-07 16:56 ` [dpdk-dev] [PATCH v2 28/41] eal: add support for multiprocess " Anatoly Burakov
2018-03-23 15:44 ` Tan, Jianfeng
2018-03-07 16:56 ` [dpdk-dev] [PATCH v2 29/41] eal: add support for callbacks on " Anatoly Burakov
2018-03-07 16:56 ` [dpdk-dev] [PATCH v2 30/41] eal: enable callbacks on malloc/free and mp sync Anatoly Burakov
2018-03-07 16:56 ` [dpdk-dev] [PATCH v2 31/41] ethdev: use contiguous allocation for DMA memory Anatoly Burakov
2018-03-07 16:57 ` [dpdk-dev] [PATCH v2 32/41] crypto/qat: " Anatoly Burakov
2018-03-07 16:57 ` [dpdk-dev] [PATCH v2 33/41] net/avf: " Anatoly Burakov
2018-03-07 16:57 ` [dpdk-dev] [PATCH v2 34/41] net/bnx2x: " Anatoly Burakov
2018-03-07 16:57 ` [dpdk-dev] [PATCH v2 35/41] net/cxgbe: " Anatoly Burakov
2018-03-07 16:57 ` [dpdk-dev] [PATCH v2 36/41] net/ena: " Anatoly Burakov
2018-03-08 9:40 ` Michał Krawczyk
2018-03-07 16:57 ` [dpdk-dev] [PATCH v2 37/41] net/enic: " Anatoly Burakov
2018-03-07 16:57 ` [dpdk-dev] [PATCH v2 38/41] net/i40e: " Anatoly Burakov
2018-03-07 16:57 ` [dpdk-dev] [PATCH v2 39/41] net/qede: " Anatoly Burakov
2018-03-07 22:55 ` Patil, Harish
2018-03-07 16:57 ` [dpdk-dev] [PATCH v2 40/41] net/virtio: " Anatoly Burakov
2018-03-28 11:58 ` Maxime Coquelin
2018-03-07 16:57 ` [dpdk-dev] [PATCH v2 41/41] net/vmxnet3: " Anatoly Burakov
2018-03-08 14:40 ` [dpdk-dev] [PATCH 00/41] Memory Hotplug for DPDK Burakov, Anatoly
2018-03-19 17:30 ` Olivier Matz
2018-03-20 10:27 ` Burakov, Anatoly
2018-03-20 12:42 ` Olivier Matz
2018-03-20 13:51 ` Burakov, Anatoly
2018-03-20 14:18 ` Olivier Matz
2018-03-20 14:46 ` Burakov, Anatoly
2018-03-21 9:09 ` gowrishankar muthukrishnan
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=6fd544b79740c4eae7eb111d103d08375fd9f96b.1523218215.git.anatoly.burakov@intel.com \
--to=anatoly.burakov@intel.com \
--cc=andras.kovacs@ericsson.com \
--cc=benjamin.walker@intel.com \
--cc=bruce.richardson@intel.com \
--cc=dev@dpdk.org \
--cc=gowrishankar.m@linux.vnet.ibm.com \
--cc=hemant.agrawal@nxp.com \
--cc=jerin.jacob@caviumnetworks.com \
--cc=jianfeng.tan@intel.com \
--cc=keith.wiles@intel.com \
--cc=konstantin.ananyev@intel.com \
--cc=kuralamudhan.ramakrishnan@intel.com \
--cc=laszlo.vadkeri@ericsson.com \
--cc=louise.m.daly@intel.com \
--cc=nelio.laranjeiro@6wind.com \
--cc=olivier.matz@6wind.com \
--cc=pepperjo@japf.ch \
--cc=shreyansh.jain@nxp.com \
--cc=thomas@monjalon.net \
--cc=yskoh@mellanox.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).