From: "Burakov, Anatoly" <anatoly.burakov@intel.com>
To: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>, dev@dpdk.org
Cc: "Dmitry Malloy (MESHCHANINOV)" <dmitrym@microsoft.com>,
Narcisa Ana Maria Vasile <Narcisa.Vasile@microsoft.com>,
Fady Bader <fady@mellanox.com>,
Tal Shnaiderman <talshn@mellanox.com>,
Bruce Richardson <bruce.richardson@intel.com>
Subject: Re: [dpdk-dev] [PATCH v4 3/8] eal: introduce memory management wrappers
Date: Wed, 29 Apr 2020 18:13:49 +0100 [thread overview]
Message-ID: <87a53d30-0cf4-2e0d-1336-3420f0e0b6d3@intel.com> (raw)
In-Reply-To: <20200428235015.2820677-4-dmitry.kozliuk@gmail.com>
On 29-Apr-20 12:50 AM, Dmitry Kozlyuk wrote:
> Introduce OS-independent wrappers for memory management operations used
> across DPDK and specifically in common code of EAL:
>
> * rte_mem_map()
> * rte_mem_unmap()
> * rte_get_page_size()
> * rte_mem_lock()
>
> Windows uses different APIs for memory mapping and reservation, while
> Unices reserve memory by mapping it. Introduce EAL private functions to
> support memory reservation in common code:
>
> * eal_mem_reserve()
> * eal_mem_free()
> * eal_mem_set_dump()
>
> Wrappers follow POSIX semantics limited to DPDK tasks, but their
> signatures deliberately differ from POSIX ones to be more safe and
> expressive.
>
> Signed-off-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
> ---
<snip>
> RTE_LOG(DEBUG, EAL, "Ask a virtual area of 0x%zx bytes\n", *size);
>
> @@ -105,24 +94,24 @@ eal_get_virtual_area(void *requested_addr, size_t *size,
> return NULL;
> }
>
> - mapped_addr = mmap(requested_addr, (size_t)map_sz, PROT_NONE,
> - mmap_flags, -1, 0);
> - if (mapped_addr == MAP_FAILED && allow_shrink)
> - *size -= page_sz;
> + mapped_addr = eal_mem_reserve(
> + requested_addr, (size_t)map_sz, reserve_flags);
> + if ((mapped_addr == NULL) && allow_shrink)
> + size -= page_sz;
Should be *size -= page_sz, size is a pointer in this case.
>
> - if (mapped_addr != MAP_FAILED && addr_is_hint &&
> - mapped_addr != requested_addr) {
> + if ((mapped_addr != NULL) && addr_is_hint &&
> + (mapped_addr != requested_addr)) {
> try++;
> next_baseaddr = RTE_PTR_ADD(next_baseaddr, page_sz);
> if (try <= MAX_MMAP_WITH_DEFINED_ADDR_TRIES) {
> /* hint was not used. Try with another offset */
> - munmap(mapped_addr, map_sz);
> - mapped_addr = MAP_FAILED;
> + eal_mem_free(mapped_addr, *size);
Why change map_sz to *size?
> + mapped_addr = NULL;
> requested_addr = next_baseaddr;
> }
> }
> } while ((allow_shrink || addr_is_hint) &&
> - mapped_addr == MAP_FAILED && *size > 0);
> + (mapped_addr == NULL) && (*size > 0));
>
<snip>
> @@ -547,10 +531,10 @@ rte_eal_memdevice_init(void)
> int
> rte_mem_lock_page(const void *virt)
> {
> - unsigned long virtual = (unsigned long)virt;
> - int page_size = getpagesize();
> - unsigned long aligned = (virtual & ~(page_size - 1));
> - return mlock((void *)aligned, page_size);
> + uintptr_t virtual = (uintptr_t)virt;
> + int page_size = rte_get_page_size();
> + uintptr_t aligned = (virtual & ~(page_size - 1));
Might as well fix to use macros? e.g.
size_t pagesz = rte_get_page_size();
return rte_mem_lock(RTE_PTR_ALIGN(virt, pagesz), pagesz);
(also, note that rte_get_page_size() returns size_t, not int)
> + return rte_mem_lock((void *)aligned, page_size);
> }
>
> int
> diff --git a/lib/librte_eal/common/eal_private.h b/lib/librte_eal/common/eal_private.h
> index 3aafd892f..67ca83e47 100644
> --- a/lib/librte_eal/common/eal_private.h
> +++ b/lib/librte_eal/common/eal_private.h
> @@ -11,6 +11,7 @@
>
<snip>
> + * Reservation size. Must be a multiple of system page size.
> + * @param flags
> + * Reservation options, a combination of eal_mem_reserve_flags.
> + * @returns
> + * Starting address of the reserved area on success, NULL on failure.
> + * Callers must not access this memory until remapping it.
> + */
> +void *eal_mem_reserve(void *requested_addr, size_t size, int flags);
Should we also require requested_addr to be page-aligned?
Also, here and in other added API's, nitpick but our coding style guide
(and the code style in this file) suggests that return value should be
on a separate line, e.g.
void *
eal_mem_reserve(...);
> +
> +/**
> + * Free memory obtained by eal_mem_reserve() or eal_mem_alloc().
> + *
> + * If *virt* and *size* describe a part of the reserved region,
> + * only this part of the region is freed (accurately up to the system
> + * page size). If *virt* points to allocated memory, *size* must match
> + * the one specified on allocation. The behavior is undefined
> + * if the memory pointed by *virt* is obtained from another source
> + * than listed above.
> + *
<snip>
> +}
> +
> +static int
> +mem_rte_to_sys_prot(int prot)
> +{
> + int sys_prot = 0;
Maybe set it to PROT_NONE to make it more obvious?
> +
> + if (prot & RTE_PROT_READ)
> + sys_prot |= PROT_READ;
> + if (prot & RTE_PROT_WRITE)
> + sys_prot |= PROT_WRITE;
> + if (prot & RTE_PROT_EXECUTE)
> + sys_prot |= PROT_EXEC;
> +
> + return sys_prot;
> +}
> +
> +void *
> +rte_mem_map(void *requested_addr, size_t size, int prot, int flags,
> + int fd, size_t offset)
> +{
> + int sys_prot = 0;
Not necessary to initialize sys_prot (and it's counter-productive as
compiler warning about uninitialized usage is a *good thing*!).
> + int sys_flags = 0;
> +
> + sys_prot = mem_rte_to_sys_prot(prot);
> +
> + if (flags & RTE_MAP_SHARED)
> + sys_flags |= MAP_SHARED;
> + if (flags & RTE_MAP_ANONYMOUS)
> + sys_flags |= MAP_ANONYMOUS;
> + if (flags & RTE_MAP_PRIVATE)
> + sys_flags |= MAP_PRIVATE;
> + if (flags & RTE_MAP_FORCE_ADDRESS)
> + sys_flags |= MAP_FIXED;
> +
> + return mem_map(requested_addr, size, sys_prot, sys_flags, fd, offset);
> +}
> +
> +int
> +rte_mem_unmap(void *virt, size_t size)
> +{
> + return mem_unmap(virt, size);
> +}
> +
> +size_t
> +rte_get_page_size(void)
> +{
> + return sysconf(_SC_PAGESIZE);
Can we perhaps cache this value?
> +}
> +
> +int
> +rte_mem_lock(const void *virt, size_t size)
> +{
> + return mlock(virt, size);
This call can fail. It should pass errno as rte_errno as well, just like
all other calls from this family.
Also, if the implementation "may require" page alignment, how about
requiring it unconditionally?
> +}
> diff --git a/lib/librte_eal/unix/meson.build b/lib/librte_eal/unix/meson.build
> index cfa1b4ef9..5734f26ad 100644
> --- a/lib/librte_eal/unix/meson.build
> +++ b/lib/librte_eal/unix/meson.build
> @@ -3,4 +3,5 @@
>
> sources += files(
> 'eal_unix.c',
> + 'eal_unix_memory.c',
> )
>
--
Thanks,
Anatoly
next prev parent reply other threads:[~2020-04-29 17:13 UTC|newest]
Thread overview: 218+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-30 4:10 [dpdk-dev] [RFC PATCH 0/9] Windows basic memory management Dmitry Kozlyuk
2020-03-30 4:10 ` [dpdk-dev] [PATCH 1/1] virt2phys: virtual to physical address translator for Windows Dmitry Kozlyuk
2020-03-30 6:58 ` Jerin Jacob
2020-03-30 13:41 ` Dmitry Kozlyuk
2020-04-10 1:45 ` Ranjit Menon
2020-04-10 2:50 ` Dmitry Kozlyuk
2020-04-10 2:59 ` Dmitry Kozlyuk
2020-04-10 19:39 ` Ranjit Menon
2020-03-30 4:10 ` [dpdk-dev] [RFC PATCH 2/9] eal/windows: do not expose private EAL facilities Dmitry Kozlyuk
2020-03-30 4:10 ` [dpdk-dev] [RFC PATCH 3/9] eal/windows: improve CPU and NUMA node detection Dmitry Kozlyuk
2020-03-30 4:10 ` [dpdk-dev] [RFC PATCH 4/9] eal/windows: initialize hugepage info Dmitry Kozlyuk
2020-03-30 4:10 ` [dpdk-dev] [RFC PATCH 5/9] eal: introduce internal wrappers for file operations Dmitry Kozlyuk
2020-03-30 7:04 ` Jerin Jacob
2020-03-30 4:10 ` [dpdk-dev] [RFC PATCH 6/9] eal: introduce memory management wrappers Dmitry Kozlyuk
2020-03-30 7:31 ` Thomas Monjalon
2020-03-30 4:10 ` [dpdk-dev] [RFC PATCH 7/9] eal/windows: fix rte_page_sizes with Clang on Windows Dmitry Kozlyuk
2020-03-30 4:10 ` [dpdk-dev] [RFC PATCH 8/9] eal/windows: replace sys/queue.h with a complete one from FreeBSD Dmitry Kozlyuk
2020-03-30 4:10 ` [dpdk-dev] [RFC PATCH 9/9] eal/windows: implement basic memory management Dmitry Kozlyuk
2020-04-10 16:43 ` [dpdk-dev] [PATCH v2 00/10] eal: Windows " Dmitry Kozlyuk
2020-04-10 16:43 ` [dpdk-dev] [PATCH v2 1/1] virt2phys: virtual to physical address translator for Windows Dmitry Kozlyuk
2020-04-13 5:32 ` Ranjit Menon
2020-04-10 16:43 ` [dpdk-dev] [PATCH v2 02/10] eal/windows: do not expose private EAL facilities Dmitry Kozlyuk
2020-04-10 16:43 ` [dpdk-dev] [PATCH v2 03/10] eal/windows: improve CPU and NUMA node detection Dmitry Kozlyuk
2020-04-10 16:43 ` [dpdk-dev] [PATCH v2 04/10] eal/windows: initialize hugepage info Dmitry Kozlyuk
2020-04-10 16:43 ` [dpdk-dev] [PATCH v2 05/10] eal: introduce internal wrappers for file operations Dmitry Kozlyuk
2020-04-10 16:43 ` [dpdk-dev] [PATCH v2 06/10] eal: introduce memory management wrappers Dmitry Kozlyuk
2020-04-13 7:50 ` Tal Shnaiderman
2020-04-10 16:43 ` [dpdk-dev] [PATCH v2 07/10] eal: extract common code for memseg list initialization Dmitry Kozlyuk
2020-04-10 16:43 ` [dpdk-dev] [PATCH v2 08/10] eal/windows: fix rte_page_sizes with Clang on Windows Dmitry Kozlyuk
2020-04-10 16:43 ` [dpdk-dev] [PATCH v2 09/10] eal/windows: replace sys/queue.h with a complete one from FreeBSD Dmitry Kozlyuk
2020-04-10 16:43 ` [dpdk-dev] [PATCH v2 10/10] eal/windows: implement basic memory management Dmitry Kozlyuk
2020-04-10 22:04 ` Narcisa Ana Maria Vasile
2020-04-11 1:16 ` Dmitry Kozlyuk
2020-04-14 19:44 ` [dpdk-dev] [PATCH v3 00/10] Windows " Dmitry Kozlyuk
2020-04-14 19:44 ` [dpdk-dev] [PATCH v3 1/1] virt2phys: virtual to physical address translator for Windows Dmitry Kozlyuk
2020-04-14 23:35 ` Ranjit Menon
2020-04-15 15:19 ` Thomas Monjalon
2020-04-21 6:23 ` Ophir Munk
2020-04-14 19:44 ` [dpdk-dev] [PATCH v3 02/10] eal/windows: do not expose private EAL facilities Dmitry Kozlyuk
2020-04-21 22:40 ` Thomas Monjalon
2020-04-14 19:44 ` [dpdk-dev] [PATCH v3 03/10] eal/windows: improve CPU and NUMA node detection Dmitry Kozlyuk
2020-04-14 19:44 ` [dpdk-dev] [PATCH v3 04/10] eal/windows: initialize hugepage info Dmitry Kozlyuk
2020-04-14 19:44 ` [dpdk-dev] [PATCH v3 05/10] eal: introduce internal wrappers for file operations Dmitry Kozlyuk
2020-04-15 21:48 ` Thomas Monjalon
2020-04-17 12:24 ` Burakov, Anatoly
2020-04-28 23:50 ` Dmitry Kozlyuk
2020-04-14 19:44 ` [dpdk-dev] [PATCH v3 06/10] eal: introduce memory management wrappers Dmitry Kozlyuk
2020-04-15 22:17 ` Thomas Monjalon
2020-04-15 23:32 ` Dmitry Kozlyuk
2020-04-17 12:43 ` Burakov, Anatoly
2020-04-20 5:59 ` Tal Shnaiderman
2020-04-21 23:36 ` Dmitry Kozlyuk
2020-04-22 0:55 ` Ranjit Menon
2020-04-22 2:07 ` Ranjit Menon
2020-04-14 19:44 ` [dpdk-dev] [PATCH v3 07/10] eal: extract common code for memseg list initialization Dmitry Kozlyuk
2020-04-15 22:19 ` Thomas Monjalon
2020-04-17 13:04 ` Burakov, Anatoly
2020-04-14 19:44 ` [dpdk-dev] [PATCH v3 08/10] eal/windows: fix rte_page_sizes with Clang on Windows Dmitry Kozlyuk
2020-04-15 9:34 ` Jerin Jacob
2020-04-15 10:32 ` Dmitry Kozlyuk
2020-04-15 10:57 ` Jerin Jacob
2020-04-15 11:09 ` Dmitry Kozlyuk
2020-04-15 11:17 ` Jerin Jacob
2020-05-06 5:41 ` Ray Kinsella
2020-04-14 19:44 ` [dpdk-dev] [PATCH v3 09/10] eal/windows: replace sys/queue.h with a complete one from FreeBSD Dmitry Kozlyuk
2020-04-14 19:44 ` [dpdk-dev] [PATCH v3 10/10] eal/windows: implement basic memory management Dmitry Kozlyuk
2020-04-15 9:42 ` Jerin Jacob
2020-04-16 18:34 ` Ranjit Menon
2020-04-23 1:00 ` Dmitry Kozlyuk
2020-04-14 23:37 ` [dpdk-dev] [PATCH v3 00/10] Windows " Kadam, Pallavi
2020-04-28 23:50 ` [dpdk-dev] [PATCH v4 0/8] " Dmitry Kozlyuk
2020-04-28 23:50 ` [dpdk-dev] [PATCH v4 1/8] eal: replace rte_page_sizes with a set of constants Dmitry Kozlyuk
2020-04-28 23:50 ` [dpdk-dev] [PATCH v4 2/8] eal: introduce internal wrappers for file operations Dmitry Kozlyuk
2020-04-29 16:41 ` Burakov, Anatoly
2020-04-28 23:50 ` [dpdk-dev] [PATCH v4 3/8] eal: introduce memory management wrappers Dmitry Kozlyuk
2020-04-29 17:13 ` Burakov, Anatoly [this message]
2020-04-30 13:59 ` Burakov, Anatoly
2020-05-01 19:00 ` Dmitry Kozlyuk
2020-05-05 14:43 ` Burakov, Anatoly
2020-04-28 23:50 ` [dpdk-dev] [PATCH v4 4/8] eal: extract common code for memseg list initialization Dmitry Kozlyuk
2020-05-05 16:08 ` Burakov, Anatoly
2020-04-28 23:50 ` [dpdk-dev] [PATCH v4 5/8] eal/windows: replace sys/queue.h with a complete one from FreeBSD Dmitry Kozlyuk
2020-04-28 23:50 ` [dpdk-dev] [PATCH v4 6/8] eal/windows: improve CPU and NUMA node detection Dmitry Kozlyuk
2020-04-28 23:50 ` [dpdk-dev] [PATCH v4 7/8] eal/windows: initialize hugepage info Dmitry Kozlyuk
2020-04-28 23:50 ` [dpdk-dev] [PATCH v4 8/8] eal/windows: implement basic memory management Dmitry Kozlyuk
2020-04-29 1:18 ` Ranjit Menon
2020-05-01 19:19 ` Dmitry Kozlyuk
2020-05-05 16:24 ` Burakov, Anatoly
2020-05-05 23:20 ` Dmitry Kozlyuk
2020-05-06 9:46 ` Burakov, Anatoly
2020-05-06 21:53 ` Dmitry Kozlyuk
2020-05-07 11:57 ` Burakov, Anatoly
2020-05-13 8:24 ` Fady Bader
2020-05-13 8:42 ` Dmitry Kozlyuk
2020-05-13 9:09 ` Fady Bader
2020-05-13 9:22 ` Fady Bader
2020-05-13 9:38 ` Dmitry Kozlyuk
2020-05-13 12:25 ` Fady Bader
2020-05-18 0:17 ` Dmitry Kozlyuk
2020-05-18 22:25 ` Dmitry Kozlyuk
2020-05-25 0:37 ` [dpdk-dev] [PATCH v5 0/8] Windows " Dmitry Kozlyuk
2020-05-25 0:37 ` [dpdk-dev] [PATCH v5 01/11] eal: replace rte_page_sizes with a set of constants Dmitry Kozlyuk
2020-05-25 0:37 ` [dpdk-dev] [PATCH v5 02/11] eal: introduce internal wrappers for file operations Dmitry Kozlyuk
2020-05-28 7:59 ` Thomas Monjalon
2020-05-28 10:09 ` Dmitry Kozlyuk
2020-05-28 11:29 ` Thomas Monjalon
2020-05-25 0:37 ` [dpdk-dev] [PATCH v5 03/11] eal: introduce memory management wrappers Dmitry Kozlyuk
2020-05-27 6:33 ` Ray Kinsella
2020-05-27 16:34 ` Dmitry Kozlyuk
2020-05-28 11:26 ` Burakov, Anatoly
2020-06-01 21:08 ` Thomas Monjalon
2020-05-28 11:52 ` Burakov, Anatoly
2020-05-25 0:37 ` [dpdk-dev] [PATCH v5 04/11] eal/mem: extract common code for memseg list initialization Dmitry Kozlyuk
2020-05-28 7:31 ` Thomas Monjalon
2020-05-28 10:04 ` Dmitry Kozlyuk
2020-05-28 11:46 ` Burakov, Anatoly
2020-05-28 14:41 ` Dmitry Kozlyuk
2020-05-29 8:49 ` Burakov, Anatoly
2020-05-28 12:19 ` Burakov, Anatoly
2020-05-25 0:37 ` [dpdk-dev] [PATCH v5 05/11] eal/mem: extract common code for dynamic memory allocation Dmitry Kozlyuk
2020-05-28 8:34 ` Thomas Monjalon
2020-05-28 12:21 ` Burakov, Anatoly
2020-05-28 13:24 ` Dmitry Kozlyuk
2020-05-25 0:37 ` [dpdk-dev] [PATCH v5 06/11] trace: add size_t field emitter Dmitry Kozlyuk
2020-05-25 5:53 ` Jerin Jacob
2020-05-25 0:37 ` [dpdk-dev] [PATCH v5 07/11] eal/windows: add tracing support stubs Dmitry Kozlyuk
2020-05-25 0:37 ` [dpdk-dev] [PATCH v5 08/11] eal/windows: replace sys/queue.h with a complete one from FreeBSD Dmitry Kozlyuk
2020-05-25 0:37 ` [dpdk-dev] [PATCH v5 09/11] eal/windows: improve CPU and NUMA node detection Dmitry Kozlyuk
2020-05-25 0:37 ` [dpdk-dev] [PATCH v5 10/11] eal/windows: initialize hugepage info Dmitry Kozlyuk
2020-05-25 0:37 ` [dpdk-dev] [PATCH v5 11/11] eal/windows: implement basic memory management Dmitry Kozlyuk
2020-06-02 23:03 ` [dpdk-dev] [PATCH v6 00/11] Windows " Dmitry Kozlyuk
2020-06-02 23:03 ` [dpdk-dev] [PATCH v6 01/11] eal: replace rte_page_sizes with a set of constants Dmitry Kozlyuk
2020-06-03 1:59 ` Stephen Hemminger
2020-06-02 23:03 ` [dpdk-dev] [PATCH v6 02/11] eal: introduce internal wrappers for file operations Dmitry Kozlyuk
2020-06-03 12:07 ` Neil Horman
2020-06-03 12:34 ` Dmitry Kozlyuk
2020-06-04 21:07 ` Neil Horman
2020-06-05 0:16 ` Dmitry Kozlyuk
2020-06-05 11:19 ` Neil Horman
2020-06-02 23:03 ` [dpdk-dev] [PATCH v6 03/11] eal: introduce memory management wrappers Dmitry Kozlyuk
2020-06-02 23:03 ` [dpdk-dev] [PATCH v6 04/11] eal/mem: extract common code for memseg list initialization Dmitry Kozlyuk
2020-06-09 13:36 ` Burakov, Anatoly
2020-06-09 14:17 ` Dmitry Kozlyuk
2020-06-10 10:26 ` Burakov, Anatoly
2020-06-10 14:31 ` Dmitry Kozlyuk
2020-06-10 15:48 ` Burakov, Anatoly
2020-06-10 16:39 ` Dmitry Kozlyuk
2020-06-11 8:59 ` Burakov, Anatoly
2020-06-02 23:03 ` [dpdk-dev] [PATCH v6 05/11] eal/mem: extract common code for dynamic memory allocation Dmitry Kozlyuk
2020-06-02 23:03 ` [dpdk-dev] [PATCH v6 06/11] trace: add size_t field emitter Dmitry Kozlyuk
2020-06-03 3:29 ` Jerin Jacob
2020-06-02 23:03 ` [dpdk-dev] [PATCH v6 07/11] eal/windows: add tracing support stubs Dmitry Kozlyuk
2020-06-02 23:03 ` [dpdk-dev] [PATCH v6 08/11] eal/windows: replace sys/queue.h with a complete one from FreeBSD Dmitry Kozlyuk
2020-06-02 23:03 ` [dpdk-dev] [PATCH v6 09/11] eal/windows: improve CPU and NUMA node detection Dmitry Kozlyuk
2020-06-02 23:03 ` [dpdk-dev] [PATCH v6 10/11] eal/windows: initialize hugepage info Dmitry Kozlyuk
2020-06-02 23:03 ` [dpdk-dev] [PATCH v6 11/11] eal/windows: implement basic memory management Dmitry Kozlyuk
2020-06-08 7:41 ` [dpdk-dev] [PATCH v6 00/11] Windows " Dmitry Kozlyuk
2020-06-08 7:41 ` [dpdk-dev] [PATCH v7 01/11] eal: replace rte_page_sizes with a set of constants Dmitry Kozlyuk
2020-06-08 7:41 ` [dpdk-dev] [PATCH v7 02/11] eal: introduce internal wrappers for file operations Dmitry Kozlyuk
2020-06-08 7:41 ` [dpdk-dev] [PATCH v7 03/11] eal: introduce memory management wrappers Dmitry Kozlyuk
2020-06-08 7:41 ` [dpdk-dev] [PATCH v7 04/11] eal/mem: extract common code for memseg list initialization Dmitry Kozlyuk
2020-06-09 11:14 ` Tal Shnaiderman
2020-06-09 13:49 ` Burakov, Anatoly
2020-06-08 7:41 ` [dpdk-dev] [PATCH v7 05/11] eal/mem: extract common code for dynamic memory allocation Dmitry Kozlyuk
2020-06-08 7:41 ` [dpdk-dev] [PATCH v7 06/11] trace: add size_t field emitter Dmitry Kozlyuk
2020-06-08 7:41 ` [dpdk-dev] [PATCH v7 07/11] eal/windows: add tracing support stubs Dmitry Kozlyuk
2020-06-08 7:41 ` [dpdk-dev] [PATCH v7 08/11] eal/windows: replace sys/queue.h with a complete one from FreeBSD Dmitry Kozlyuk
2020-06-08 7:41 ` [dpdk-dev] [PATCH v7 09/11] eal/windows: improve CPU and NUMA node detection Dmitry Kozlyuk
2020-06-08 7:41 ` [dpdk-dev] [PATCH v7 10/11] eal/windows: initialize hugepage info Dmitry Kozlyuk
2020-06-08 7:41 ` [dpdk-dev] [PATCH v7 11/11] eal/windows: implement basic memory management Dmitry Kozlyuk
2020-06-10 14:27 ` [dpdk-dev] [PATCH v8 00/11] Windows " Dmitry Kozlyuk
2020-06-10 14:27 ` [dpdk-dev] [PATCH v8 01/11] eal: replace rte_page_sizes with a set of constants Dmitry Kozlyuk
2020-06-10 14:27 ` [dpdk-dev] [PATCH v8 02/11] eal: introduce internal wrappers for file operations Dmitry Kozlyuk
2020-06-11 17:13 ` Thomas Monjalon
2020-06-10 14:27 ` [dpdk-dev] [PATCH v8 03/11] eal: introduce memory management wrappers Dmitry Kozlyuk
2020-06-12 10:47 ` Thomas Monjalon
2020-06-12 13:44 ` Dmitry Kozliuk
2020-06-12 13:54 ` Thomas Monjalon
2020-06-12 20:24 ` Dmitry Kozliuk
2020-06-12 21:37 ` Thomas Monjalon
2020-06-10 14:27 ` [dpdk-dev] [PATCH v8 04/11] eal/mem: extract common code for memseg list initialization Dmitry Kozlyuk
2020-06-12 15:39 ` Thomas Monjalon
2020-06-10 14:27 ` [dpdk-dev] [PATCH v8 05/11] eal/mem: extract common code for dynamic memory allocation Dmitry Kozlyuk
2020-06-10 14:27 ` [dpdk-dev] [PATCH v8 06/11] trace: add size_t field emitter Dmitry Kozlyuk
2020-06-10 14:27 ` [dpdk-dev] [PATCH v8 07/11] eal/windows: add tracing support stubs Dmitry Kozlyuk
2020-06-10 14:27 ` [dpdk-dev] [PATCH v8 08/11] eal/windows: replace sys/queue.h with a complete one from FreeBSD Dmitry Kozlyuk
2020-06-10 14:27 ` [dpdk-dev] [PATCH v8 09/11] eal/windows: improve CPU and NUMA node detection Dmitry Kozlyuk
2020-06-12 21:45 ` Thomas Monjalon
2020-06-12 22:09 ` Thomas Monjalon
2020-06-10 14:27 ` [dpdk-dev] [PATCH v8 10/11] eal/windows: initialize hugepage info Dmitry Kozlyuk
2020-06-12 21:55 ` Thomas Monjalon
2020-06-10 14:27 ` [dpdk-dev] [PATCH v8 11/11] eal/windows: implement basic memory management Dmitry Kozlyuk
2020-06-12 22:12 ` Thomas Monjalon
2020-06-11 17:29 ` [dpdk-dev] [PATCH v8 00/11] Windows " Thomas Monjalon
2020-06-12 22:00 ` Thomas Monjalon
2020-06-15 0:43 ` [dpdk-dev] [PATCH v9 00/12] " Dmitry Kozlyuk
2020-06-15 0:43 ` [dpdk-dev] [PATCH v9 01/12] eal: replace rte_page_sizes with a set of constants Dmitry Kozlyuk
2020-06-15 0:43 ` [dpdk-dev] [PATCH v9 02/12] eal: introduce internal wrappers for file operations Dmitry Kozlyuk
2020-06-15 0:43 ` [dpdk-dev] [PATCH v9 03/12] eal: introduce memory management wrappers Dmitry Kozlyuk
2020-06-15 6:03 ` Kinsella, Ray
2020-06-15 7:41 ` Dmitry Kozlyuk
2020-06-15 7:41 ` Kinsella, Ray
2020-06-15 10:53 ` Neil Horman
2020-06-15 11:10 ` Dmitry Kozlyuk
2020-06-15 0:43 ` [dpdk-dev] [PATCH v9 04/12] eal/mem: extract common code for memseg list initialization Dmitry Kozlyuk
2020-06-15 13:13 ` Thomas Monjalon
2020-06-15 0:43 ` [dpdk-dev] [PATCH v9 05/12] eal/mem: extract common code for dynamic memory allocation Dmitry Kozlyuk
2020-06-15 0:43 ` [dpdk-dev] [PATCH v9 06/12] trace: add size_t field emitter Dmitry Kozlyuk
2020-06-15 0:43 ` [dpdk-dev] [PATCH v9 07/12] eal/windows: add tracing support stubs Dmitry Kozlyuk
2020-06-15 0:43 ` [dpdk-dev] [PATCH v9 08/12] eal/windows: replace sys/queue.h with a complete one from FreeBSD Dmitry Kozlyuk
2020-06-15 0:43 ` [dpdk-dev] [PATCH v9 09/12] eal/windows: improve CPU and NUMA node detection Dmitry Kozlyuk
2020-06-15 15:21 ` Thomas Monjalon
2020-06-15 15:39 ` Dmitry Kozlyuk
2020-06-15 0:43 ` [dpdk-dev] [PATCH v9 10/12] doc/windows: split build and run instructions Dmitry Kozlyuk
2020-06-15 0:43 ` [dpdk-dev] [PATCH v9 11/12] eal/windows: initialize hugepage info Dmitry Kozlyuk
2020-06-15 0:43 ` [dpdk-dev] [PATCH v9 12/12] eal/windows: implement basic memory management Dmitry Kozlyuk
2020-06-15 17:34 ` [dpdk-dev] [PATCH v9 00/12] Windows " Thomas Monjalon
2020-06-16 1:52 ` Ranjit Menon
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=87a53d30-0cf4-2e0d-1336-3420f0e0b6d3@intel.com \
--to=anatoly.burakov@intel.com \
--cc=Narcisa.Vasile@microsoft.com \
--cc=bruce.richardson@intel.com \
--cc=dev@dpdk.org \
--cc=dmitry.kozliuk@gmail.com \
--cc=dmitrym@microsoft.com \
--cc=fady@mellanox.com \
--cc=talshn@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).