diff mbox series

[ovs-dev,v8,2/9] system-dpdk: Don't require hugetlbfs.

Message ID 20231027153118.580349-2-david.marchand@redhat.com
State Superseded
Headers show
Series [ovs-dev,v8,1/9] system-dpdk: Introduce helpers for testpmd. | expand

Checks

Context Check Description
ovsrobot/apply-robot success apply and check: success
ovsrobot/github-robot-_Build_and_Test success github build: passed
ovsrobot/intel-ovs-compilation fail test: fail

Commit Message

David Marchand Oct. 27, 2023, 3:31 p.m. UTC
dpdk-testpmd does not need hugetlbfs backing as we don't require
multiprocess support in OVS unit tests.

Switch to --in-memory and remove the (then unneeded) check on
hugetlbfs presence.

Acked-by: Aaron Conole <aconole@redhat.com>
Acked-by: Eelco Chaudron <echaudro@redhat.com>
Signed-off-by: David Marchand <david.marchand@redhat.com>
---
Changes since v7:
- reverted use of dynamic allocations and kept initial memory
  reservation: this avoids random failures when testpmd and ovs-dpdk
  try to allocate memory at the same time,

---
 tests/system-dpdk-macros.at | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

Comments

David Marchand Oct. 27, 2023, 3:41 p.m. UTC | #1
On Fri, Oct 27, 2023 at 5:31 PM David Marchand
<david.marchand@redhat.com> wrote:
>
> dpdk-testpmd does not need hugetlbfs backing as we don't require
> multiprocess support in OVS unit tests.
>
> Switch to --in-memory and remove the (then unneeded) check on
> hugetlbfs presence.
>
> Acked-by: Aaron Conole <aconole@redhat.com>
> Acked-by: Eelco Chaudron <echaudro@redhat.com>
> Signed-off-by: David Marchand <david.marchand@redhat.com>
> ---
> Changes since v7:
> - reverted use of dynamic allocations and kept initial memory
>   reservation: this avoids random failures when testpmd and ovs-dpdk
>   try to allocate memory at the same time,

Just a heads up on this change.

While testing the v8 series, I hit random failures on the mtu unit tests.
testpmd would fail to allocate memory in hugepages.

I suspect this has to do with OVS allocating memory in // of testpmd.
Reverting to an initial reserved memory makes the issue disappear so I
removed this change and kept existing behavior.
There may still be a race underneath but at least the situation is as
bad as before.
Eelco Chaudron Nov. 13, 2023, 11:15 a.m. UTC | #2
On 27 Oct 2023, at 17:41, David Marchand wrote:

> On Fri, Oct 27, 2023 at 5:31 PM David Marchand
> <david.marchand@redhat.com> wrote:
>>
>> dpdk-testpmd does not need hugetlbfs backing as we don't require
>> multiprocess support in OVS unit tests.
>>
>> Switch to --in-memory and remove the (then unneeded) check on
>> hugetlbfs presence.
>>
>> Acked-by: Aaron Conole <aconole@redhat.com>
>> Acked-by: Eelco Chaudron <echaudro@redhat.com>
>> Signed-off-by: David Marchand <david.marchand@redhat.com>
>> ---
>> Changes since v7:
>> - reverted use of dynamic allocations and kept initial memory
>>   reservation: this avoids random failures when testpmd and ovs-dpdk
>>   try to allocate memory at the same time,
>
> Just a heads up on this change.
>
> While testing the v8 series, I hit random failures on the mtu unit tests.
> testpmd would fail to allocate memory in hugepages.
>
> I suspect this has to do with OVS allocating memory in // of testpmd.
> Reverting to an initial reserved memory makes the issue disappear so I
> removed this change and kept existing behavior.
> There may still be a race underneath but at least the situation is as
> bad as before.

Hi David,

I ran the full test 10 times, and it was not failing :( But I guess we should not apply, until your research has completed.

Thanks,

Eelco
diff mbox series

Patch

diff --git a/tests/system-dpdk-macros.at b/tests/system-dpdk-macros.at
index 2cfd26d840..a176a57a4b 100644
--- a/tests/system-dpdk-macros.at
+++ b/tests/system-dpdk-macros.at
@@ -7,9 +7,6 @@  m4_define([OVS_DPDK_PRE_CHECK],
   [dnl Check Hugepages
    AT_CHECK([cat /proc/meminfo], [], [stdout])
    AT_SKIP_IF([grep -E 'HugePages_Free: *0' stdout], [], [stdout])
-   AT_CHECK([mount], [], [stdout])
-   AT_CHECK([grep 'hugetlbfs' stdout], [], [stdout], [])
-
 ])
 
 
@@ -97,7 +94,7 @@  m4_define([OVS_DPDK_CHECK_TESTPMD],
 m4_define([OVS_DPDK_START_TESTPMD],
   [AT_CHECK([lscpu], [], [stdout])
    AT_CHECK([cat stdout | grep "NUMA node(s)" | awk '{c=1; while (c++<$(3)) {printf "512,"}; print "512"}' > NUMA_NODE])
-   eal_options="--socket-mem="$(cat NUMA_NODE)" --file-prefix page0 --single-file-segments --no-pci"
+   eal_options="--in-memory --socket-mem="$(cat NUMA_NODE)" --single-file-segments --no-pci"
    options="$1"
    test "$options" != "${options%% -- *}" || options="$options -- "
    eal_options="$eal_options ${options%% -- *}"