All of lore.kernel.org
 help / color / mirror / Atom feed
From: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
To: "Stanisław Kardach" <kda@semihalf.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>
Subject: Re: [PATCH 00/11] Introduce support for RISC-V architecture
Date: Thu, 12 May 2022 23:06:38 +0200	[thread overview]
Message-ID: <441757d5-bce9-2f75-9088-87601f22fa4e@canonical.com> (raw)
In-Reply-To: <CALVGJWKNBAs2b+Dh82+22JJUrwduYBgezd9=o0gdZ3YtnW15qw@mail.gmail.com>



On 5/12/22 15:56, Stanisław Kardach wrote:
> 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?

Thanks for your analysis and explanation. The respective tests should 
return TEST_SKIPPED if called with an unsupported parameter combination.

According to your analysis this is not a problem specific to the RISC-V 
series but can be resolved separately.

Maybe you could add a note in doc/guides/rel_notes/known_issues.rst.

Best regards

Heinrich

> 
> [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
>>

      reply	other threads:[~2022-05-12 21:06 UTC|newest]

Thread overview: 64+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-05 17:29 [PATCH 00/11] Introduce support for RISC-V architecture Stanislaw Kardach
2022-05-05 17:29 ` [PATCH 01/11] lpm: add a scalar version of lookupx4 function Stanislaw Kardach
2022-05-05 17:29 ` [PATCH 02/11] examples/l3fwd: fix scalar LPM compilation Stanislaw Kardach
2022-05-05 17:39   ` Stephen Hemminger
2022-05-05 17:49     ` Stanisław Kardach
2022-05-05 18:09       ` Stephen Hemminger
2022-05-05 17:29 ` [PATCH 03/11] eal: add initial support for RISC-V architecture Stanislaw Kardach
2022-05-05 17:29 ` [PATCH 04/11] net/ixgbe: enable vector stubs for RISC-V Stanislaw Kardach
2022-05-05 17:29 ` [PATCH 05/11] net/memif: set memfd syscall ID on RISC-V Stanislaw Kardach
2022-05-05 17:29 ` [PATCH 06/11] net/tap: set BPF syscall ID for RISC-V Stanislaw Kardach
2022-05-05 17:29 ` [PATCH 07/11] examples/l3fwd: enable RISC-V operation Stanislaw Kardach
2022-05-05 17:30 ` [PATCH 08/11] test/cpuflags: add test for RISC-V cpu flag Stanislaw Kardach
2022-05-05 17:30 ` [PATCH 09/11] test/ring: disable problematic tests for RISC-V Stanislaw Kardach
2022-05-05 17:35   ` Stephen Hemminger
2022-05-05 17:43     ` Stanisław Kardach
2022-05-05 18:06       ` Stephen Hemminger
2022-05-10 23:28   ` Honnappa Nagarahalli
2022-05-11 10:07     ` Stanisław Kardach
2022-05-05 17:30 ` [PATCH 10/11] devtools: add RISC-V to test-meson-builds.sh Stanislaw Kardach
2022-05-05 17:30 ` [PATCH 11/11] test/hash: report non HTM numbers for single r/w Stanislaw Kardach
2022-05-06  9:13 ` [PATCH 00/11] Introduce support for RISC-V architecture David Marchand
2022-05-09 12:24   ` Stanisław Kardach
2022-05-09 12:30     ` Thomas Monjalon
2022-05-11  8:09       ` Morten Brørup
2022-05-11 10:28         ` Stanisław Kardach
2022-05-11 11:06           ` Thomas Monjalon
2022-05-09 14:30     ` David Marchand
2022-05-10 11:21       ` Stanisław Kardach
2022-05-10 12:31         ` Thomas Monjalon
2022-05-10 14:00           ` Stanisław Kardach
2022-05-10 14:23             ` Thomas Monjalon
2022-05-10 15:07 ` [PATCH v2 0/8] " Stanislaw Kardach
2022-05-10 15:07   ` [PATCH v2 1/8] eal: add initial " Stanislaw Kardach
2022-05-10 15:07   ` [PATCH v2 2/8] net/ixgbe: enable vector stubs for RISC-V Stanislaw Kardach
2022-05-10 15:07   ` [PATCH v2 3/8] net/memif: set memfd syscall ID on RISC-V Stanislaw Kardach
2022-05-10 15:07   ` [PATCH v2 4/8] net/tap: set BPF syscall ID for RISC-V Stanislaw Kardach
2022-05-10 15:07   ` [PATCH v2 5/8] examples/l3fwd: enable RISC-V operation Stanislaw Kardach
2022-05-10 15:07   ` [PATCH v2 6/8] test/cpuflags: add test for RISC-V cpu flag Stanislaw Kardach
2022-05-10 15:07   ` [PATCH v2 7/8] devtools: add RISC-V to test-meson-builds.sh Stanislaw Kardach
2022-05-10 15:35     ` Stanisław Kardach
2022-05-10 15:07   ` [PATCH v2 8/8] ci: add RISCV64 cross compilation job Stanislaw Kardach
2022-05-10 15:48   ` [PATCH v3 0/8] Introduce support for RISC-V architecture Stanislaw Kardach
2022-05-10 15:48     ` [PATCH v3 1/8] eal: add initial " Stanislaw Kardach
2022-05-13  6:50       ` Heinrich Schuchardt
2022-05-13  8:42         ` Stanisław Kardach
2022-05-13 10:51           ` Heinrich Schuchardt
2022-05-13 11:47             ` Stanisław Kardach
2022-05-13 15:37         ` Stephen Hemminger
2022-05-16  8:00           ` Stanisław Kardach
2022-05-10 15:48     ` [PATCH v3 2/8] net/ixgbe: enable vector stubs for RISC-V Stanislaw Kardach
2022-05-10 15:48     ` [PATCH v3 3/8] net/memif: set memfd syscall ID on RISC-V Stanislaw Kardach
2022-05-10 15:48     ` [PATCH v3 4/8] net/tap: set BPF syscall ID for RISC-V Stanislaw Kardach
2022-05-10 15:48     ` [PATCH v3 5/8] examples/l3fwd: enable RISC-V operation Stanislaw Kardach
2022-05-10 15:48     ` [PATCH v3 6/8] test/cpuflags: add test for RISC-V cpu flag Stanislaw Kardach
2022-05-10 15:48     ` [PATCH v3 7/8] devtools: add RISC-V to test-meson-builds.sh Stanislaw Kardach
2022-05-10 15:48     ` [PATCH v3 8/8] ci: add RISCV64 cross compilation job Stanislaw Kardach
2022-05-12 15:47       ` Aaron Conole
2022-05-12 16:07         ` Stanisław Kardach
2022-05-13 14:33           ` Aaron Conole
2022-05-12  8:04 ` [PATCH 00/11] Introduce support for RISC-V architecture Heinrich Schuchardt
2022-05-12  8:35   ` Stanisław Kardach
2022-05-12  9:46     ` Heinrich Schuchardt
2022-05-12 13:56       ` Stanisław Kardach
2022-05-12 21:06         ` Heinrich Schuchardt [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=441757d5-bce9-2f75-9088-87601f22fa4e@canonical.com \
    --to=heinrich.schuchardt@canonical.com \
    --cc=Frank.Zhao@starfivetech.com \
    --cc=dev@dpdk.org \
    --cc=kda@semihalf.com \
    --cc=mw@semihalf.com \
    --cc=sam.grove@sifive.com \
    --cc=upstream@semihalf.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.