[dpdk-dev] [PATCH v9 00/12] Windows basic memory management
Ranjit Menon
ranjit.menon at intel.com
Tue Jun 16 03:52:33 CEST 2020
On 6/14/2020 5:43 PM, Dmitry Kozlyuk wrote:
> Note for v9:
> rte_eal_memory.h renamed, dependent patchsets have to be updated.
>
> This patchset implements basic MM with the following features:
>
> * Hugepages are dynamically allocated in user-mode.
> * Only 2MB hugepages are supported.
> * IOVA is always PA, obtained through kernel-mode driver.
> * No 32-bit support (presumably not demanded).
> * Ni multi-process support (it is forcefully disabled).
> * No-huge mode for testing without IOVA is available.
>
> Testing revealed Windows Server 2019 does not allow allocating hugepage
> memory at a reserved address, despite advertised API. So allocator has
> to temporary free the region to be allocated. This creates in inherent
> race condition. This issue is being discussed with Microsoft privately.
>
> New EAL public functions for memory mapping are introduced to mitigate
> OS differences in DPDK libraries and applications: rte_mem_map,
> rte_mem_unmap, rte_mem_lock, rte_mem_page_size.
>
> To support common MM routines, internal wrappers for low-level memory
> reservation and file management are introduced. These changes affect
> Linux and FreeBSD EAL. Shared code is placed unded /unix/ subdirectory
> (suggested by Thomas).
>
> To avoid code duplication between Linux and Windows EAL, common code
> for EALs supporting dynamic memory allocation is extracted
> (discussed with Anatoly Burakov in v4 thread). This is a separate
> patch to ease the review, but it can be merged with the previous one.
>
> EAL tracepoints save size_t values as long, which is invalid on Windows.
> New size_t emitter for tracepoints is introduced (suggested by Jerin
> Jacob to Fady Bader, see [1]). Also, to avoid workaround in every file
> using the tracepoints, stubs are added to Windows EAL.
>
> Entire <sys/queue.h> is imported from FreeBSD, replacing existing
> partial import. There is already a license exception for this file.
> The file is imported as-is, so it causes a bunch of checkpatch warnings.
>
> [1]: http://mails.dpdk.org/archives/dev/2020-May/168076.html
>
> ---
>
> v9:
> * Fix build on 32-bit and FreeBSD.
> * Rename rte_eal_memory.h to rte_eal_paging.h.
> * Do not use rte_panic() in library code.
> * Fix typos, comments, string formatting.
> * Split documentation commits.
>
Great work on this, Dmitry!
I know the patch has already been applied, but:
Acked-by: Ranjit Menon <ranjit.menon at intel.com>
More information about the dev
mailing list