From patchwork Tue Jul 3 12:09:43 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alejandro Lucero X-Patchwork-Id: 42147 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id DF91F1BE65; Tue, 3 Jul 2018 14:10:00 +0200 (CEST) Received: from netronome.com (host-79-78-33-110.static.as9105.net [79.78.33.110]) by dpdk.org (Postfix) with ESMTP id CC1C41BB6F; Tue, 3 Jul 2018 14:09:57 +0200 (CEST) Received: from netronome.com (localhost [127.0.0.1]) by netronome.com (8.14.4/8.14.4/Debian-4.1ubuntu1) with ESMTP id w63C9rew033382; Tue, 3 Jul 2018 13:09:53 +0100 Received: (from alucero@localhost) by netronome.com (8.14.4/8.14.4/Submit) id w63C9p7P033380; Tue, 3 Jul 2018 13:09:51 +0100 From: Alejandro Lucero To: dev@dpdk.org Cc: stable@dpdk.org, anatoly.burakov@intel.com, maxime.coquelin@redhat.com Date: Tue, 3 Jul 2018 13:09:43 +0100 Message-Id: <1530619789-33337-1-git-send-email-alejandro.lucero@netronome.com> X-Mailer: git-send-email 1.9.1 Subject: [dpdk-dev] [PATCH v2 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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. This patchset applies on 17.11.3. Similar changes will be submitted to main DPDK branch soon. v2: - add get_addr_hint function - call munmap when hint given and not used by mmap - create dma mask in one step - refactor logs