From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com [66.111.4.27]) by dpdk.org (Postfix) with ESMTP id 8B13658F6 for ; Sun, 28 Oct 2018 22:04:13 +0100 (CET) Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id 362CA21EF8; Sun, 28 Oct 2018 17:04:13 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute1.internal (MEProxy); Sun, 28 Oct 2018 17:04:13 -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=mesmtp; bh=Sxz0Dd4pj4uqU2dxL8JaV9UI4GzBeJIE/RZ2qHo4E2g=; b=k6fMnjHqZBL2 PhhE+EtvZ9fMA09x4coZfufM7BF8DTBKMMzgx6A74RGcjiWBTM7eThIl8fl+Wav5 ZTSRpH7gJX+JkE6laeliYt19uX7aeoI1nxIyBXHCqr1DjlxErJKem4JTPdnoMGMR fa/d7Qnq0pKDUKZA2y4psNr9xEIK6sk= 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=fm1; bh=Sxz0Dd4pj4uqU2dxL8JaV9UI4GzBeJIE/RZ2qHo4E 2g=; b=VRkdMpb9VOwW9TPWb95IIC0uqHL722iihu+1Hg7bh0TN8GyQV6KSitemt cudZGUi4kXGL2uYlfUoD6xmY3JzUtlwrCc7gkOfgbQU5fXcZ6VFh6w2IObcZrI5I Pscqi4IzjLGnECC+f9Alp5l88DLmKooKw/IXF5mM1BYUhKF5XxXh1X5vudIH0GK1 SnRyWfTnlgIPYXHEmvPB/xfL4f617Nd2WBi6UauXsIxYpMBGafCf6uyV9CqBdn0e X4vKB5dBnqCnJL0w3POAkL3ykqDnx7QIQ3TwqLoti97VUWRgfmUUeKAWigT+bFcR /p7GThOh4A5CX6al4oEzdDx6gPLMQ== X-ME-Sender: 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 87D30E455B; Sun, 28 Oct 2018 17:04:12 -0400 (EDT) From: Thomas Monjalon To: Alejandro Lucero Cc: dev@dpdk.org Date: Sun, 28 Oct 2018 22:04:18 +0100 Message-ID: <4805099.7RpDHruce7@xps> In-Reply-To: <1538743527-8285-1-git-send-email-alejandro.lucero@netronome.com> References: <1538743527-8285-1-git-send-email-alejandro.lucero@netronome.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" Subject: Re: [dpdk-dev] [PATCH v3 0/6] use IOVAs check based on DMA mask 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: , X-List-Received-Date: Sun, 28 Oct 2018 21:04:13 -0000 05/10/2018 14:45, Alejandro Lucero: > I sent a patchset about this to be applied on 17.11 stable. The memory > code has had main changes since that version, so here it is the patchset > adjusted to current master repo. > > This patchset adds, mainly, a check for ensuring IOVAs are within a > restricted range due to addressing limitations with some devices. There > are two known cases: NFP and IOMMU VT-d emulation. > > With this check IOVAs out of range are detected and PMDs can abort > initialization. For the VT-d case, IOVA VA mode is allowed as long as > IOVAs are within the supported range, avoiding to forbid IOVA VA by > default. > > For the addressing limitations known cases, there are just 40(NFP) or > 39(VT-d) bits for handling IOVAs. When using IOVA PA, those limitations > imply 1TB(NFP) or 512M(VT-d) as upper limits, which is likely enough for > most systems. With machines using more memory, the added check will > ensure IOVAs within the range. > > With IOVA VA, and because the way the Linux kernel serves mmap calls > in 64 bits systems, 39 or 40 bits are not enough. It is possible to > give an address hint with a lower starting address than the default one > used by the kernel, and then ensuring the mmap uses that hint or hint plus > some offset. With 64 bits systems, the process virtual address space is > large enoguh for doing the hugepages mmaping within the supported range > when those addressing limitations exist. This patchset also adds a change > for using such a hint making the use of IOVA VA a more than likely > possibility when there are those addressing limitations. > > The check is not done by default but just when it is required. This > patchset adds the check for NFP initialization and for setting the IOVA > mode is an emulated VT-d is detected. Also, because the recent patchset > adding dynamic memory allocation, the check is also invoked for ensuring > the new memsegs are within the required range. > > This patchset could be applied to stable 18.05. Applied, thanks