From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ilya Matveychikov Subject: A (possible) problem with `--no-huge` option Date: Sun, 14 May 2017 14:34:14 +0400 Message-ID: <1A9D36CE-8B6D-43A7-BE0C-9F232DFDA263@gmail.com> Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\)) Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable To: dev@dpdk.org Return-path: Received: from mail-wr0-f193.google.com (mail-wr0-f193.google.com [209.85.128.193]) by dpdk.org (Postfix) with ESMTP id 1E499234 for ; Sun, 14 May 2017 12:34:17 +0200 (CEST) Received: by mail-wr0-f193.google.com with SMTP id 6so11446616wrb.1 for ; Sun, 14 May 2017 03:34:17 -0700 (PDT) Received: from [10.1.0.103] (bba193486.alshamil.net.ae. [217.165.96.192]) by smtp.gmail.com with ESMTPSA id s110sm12914827wrc.5.2017.05.14.03.34.15 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 14 May 2017 03:34:16 -0700 (PDT) List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Hi guys, I have a problem while running DPDK with `--no-huge` option. It seems = that the problem occurs since commit = cdc242f260e766bd95a658b5e0686a62ec04f5b0 and that is the change that = affects me: + if ((page & 0x7fffffffffffffULL) =3D=3D 0) + return RTE_BAD_PHYS_ADDR; + What I did is to try to create memory pool using = rte_pktmbuf_pool_create(). I dig into the issue and found that in my = case =E2=80=9Cpage" value is 0x0080000000000000 which means that the = page is not present and =E2=80=9Csoft-dirty=E2=80=9D (according to = kernel=E2=80=99s documentation): * Bits 0-54 page frame number (PFN) if present * Bits 0-4 swap type if swapped * Bits 5-54 swap offset if swapped * Bit 55 pte is soft-dirty (see Documentation/vm/soft-dirty.txt) * Bit 56 page exclusively mapped (since 4.2) * Bits 57-60 zero * Bit 61 page is file-page or shared-anon (since 3.5) * Bit 62 page swapped * Bit 63 page present So, before the change mentioned all =E2=80=9Cworks=E2=80=9D fine and = such pages were not handled. But now the check causes = rte_mempool_populate_default to fail with -EINVAL... Can anyone familiar with the memory pool allocation helps with the = issue? Thanks in advice, Ilya Matveychikov.