From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 8AE1DA04A3; Mon, 15 Jun 2020 19:34:45 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 91EE32B94; Mon, 15 Jun 2020 19:34:44 +0200 (CEST) Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com [66.111.4.27]) by dpdk.org (Postfix) with ESMTP id ACE2B100C for ; Mon, 15 Jun 2020 19:34:42 +0200 (CEST) Received: from compute7.internal (compute7.nyi.internal [10.202.2.47]) by mailout.nyi.internal (Postfix) with ESMTP id DB14B5C011D; Mon, 15 Jun 2020 13:34:40 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute7.internal (MEProxy); Mon, 15 Jun 2020 13:34:40 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=monjalon.net; h= from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding:content-type; s=fm1; bh= hKG87qGPtUhTRIw3vu7HuqKvWa3uoBglNe2Rsmv5NNs=; b=UMQ3bXQXPuBjvoXi inZr+zUDwRZ6BSu041xn2aWdQdVI9wvNBivxO6eh1eJhb5xmSxW2yXkozM96Y9k0 eusfDOmxUNX81zpnmdSfvGwtTUx4bzLSp7gr1+NNAcdT55HEcC5PEVqy/sMjP3Nr BiXQyXfifxA9ZLnk1ThAXKCrk7lIj29br+LRz+dgb+ItYeLG2lvrjQe9D16r95Oy e8hBxmOiMVK1Wk1Eh3eVL4gMlIIjvPFBsRz/8yl9M6aA81QRB9pirwWiomas0Z0Y 72b5OCEBAhps/gA8O9HhueeH0rFF1LPGLzyv5ClOerLF+tHKkwtf2VWTNOMWVVL7 Ekjc0w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm3; bh=hKG87qGPtUhTRIw3vu7HuqKvWa3uoBglNe2Rsmv5N Ns=; b=rKTOLmXCKAbKwJCojUWiz08X5DpQK+1mQXCw/X0QksXTmpxRe0x99vEIh GmQBIf1ZlUAjgHkHI1zgV5VlhlCEKasAdY1eTT2X5PrhcPA0cqUhC0eHtir/EfBh 3AFPrebVDfHcYOmfWFOGSYCPHbdoGYn9lY8JnllH6Wis16PexYWI/VpRuZh1ddeY +NU9dcGsaOQtbfVY4Ex/QodsbwEuk7rIibs/TJUdbT+Sa8biR2CqcxZiwGOh9qhr XbqSV2Fpo1PGAeDEJYd+W6cILuUoNcJP5SvlL/gLQzMX7ePDsAy1mO7T9YLqiDIx Ir4yhWid5FG3QazaCUliUC8t7+RLQ== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduhedrudeikedgudduhecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpefhvffufffkjghfggfgtgesthfuredttddtvdenucfhrhhomhepvfhhohhm rghsucfoohhnjhgrlhhonhcuoehthhhomhgrshesmhhonhhjrghlohhnrdhnvghtqeenuc ggtffrrghtthgvrhhnpeffvdffjeeuteelfeeileduudeugfetjeelveefkeejfeeigeeh teffvdekfeegudenucffohhmrghinhepughpughkrdhorhhgnecukfhppeejjedrudefge drvddtfedrudekgeenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhl fhhrohhmpehthhhomhgrshesmhhonhhjrghlohhnrdhnvght X-ME-Proxy: Received: from xps.localnet (184.203.134.77.rev.sfr.net [77.134.203.184]) by mail.messagingengine.com (Postfix) with ESMTPA id 918D53060FE7; Mon, 15 Jun 2020 13:34:39 -0400 (EDT) From: Thomas Monjalon To: Dmitry Kozlyuk Cc: dev@dpdk.org, Dmitry Malloy , Narcisa Ana Maria Vasile , Fady Bader , Tal Shnaiderman , anatoly.burakov@intel.com Date: Mon, 15 Jun 2020 19:34:37 +0200 Message-ID: <9709996.NNSOVZSyTb@thomas> In-Reply-To: <20200615004354.14380-1-dmitry.kozliuk@gmail.com> References: <20200610142730.31376-1-dmitry.kozliuk@gmail.com> <20200615004354.14380-1-dmitry.kozliuk@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" Subject: Re: [dpdk-dev] [PATCH v9 00/12] Windows basic memory management X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 15/06/2020 02:43, Dmitry Kozlyuk: > 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 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 [...] > Dmitry Kozlyuk (12): > eal: replace rte_page_sizes with a set of constants > eal: introduce internal wrappers for file operations > eal: introduce memory management wrappers > eal/mem: extract common code for memseg list initialization > eal/mem: extract common code for dynamic memory allocation > trace: add size_t field emitter > eal/windows: add tracing support stubs > eal/windows: replace sys/queue.h with a complete one from FreeBSD > eal/windows: improve CPU and NUMA node detection > doc/windows: split build and run instructions > eal/windows: initialize hugepage info > eal/windows: implement basic memory management Applied, thanks for the huge work!