From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124])
	by inbox.dpdk.org (Postfix) with ESMTP id 0DD1CA00C3;
	Thu, 12 May 2022 15:57:34 +0200 (CEST)
Received: from [217.70.189.124] (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id E938140E64;
	Thu, 12 May 2022 15:57:33 +0200 (CEST)
Received: from mail-lj1-f176.google.com (mail-lj1-f176.google.com
 [209.85.208.176])
 by mails.dpdk.org (Postfix) with ESMTP id 037EC40DDD
 for <dev@dpdk.org>; Thu, 12 May 2022 15:57:32 +0200 (CEST)
Received: by mail-lj1-f176.google.com with SMTP id m23so6653777ljc.0
 for <dev@dpdk.org>; Thu, 12 May 2022 06:57:31 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=semihalf-com.20210112.gappssmtp.com; s=20210112;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
 :cc; bh=pVP+Yy/V8Af89vw7CM5vuOW6Y/9Fi0cIFN4HHnV2HvE=;
 b=JQ4NvLdG+sqBiGCNak8WdE3CDuMPMF93nyQoN850R964TwQz0KEJkgsUbbkGyemDlp
 2L4chGD5b6RAnfT/l4I5snIcNpQi3zHFlfBW91IH/o6I5PzyD34GMDsHa02oHW0HHT+I
 +U+89c9QeFEtWHDGWj8ikm5SDGm8AFjnik2YJfiOlMWd1RvG0QGWk4v8S+VyPzhwebIF
 yAFRfnbZBGm194td2g2LU/y8703hbdAauSaHKIzRrlSxM6xyMtiYTPLnQXTAeC/ie+OY
 HqBklN2VYzuJuM3b3NyaLAb9V7bpiDhla1csyFaCI7C2srzhuoFKuNbGOZyFKDsfXhDH
 CtRg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to:cc;
 bh=pVP+Yy/V8Af89vw7CM5vuOW6Y/9Fi0cIFN4HHnV2HvE=;
 b=s2HF07Kuxvdw6775U8MA2xtSLINZkCuQdL+cD2sTndHp2SthkFmVihCyRWymt6sATi
 UedOv9wdyxeodETaQ5KPpMmETfokh+yF0DlU4JgyCdTrgZL8FviRdDgr7qbk3qUvwUQo
 NSgH1B0WOBYw9uepuQxGAk5f/WkZ/1iozDl1czlVMcxKTG8MizrEQGXA4E3tWFFnMjUr
 ErLmw1Sb4BwjKXN1gP2uWAsZxUA/l0BS/g05iaMNoVEysjvE98+LwvXghOZhNjPqdrzh
 64dNr3TsDgtKcaObc8TN2EPALXGaMKuvC6BR4LLAF9Mx/7EpOfeWJCqTfAGtoWHcK3iD
 u3Lg==
X-Gm-Message-State: AOAM5318e12SOO+A5jKiXTfBd5gOon/yr/XOnan804mZ+/o8q1MAmI/s
 ZBTlb27vLlxEUUTpq1oGPrYgwjYjF9NvoCnT70XuJA==
X-Google-Smtp-Source: ABdhPJzaQXhTkjTUeC+I2lQk6KhyoeWbV+RuiGiVSs0cwzpKJrPJLo+Y4lRpeKZvyZlScXm2eNJzvS4q3i7u2z3KZos=
X-Received: by 2002:a2e:9188:0:b0:24f:1a0d:6bbd with SMTP id
 f8-20020a2e9188000000b0024f1a0d6bbdmr87947ljg.226.1652363851538; Thu, 12 May
 2022 06:57:31 -0700 (PDT)
MIME-Version: 1.0
References: <20220505173003.3242618-1-kda@semihalf.com>
 <07665f47-a437-d1df-d613-e01062a6668c@canonical.com>
 <CALVGJWKj528M2X7rxKx1AViK5uC6dV+DhtLN6LZNxBT-UxLzJg@mail.gmail.com>
 <9f966213-241b-20be-60f3-bd5ec456d051@canonical.com>
In-Reply-To: <9f966213-241b-20be-60f3-bd5ec456d051@canonical.com>
From: =?UTF-8?Q?Stanis=C5=82aw_Kardach?= <kda@semihalf.com>
Date: Thu, 12 May 2022 15:56:55 +0200
Message-ID: <CALVGJWKNBAs2b+Dh82+22JJUrwduYBgezd9=o0gdZ3YtnW15qw@mail.gmail.com>
Subject: Re: [PATCH 00/11] Introduce support for RISC-V architecture
To: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Cc: Frank Zhao <Frank.Zhao@starfivetech.com>, Sam Grove <sam.grove@sifive.com>,
 Marcin Wojtas <mw@semihalf.com>, upstream@semihalf.com, dev <dev@dpdk.org>
Content-Type: text/plain; charset="UTF-8"
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org

On Thu, May 12, 2022 at 11:46 AM Heinrich Schuchardt
<heinrich.schuchardt@canonical.com> wrote:
<snip>
> The above failures for performance tests without a bound NIC can be
> reproduced on x86_64. So this is not RISC-V specific.
>
> With both ports of an Intel Corporation Ethernet Controller 10-Gigabit
> X540-AT2 bound to the sfio-pci driver some fast tests fail on the
> Unmatched board:
>
>   16/173 DPDK:fast-tests / eal_flags_n_opt_autotest FAIL 5.54s (exit
> status 255 or signal 127 SIGinvalid)
>  >>> DPDK_TEST=eal_flags_n_opt_autotest MALLOC_PERTURB_=31
> build/app/test/dpdk-test --file-prefix=eal_flags_n_opt_autotest
>   18/173 DPDK:fast-tests / eal_flags_no_huge_autotest FAIL 5.31s (exit
> status 255 or signal 127 SIGinvalid)
>  >>> DPDK_TEST=eal_flags_no_huge_autotest MALLOC_PERTURB_=150
> build/app/test/dpdk-test --file-prefix=eal_flags_no_huge_autotest
>   21/173 DPDK:fast-tests / eal_flags_vdev_opt_autotest FAIL 5.38s (exit
> status 255 or signal 127 SIGinvalid)
>  >>> MALLOC_PERTURB_=71 DPDK_TEST=eal_flags_vdev_opt_autotest
> build/app/test/dpdk-test --file-prefix=eal_flags_vdev_opt_autotest
>   25/173 DPDK:fast-tests / eal_flags_misc_autotest FAIL 5.58s (exit
> status 255 or signal 127 SIGinvalid)
>  >>> DPDK_TEST=eal_flags_misc_autotest MALLOC_PERTURB_=130
> build/app/test/dpdk-test --file-prefix=eal_flags_misc_autotest
>
> The eal* tests succeed on x86_64 with a bound Intel I211 NIC.
The common element of those tests is --no-huge flag. The reason why
they are failing is a combination of --no-huge and a lack of IOMMU
(VT-d on Intel). Lack of IOMMU means that DMA will be done using
physical addresses (RTE_IOVA_PA), however that implicitly requires
hugepages to function. More details are in [1]. That mail also shows
how to replicate the same issue on x86 even without a device bound to
UIO.
The following fails:
  $ ./app/test/dpdk-test --iova-mode=pa --no-huge
But this works:
  sudo ./app/test/dpdk-test --iova-mode=pa
However fixing it is not as straightforward as I thought (some tests
are not run where they should - [3]). As I explain in [2], the PCI bus
probing may force RTE_IOVA_PA on no-IOMMU platforms. That gives the
same effect as passing `--iova-mode=pa`. If no PCI device is bound,
then DPDK will be in RTE_IOVA_DC mode and that works just fine with
--no-huge.

As DPDK CI does not bind any device for fast-tests I've concluded that
it is the way those tests should be run. If not then I'm not sure how
should I handle --iova-mode=pa + --no-huge in general. Any
suggestions?

[1] http://mails.dpdk.org/archives/dev/2021-June/210773.html
[2] http://mails.dpdk.org/archives/dev/2021-June/211146.html
[3] https://patches.dpdk.org/project/dpdk/patch/20210604141601.275430-4-kda@semihalf.com/

>
> If the eal* tests are run depends on the installed Linux packages. I
> have used 'apt build-dep dpdk' on Ubuntu Jammy to install prerequisite
> packages before building DPDK.
>
> Best regards
>
> Heinrich
>