From: Olivier Matz <olivier.matz@6wind.com> To: dev@dpdk.org Cc: Anatoly Burakov <anatoly.burakov@intel.com>, Andrew Rybchenko <arybchenko@solarflare.com>, Ferruh Yigit <ferruh.yigit@linux.intel.com>, "Giridharan, Ganesan" <ggiridharan@rbbn.com>, Jerin Jacob Kollanukkaran <jerinj@marvell.com>, "Kiran Kumar Kokkilagadda" <kirankumark@marvell.com>, Stephen Hemminger <sthemmin@microsoft.com>, Thomas Monjalon <thomas@monjalon.net>, Vamsi Krishna Attunuru <vattunuru@marvell.com>, Hemant Agrawal <hemant.agrawal@nxp.com>, Nipun Gupta <nipun.gupta@nxp.com> Subject: [dpdk-dev] [PATCH v3 2/7] mempool: reduce wasted space on mempool populate Date: Mon, 4 Nov 2019 16:12:49 +0100 Message-ID: <20191104151254.6354-3-olivier.matz@6wind.com> (raw) In-Reply-To: <20191104151254.6354-1-olivier.matz@6wind.com> The size returned by rte_mempool_op_calc_mem_size_default() is aligned to the specified page size. Therefore, with big pages, the returned size can be much more that what we really need to populate the mempool. For instance, populating a mempool that requires 1.1GB of memory with 1GB hugepages can result in allocating 2GB of memory. This problem is hidden most of the time due to the allocation method of rte_mempool_populate_default(): when try_iova_contig_mempool=true, it first tries to allocate an iova contiguous area, without the alignment constraint. If it fails, it fallbacks to an aligned allocation that does not require to be iova-contiguous. This can also fallback into several smaller aligned allocations. This commit changes rte_mempool_op_calc_mem_size_default() to relax the alignment constraint to a cache line and to return a smaller size. Signed-off-by: Olivier Matz <olivier.matz@6wind.com> Reviewed-by: Andrew Rybdhenko <arybchenko@solarflare.com> Acked-by: Nipun Gupta <nipun.gupta@nxp.com> --- lib/librte_mempool/rte_mempool.c | 7 ++--- lib/librte_mempool/rte_mempool.h | 9 +++---- lib/librte_mempool/rte_mempool_ops.c | 4 ++- lib/librte_mempool/rte_mempool_ops_default.c | 28 +++++++++++++++----- 4 files changed, 30 insertions(+), 18 deletions(-) diff --git a/lib/librte_mempool/rte_mempool.c b/lib/librte_mempool/rte_mempool.c index 88e49c751..4e0d576f5 100644 --- a/lib/librte_mempool/rte_mempool.c +++ b/lib/librte_mempool/rte_mempool.c @@ -477,11 +477,8 @@ rte_mempool_populate_default(struct rte_mempool *mp) * wasting some space this way, but it's much nicer than looping around * trying to reserve each and every page size. * - * However, since size calculation will produce page-aligned sizes, it - * makes sense to first try and see if we can reserve the entire memzone - * in one contiguous chunk as well (otherwise we might end up wasting a - * 1G page on a 10MB memzone). If we fail to get enough contiguous - * memory, then we'll go and reserve space page-by-page. + * If we fail to get enough contiguous memory, then we'll go and + * reserve space in smaller chunks. * * We also have to take into account the fact that memory that we're * going to allocate from can belong to an externally allocated memory diff --git a/lib/librte_mempool/rte_mempool.h b/lib/librte_mempool/rte_mempool.h index 0fe8aa7b8..78b687bb6 100644 --- a/lib/librte_mempool/rte_mempool.h +++ b/lib/librte_mempool/rte_mempool.h @@ -458,7 +458,7 @@ typedef unsigned (*rte_mempool_get_count)(const struct rte_mempool *mp); * @param[out] align * Location for required memory chunk alignment. * @return - * Required memory size aligned at page boundary. + * Required memory size. */ typedef ssize_t (*rte_mempool_calc_mem_size_t)(const struct rte_mempool *mp, uint32_t obj_num, uint32_t pg_shift, @@ -477,11 +477,8 @@ typedef ssize_t (*rte_mempool_calc_mem_size_t)(const struct rte_mempool *mp, * that pages are grouped in subsets of physically continuous pages big * enough to store at least one object. * - * Minimum size of memory chunk is a maximum of the page size and total - * element size. - * - * Required memory chunk alignment is a maximum of page size and cache - * line size. + * Minimum size of memory chunk is the total element size. + * Required memory chunk alignment is the cache line size. */ ssize_t rte_mempool_op_calc_mem_size_default(const struct rte_mempool *mp, uint32_t obj_num, uint32_t pg_shift, diff --git a/lib/librte_mempool/rte_mempool_ops.c b/lib/librte_mempool/rte_mempool_ops.c index e02eb702c..22c5251eb 100644 --- a/lib/librte_mempool/rte_mempool_ops.c +++ b/lib/librte_mempool/rte_mempool_ops.c @@ -100,7 +100,9 @@ rte_mempool_ops_get_count(const struct rte_mempool *mp) return ops->get_count(mp); } -/* wrapper to notify new memory area to external mempool */ +/* wrapper to calculate the memory size required to store given number + * of objects + */ ssize_t rte_mempool_ops_calc_mem_size(const struct rte_mempool *mp, uint32_t obj_num, uint32_t pg_shift, diff --git a/lib/librte_mempool/rte_mempool_ops_default.c b/lib/librte_mempool/rte_mempool_ops_default.c index 4e2bfc82d..f6aea7662 100644 --- a/lib/librte_mempool/rte_mempool_ops_default.c +++ b/lib/librte_mempool/rte_mempool_ops_default.c @@ -12,7 +12,7 @@ rte_mempool_op_calc_mem_size_default(const struct rte_mempool *mp, size_t *min_chunk_size, size_t *align) { size_t total_elt_sz; - size_t obj_per_page, pg_num, pg_sz; + size_t obj_per_page, pg_sz, objs_in_last_page; size_t mem_size; total_elt_sz = mp->header_size + mp->elt_size + mp->trailer_size; @@ -33,14 +33,30 @@ rte_mempool_op_calc_mem_size_default(const struct rte_mempool *mp, mem_size = RTE_ALIGN_CEIL(total_elt_sz, pg_sz) * obj_num; } else { - pg_num = (obj_num + obj_per_page - 1) / obj_per_page; - mem_size = pg_num << pg_shift; + /* In the best case, the allocator will return a + * page-aligned address. For example, with 5 objs, + * the required space is as below: + * | page0 | page1 | page2 (last) | + * |obj0 |obj1 |xxx|obj2 |obj3 |xxx|obj4| + * <------------- mem_size -------------> + */ + objs_in_last_page = ((obj_num - 1) % obj_per_page) + 1; + /* room required for the last page */ + mem_size = objs_in_last_page * total_elt_sz; + /* room required for other pages */ + mem_size += ((obj_num - objs_in_last_page) / + obj_per_page) << pg_shift; + + /* In the worst case, the allocator returns a + * non-aligned pointer, wasting up to + * total_elt_sz. Add a margin for that. + */ + mem_size += total_elt_sz - 1; } } - *min_chunk_size = RTE_MAX((size_t)1 << pg_shift, total_elt_sz); - - *align = RTE_MAX((size_t)RTE_CACHE_LINE_SIZE, (size_t)1 << pg_shift); + *min_chunk_size = total_elt_sz; + *align = RTE_CACHE_LINE_SIZE; return mem_size; } -- 2.20.1
next prev parent reply index Thread overview: 251+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-09-27 10:49 [PATCH] kni: add IOVA va support for kni Kiran Kumar 2018-09-27 10:58 ` Burakov, Anatoly 2018-10-02 17:05 ` Ferruh Yigit 2019-04-01 17:30 ` Jerin Jacob Kollanukkaran 2019-04-01 18:20 ` Ferruh Yigit 2019-04-01 9:51 ` [PATCH v2] " Kiran Kumar Kokkilagadda 2019-04-03 16:29 ` Ferruh Yigit 2019-04-04 5:03 ` [dpdk-dev] [EXT] " Kiran Kumar Kokkilagadda 2019-04-04 11:20 ` Ferruh Yigit 2019-04-04 13:29 ` Burakov, Anatoly 2019-04-04 9:57 ` Burakov, Anatoly 2019-04-04 11:21 ` Ferruh Yigit 2019-04-16 4:55 ` [dpdk-dev] [PATCH v3] " kirankumark 2019-04-19 10:38 ` Thomas Monjalon 2019-04-22 4:39 ` [dpdk-dev] [PATCH v4] " kirankumark 2019-04-22 6:15 ` [dpdk-dev] [PATCH v5] " kirankumark 2019-04-26 9:11 ` Burakov, Anatoly 2019-06-25 3:56 ` [dpdk-dev] [PATCH v6 0/4] add IOVA = VA support in KNI vattunuru 2019-06-25 3:56 ` [dpdk-dev] [PATCH v6 1/4] lib/mempool: skip populating mempool objs that falls on page boundaries vattunuru 2019-06-25 3:56 ` [dpdk-dev] [PATCH v6 2/4] lib/kni: add PCI related information vattunuru 2019-06-25 17:41 ` Stephen Hemminger 2019-06-26 3:48 ` [dpdk-dev] [EXT] " Vamsi Krishna Attunuru 2019-06-26 14:58 ` Stephen Hemminger 2019-06-27 9:43 ` Vamsi Krishna Attunuru 2019-07-11 16:22 ` [dpdk-dev] " Ferruh Yigit 2019-07-12 11:02 ` [dpdk-dev] [EXT] " Vamsi Krishna Attunuru 2019-07-12 11:11 ` Ferruh Yigit 2019-06-25 3:56 ` [dpdk-dev] [PATCH v6 3/4] example/kni: add IOVA support for kni application vattunuru 2019-07-11 16:23 ` Ferruh Yigit 2019-06-25 3:57 ` [dpdk-dev] [PATCH v6 4/4] kernel/linux/kni: add IOVA support in kni module vattunuru 2019-07-11 16:30 ` Ferruh Yigit 2019-07-12 10:38 ` [dpdk-dev] [EXT] " Vamsi Krishna Attunuru 2019-07-12 11:10 ` Ferruh Yigit 2019-07-12 12:27 ` Vamsi Krishna Attunuru 2019-07-12 16:29 ` Vamsi Krishna Attunuru 2019-07-15 11:26 ` Ferruh Yigit 2019-07-15 13:06 ` Vamsi Krishna Attunuru 2019-07-11 16:43 ` [dpdk-dev] " Stephen Hemminger 2019-06-25 10:00 ` [dpdk-dev] [PATCH v6 0/4] add IOVA = VA support in KNI Burakov, Anatoly 2019-06-25 11:15 ` Jerin Jacob Kollanukkaran 2019-06-25 11:30 ` Burakov, Anatoly 2019-06-25 13:38 ` Burakov, Anatoly 2019-06-27 9:34 ` Jerin Jacob Kollanukkaran 2019-07-01 13:51 ` Vamsi Krishna Attunuru 2019-07-04 6:42 ` Vamsi Krishna Attunuru 2019-07-04 9:48 ` Jerin Jacob Kollanukkaran 2019-07-11 16:21 ` Ferruh Yigit 2019-07-17 9:04 ` [dpdk-dev] [PATCH v7 0/4] kni: add IOVA=VA support vattunuru 2019-07-17 9:04 ` [dpdk-dev] [PATCH v7 1/4] mempool: modify mempool populate() to skip objects from page boundaries vattunuru 2019-07-17 13:36 ` Andrew Rybchenko 2019-07-17 13:47 ` Olivier Matz 2019-07-17 17:31 ` Vamsi Krishna Attunuru 2019-07-18 9:28 ` Andrew Rybchenko 2019-07-18 14:16 ` Vamsi Krishna Attunuru 2019-07-19 13:38 ` [dpdk-dev] [RFC 0/4] mempool: avoid objects allocations across pages Olivier Matz 2019-07-19 13:38 ` [dpdk-dev] [RFC 1/4] mempool: clarify default populate function Olivier Matz 2019-07-19 15:42 ` Andrew Rybchenko 2019-10-08 9:36 ` Olivier Matz 2019-07-19 13:38 ` [dpdk-dev] [RFC 2/4] mempool: unalign size when calculating required mem amount Olivier Matz 2019-08-07 15:21 ` [dpdk-dev] ***Spam*** " Andrew Rybchenko 2019-10-28 14:06 ` Olivier Matz 2019-07-19 13:38 ` [dpdk-dev] [RFC 3/4] mempool: introduce function to get mempool page size Olivier Matz 2019-08-07 15:21 ` Andrew Rybchenko 2019-10-28 14:06 ` Olivier Matz 2019-07-19 13:38 ` [dpdk-dev] [RFC 4/4] mempool: prevent objects from being across pages Olivier Matz 2019-07-19 14:03 ` Burakov, Anatoly 2019-10-28 14:07 ` Olivier Matz 2019-07-19 14:11 ` Burakov, Anatoly 2019-08-07 15:21 ` Andrew Rybchenko 2019-10-28 14:07 ` Olivier Matz 2019-10-29 11:03 ` Andrew Rybchenko 2019-07-23 5:37 ` [dpdk-dev] [RFC 0/4] mempool: avoid objects allocations " Vamsi Krishna Attunuru 2019-08-07 15:21 ` [dpdk-dev] ***Spam*** " Andrew Rybchenko 2019-10-28 14:06 ` Olivier Matz 2019-10-28 14:01 ` [dpdk-dev] [PATCH 0/5] " Olivier Matz 2019-10-28 14:01 ` [dpdk-dev] [PATCH 1/5] mempool: allow unaligned addr/len in populate virt Olivier Matz 2019-10-29 9:02 ` [dpdk-dev] [EXT] " Vamsi Krishna Attunuru 2019-10-29 9:13 ` Olivier Matz 2019-10-29 9:18 ` Vamsi Krishna Attunuru 2019-10-29 9:21 ` [dpdk-dev] " Andrew Rybchenko 2019-10-29 17:02 ` Olivier Matz 2019-10-28 14:01 ` [dpdk-dev] [PATCH 2/5] mempool: reduce wasted space on mempool populate Olivier Matz 2019-10-29 10:09 ` Andrew Rybchenko 2019-10-29 17:09 ` Olivier Matz 2019-10-28 14:01 ` [dpdk-dev] [PATCH 3/5] mempool: remove optimistic IOVA-contiguous allocation Olivier Matz 2019-10-29 10:25 ` Andrew Rybchenko 2019-10-29 17:20 ` Olivier Matz 2019-10-30 7:36 ` Andrew Rybchenko 2019-10-30 7:44 ` Andrew Rybchenko 2019-10-30 10:38 ` Olivier Matz 2019-10-28 14:01 ` [dpdk-dev] [PATCH 4/5] mempool: introduce function to get mempool page size Olivier Matz 2019-10-29 10:31 ` Andrew Rybchenko 2019-10-29 17:20 ` Olivier Matz 2019-10-30 8:32 ` Olivier Matz 2019-10-30 14:29 ` Olivier Matz 2019-10-28 14:01 ` [dpdk-dev] [PATCH 5/5] mempool: prevent objects from being across pages Olivier Matz 2019-10-29 10:59 ` [dpdk-dev] ***Spam*** " Andrew Rybchenko 2019-10-29 17:34 ` Olivier Matz 2019-10-30 7:56 ` [dpdk-dev] " Andrew Rybchenko 2019-10-29 17:25 ` [dpdk-dev] [EXT] " Vamsi Krishna Attunuru 2019-10-30 3:55 ` Vamsi Krishna Attunuru 2019-10-30 7:46 ` Andrew Rybchenko 2019-10-30 8:38 ` Jerin Jacob 2019-10-30 14:33 ` Olivier Matz 2019-10-30 14:54 ` Jerin Jacob 2019-10-30 8:42 ` Olivier Matz 2019-10-30 14:36 ` [dpdk-dev] [PATCH v2 0/6] mempool: avoid objects allocations " Olivier Matz 2019-10-30 14:36 ` [dpdk-dev] [PATCH v2 1/6] mempool: allow unaligned addr/len in populate virt Olivier Matz 2019-10-30 14:36 ` [dpdk-dev] [PATCH v2 2/6] mempool: reduce wasted space on mempool populate Olivier Matz 2019-10-30 14:36 ` [dpdk-dev] [PATCH v2 3/6] mempool: remove optimistic IOVA-contiguous allocation Olivier Matz 2019-10-30 14:36 ` [dpdk-dev] [PATCH v2 4/6] mempool: introduce function to get mempool page size Olivier Matz 2019-10-30 14:36 ` [dpdk-dev] [PATCH v2 5/6] mempool: prevent objects from being across pages Olivier Matz 2019-10-31 6:54 ` [dpdk-dev] [EXT] " Vamsi Krishna Attunuru 2019-10-31 8:19 ` Jerin Jacob 2019-10-31 8:29 ` Olivier Matz 2019-10-31 8:24 ` Olivier Matz 2019-10-31 8:33 ` Andrew Rybchenko 2019-10-31 8:45 ` Olivier Matz 2019-10-30 14:36 ` [dpdk-dev] [PATCH v2 6/6] mempool: use the specific macro for object alignment Olivier Matz 2019-10-30 14:55 ` Andrew Rybchenko 2019-11-01 3:56 ` [dpdk-dev] [PATCH v2 0/6] mempool: avoid objects allocations across pages Nipun Gupta 2019-11-04 15:12 ` [dpdk-dev] [PATCH v3 0/7] " Olivier Matz 2019-11-04 15:12 ` [dpdk-dev] [PATCH v3 1/7] mempool: allow unaligned addr/len in populate virt Olivier Matz 2019-11-04 15:12 ` Olivier Matz [this message] 2019-11-04 15:12 ` [dpdk-dev] [PATCH v3 3/7] mempool: remove optimistic IOVA-contiguous allocation Olivier Matz 2019-11-04 15:12 ` [dpdk-dev] [PATCH v3 4/7] mempool: introduce function to get mempool page size Olivier Matz 2019-11-04 15:12 ` [dpdk-dev] [PATCH v3 5/7] mempool: introduce helpers for populate and calc mem size Olivier Matz 2019-11-05 12:19 ` Andrew Rybchenko 2019-11-04 15:12 ` [dpdk-dev] [PATCH v3 6/7] mempool: prevent objects from being across pages Olivier Matz 2019-11-05 12:22 ` Andrew Rybchenko 2019-11-04 15:12 ` [dpdk-dev] [PATCH v3 7/7] mempool: use the specific macro for object alignment Olivier Matz 2019-11-05 12:15 ` Andrew Rybchenko 2019-11-05 12:48 ` Olivier Matz 2019-11-05 15:36 ` [dpdk-dev] [PATCH v4 0/7] mempool: avoid objects allocations across pages Olivier Matz 2019-11-05 15:37 ` [dpdk-dev] [PATCH v4 1/7] mempool: allow unaligned addr/len in populate virt Olivier Matz 2019-11-05 15:37 ` [dpdk-dev] [PATCH v4 2/7] mempool: reduce wasted space on mempool populate Olivier Matz 2019-11-05 15:37 ` [dpdk-dev] [PATCH v4 3/7] mempool: remove optimistic IOVA-contiguous allocation Olivier Matz 2019-11-05 15:37 ` [dpdk-dev] [PATCH v4 4/7] mempool: introduce function to get mempool page size Olivier Matz 2019-11-05 15:37 ` [dpdk-dev] [PATCH v4 5/7] mempool: introduce helpers for populate and calc mem size Olivier Matz 2019-11-05 15:37 ` [dpdk-dev] [PATCH v4 6/7] mempool: prevent objects from being across pages Olivier Matz 2019-11-05 15:37 ` [dpdk-dev] [PATCH v4 7/7] mempool: use the specific macro for object alignment Olivier Matz 2019-11-05 16:03 ` [dpdk-dev] [PATCH v4 0/7] mempool: avoid objects allocations across pages Olivier Matz 2019-11-06 10:39 ` Thomas Monjalon 2019-07-17 9:04 ` [dpdk-dev] [PATCH v7 2/4] kni: add IOVA = VA support in KNI lib vattunuru 2019-07-17 9:04 ` [dpdk-dev] [PATCH v7 3/4] kni: add IOVA=VA support in KNI module vattunuru 2019-07-17 9:04 ` [dpdk-dev] [PATCH v7 4/4] kni: modify IOVA mode checks to support VA vattunuru 2019-07-23 5:38 ` [dpdk-dev] [PATCH v8 0/5] kni: add IOVA=VA support vattunuru 2019-07-23 5:38 ` [dpdk-dev] [PATCH v8 1/5] mempool: populate mempool with page sized chunks of memory vattunuru 2019-07-23 11:08 ` Andrew Rybchenko 2019-07-23 12:28 ` Vamsi Krishna Attunuru 2019-07-23 19:33 ` Andrew Rybchenko 2019-07-24 7:09 ` Vamsi Krishna Attunuru 2019-07-24 7:27 ` Andrew Rybchenko 2019-07-29 6:25 ` Vamsi Krishna Attunuru 2019-07-23 5:38 ` [dpdk-dev] [PATCH v8 2/5] add IOVA -VA support in KNI lib vattunuru 2019-07-23 10:54 ` Andrew Rybchenko 2019-07-23 5:38 ` [dpdk-dev] [PATCH v8 3/5] kni: add app specific mempool create & free routine vattunuru 2019-07-23 10:50 ` Andrew Rybchenko 2019-07-23 11:01 ` Vamsi Krishna Attunuru 2019-07-23 5:38 ` [dpdk-dev] [PATCH v8 4/5] kni: add IOVA=VA support in KNI module vattunuru 2019-07-23 5:38 ` [dpdk-dev] [PATCH v8 5/5] kni: modify IOVA mode checks to support VA vattunuru 2019-07-24 7:14 ` [dpdk-dev] [PATCH v8 0/5] kni: add IOVA=VA support Vamsi Krishna Attunuru 2019-07-29 12:13 ` [dpdk-dev] [PATCH v9 " vattunuru 2019-07-29 12:13 ` [dpdk-dev] [PATCH v9 1/5] mempool: populate mempool with the page sized chunks of memory vattunuru 2019-07-29 12:41 ` Andrew Rybchenko 2019-07-29 13:33 ` [dpdk-dev] [EXT] " Vamsi Krishna Attunuru 2019-08-16 6:12 ` [dpdk-dev] [PATCH v10 0/5] kni: add IOVA=VA support vattunuru 2019-08-16 6:12 ` [dpdk-dev] [PATCH v10 1/5] mempool: populate mempool with the page sized chunks vattunuru 2019-10-08 9:26 ` Olivier Matz 2019-10-09 5:29 ` Vamsi Krishna Attunuru 2019-08-16 6:12 ` [dpdk-dev] [PATCH v10 2/5] kni: add IOVA=VA support in KNI lib vattunuru 2019-10-15 15:36 ` Yigit, Ferruh 2019-08-16 6:12 ` [dpdk-dev] [PATCH v10 3/5] kni: add app specific mempool create and free routines vattunuru 2019-10-15 15:40 ` Yigit, Ferruh 2019-08-16 6:12 ` [dpdk-dev] [PATCH v10 4/5] kni: add IOVA=VA support in KNI module vattunuru 2019-10-15 15:43 ` Yigit, Ferruh 2019-10-15 15:46 ` Stephen Hemminger 2019-10-16 11:26 ` [dpdk-dev] [EXT] " Vamsi Krishna Attunuru 2019-10-16 14:37 ` Vamsi Krishna Attunuru 2019-10-16 16:14 ` Ferruh Yigit 2019-10-18 17:15 ` Vamsi Krishna Attunuru 2019-10-21 11:45 ` Ferruh Yigit 2019-08-16 6:12 ` [dpdk-dev] [PATCH v10 5/5] kni: modify IOVA mode checks to support VA vattunuru 2019-09-25 4:00 ` [dpdk-dev] [PATCH v10 0/5] kni: add IOVA=VA support Vamsi Krishna Attunuru 2019-10-08 5:08 ` Vamsi Krishna Attunuru 2019-10-14 4:05 ` Vamsi Krishna Attunuru 2019-10-15 15:34 ` Yigit, Ferruh 2019-10-16 12:17 ` Vamsi Krishna Attunuru 2019-10-16 16:21 ` Ferruh Yigit 2019-10-18 16:42 ` [dpdk-dev] [EXT] " Vamsi Krishna Attunuru 2019-10-21 8:03 ` [dpdk-dev] [PATCH v11 0/4] kni: add IOVA=VA mode support vattunuru 2019-10-21 8:03 ` [dpdk-dev] [PATCH v11 1/4] mempool: populate mempool with the page sized chunks vattunuru 2019-10-21 8:03 ` [dpdk-dev] [PATCH v11 2/4] eal: add legacy kni option vattunuru 2019-10-21 11:55 ` Ferruh Yigit 2019-10-21 13:13 ` [dpdk-dev] [EXT] " Vamsi Krishna Attunuru 2019-10-21 13:32 ` Ferruh Yigit 2019-10-21 14:38 ` Vamsi Krishna Attunuru 2019-10-22 9:29 ` Vamsi Krishna Attunuru 2019-10-22 12:28 ` Andrew Rybchenko 2019-10-22 13:31 ` Vamsi Krishna Attunuru 2019-10-23 10:12 ` Jerin Jacob 2019-10-23 14:47 ` Olivier Matz 2019-10-23 15:02 ` Jerin Jacob 2019-10-24 17:35 ` Olivier Matz 2019-10-24 19:30 ` Jerin Jacob 2019-10-25 9:20 ` Vamsi Krishna Attunuru 2019-10-26 12:25 ` Olivier Matz 2019-10-26 14:09 ` Vamsi Krishna Attunuru 2019-10-28 14:05 ` Olivier Matz 2019-10-21 8:03 ` [dpdk-dev] [PATCH v11 3/4] kni: add IOVA=VA support vattunuru 2019-10-21 8:03 ` [dpdk-dev] [PATCH v11 4/4] kni: add IOVA=VA support in kernel module vattunuru 2019-10-21 12:02 ` Ferruh Yigit 2019-11-05 11:04 ` [dpdk-dev] [PATCH v12 0/2] add IOVA=VA mode support vattunuru 2019-11-05 11:04 ` [dpdk-dev] [PATCH v12 1/2] kni: " vattunuru 2019-11-14 10:57 ` David Marchand 2019-11-14 11:13 ` David Marchand 2019-11-14 12:10 ` [dpdk-dev] [EXT] " Vamsi Krishna Attunuru 2019-11-14 12:25 ` David Marchand 2019-11-14 17:48 ` [dpdk-dev] " David Marchand 2019-11-05 11:04 ` [dpdk-dev] [PATCH v12 2/2] kni: add IOVA=VA support in kernel module vattunuru 2019-11-06 10:49 ` [dpdk-dev] [PATCH v12 0/2] add IOVA=VA mode support Thomas Monjalon 2019-11-06 11:09 ` [dpdk-dev] [EXT] " Vamsi Krishna Attunuru 2019-11-06 11:53 ` Thomas Monjalon 2019-11-06 11:59 ` Vamsi Krishna Attunuru 2019-11-07 10:34 ` Vamsi Krishna Attunuru 2019-11-07 19:53 ` [dpdk-dev] " Ferruh Yigit 2019-11-08 4:16 ` [dpdk-dev] [EXT] " Vamsi Krishna Attunuru 2019-11-08 14:26 ` Ferruh Yigit 2019-11-08 14:54 ` Jerin Jacob 2019-11-13 6:33 ` Vamsi Krishna Attunuru 2019-11-13 12:32 ` Ferruh Yigit 2019-11-15 11:18 ` [dpdk-dev] [PATCH v13 0/2] kni: support IOVA mode vattunuru 2019-11-15 11:18 ` [dpdk-dev] [PATCH v13 1/2] kni: support IOVA mode in kernel module vattunuru 2019-11-15 11:18 ` [dpdk-dev] [PATCH v13 2/2] kni: support IOVA mode vattunuru 2019-11-15 12:11 ` Ferruh Yigit 2019-11-15 12:59 ` David Marchand 2019-11-15 13:35 ` [dpdk-dev] [EXT] " Vamsi Krishna Attunuru 2019-11-15 13:40 ` David Marchand 2019-11-15 13:40 ` [dpdk-dev] " Jerin Jacob 2019-11-15 14:56 ` David Marchand 2019-11-15 15:22 ` Jerin Jacob 2019-11-15 17:07 ` [dpdk-dev] [PATCH v14 0/2] " vattunuru 2019-11-15 17:07 ` [dpdk-dev] [PATCH v14 1/2] kni: support IOVA mode in kernel module vattunuru 2019-11-15 17:07 ` [dpdk-dev] [PATCH v14 2/2] kni: support IOVA mode vattunuru 2019-07-29 12:13 ` [dpdk-dev] [PATCH v9 2/5] kni: add IOVA=VA support in KNI lib vattunuru 2019-07-29 12:24 ` Igor Ryzhov 2019-07-29 13:22 ` [dpdk-dev] [EXT] " Vamsi Krishna Attunuru 2019-07-29 12:13 ` [dpdk-dev] [PATCH v9 3/5] kni: add app specific mempool create & free routine vattunuru 2019-07-29 12:13 ` [dpdk-dev] [PATCH v9 4/5] kni: add IOVA=VA support in KNI module vattunuru 2019-07-29 12:13 ` [dpdk-dev] [PATCH v9 5/5] kni: modify IOVA mode checks to support VA vattunuru 2019-04-23 8:56 ` [dpdk-dev] [PATCH v4] kni: add IOVA va support for kni Burakov, Anatoly
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=20191104151254.6354-3-olivier.matz@6wind.com \ --to=olivier.matz@6wind.com \ --cc=anatoly.burakov@intel.com \ --cc=arybchenko@solarflare.com \ --cc=dev@dpdk.org \ --cc=ferruh.yigit@linux.intel.com \ --cc=ggiridharan@rbbn.com \ --cc=hemant.agrawal@nxp.com \ --cc=jerinj@marvell.com \ --cc=kirankumark@marvell.com \ --cc=nipun.gupta@nxp.com \ --cc=sthemmin@microsoft.com \ --cc=thomas@monjalon.net \ --cc=vattunuru@marvell.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
DPDK-dev Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/dpdk-dev/0 dpdk-dev/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 dpdk-dev dpdk-dev/ https://lore.kernel.org/dpdk-dev \ dev@dpdk.org public-inbox-index dpdk-dev Example config snippet for mirrors Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.dpdk.dev AGPL code for this site: git clone https://public-inbox.org/public-inbox.git