Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] Use IPDK-container to speed-up the DPDK-PTF CI #4212

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

Hoooao
Copy link
Contributor

@Hoooao Hoooao commented Oct 30, 2023

Now the DPDK-PTF takes ~20min to finish with ccache and ~1h to finish without ccache. Saved ~40min from building IPDK/infrap4d and related dependencies.

Issue:
We have 2 non-deterministic issues seemingly related to memory and gRPC. See https://github.com/Hoooao/p4c-dpdk-ci-pipeline/actions/runs/6663670233/job/18109927830

Docker init

copy-out work

Docker build added

Docker ctest - 4 fail
Copy link
Collaborator

@fruffy fruffy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

First round of comments. These seems decently reliable already.

.github/workflows/CI-DOCKER-DPDK.yml Outdated Show resolved Hide resolved
.github/workflows/CI-DOCKER-DPDK.yml Outdated Show resolved Hide resolved
@@ -0,0 +1,54 @@
FROM ghcr.io/ipdk-io/ipdk-ubuntu2004-x86_64:ipdk_v23.07
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tools might be a strange folder for this file. Maybe create a docker folder?

RUN apt-get install rsync git ccache libhugetlbfs-bin -y
RUN ccache -s

# Update GCC to 11 -> GCC-9 cause config problem, remove after base OS is updated to 22.04
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It might be better to wait for a Ubuntu 22.04 docker version. @jafingerhut
anyone we can poke there?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am guessing you are asking whether someone at Intel might publish a docker image with IPDK software already compiled and installed, rather than following instructions like these? https://github.com/ipdk-io/ipdk/blob/main/build/networking/README_DOCKER.md

If so, let me know and I can try pinging a couple of people to find out if they have any intention of supporting such a thing.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah apologize, let me clarify:
https://github.com/orgs/ipdk-io/packages?repo_name=ipdk
We have borrowed a docker image from this list of images. However, only Ubuntu 20.04 is available. The DPDK target is only tested with Ubuntu 22.04. It would be nice to have a 22.04 version to unify things.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, my docker-fu is still weak, so asking to clarify. You are running these tests on a base OS that is Ubuntu 22.04, and a docker image created using Ubuntu 20.04 does not work there, and you would prefer a docker image that was built specifically for a base OS of Ubuntu 22.04?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The docker image is built using a base OS that is Ubuntu 22.04, but the docker image itself is 20.04. That is normally fine, but the p4-dpdk-target itself is built with Ubuntu 22.04. To get it to work on Ubuntu 20.04 requires a bunch of workarounds. It would be nice to remove this confounding factor.

We thought we fixed the nondeterministic failures but that is sadly still not the case.

# infrap4d deps
WORKDIR /root
RUN sudo apt install libatomic1 libnl-route-3-dev openssl -y
RUN rsync -avh ./networking-recipe/deps_install/* $IPDK_INSTALL_DIR
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a little hacky, wish we could just use one single folder...

tools/dpdk_ptf.Dockerfile Outdated Show resolved Hide resolved
tools/dpdk_ptf.Dockerfile Outdated Show resolved Hide resolved
tools/dpdk_ptf.Dockerfile Show resolved Hide resolved
tools/dpdk_ptf.Dockerfile Outdated Show resolved Hide resolved
@fruffy fruffy changed the title [WIP] Use IPDK-container to Spped-up DPDK-PTF CI [WIP] Use IPDK-container to speed-up the DPDK-PTF CI Nov 1, 2023
@fruffy fruffy added the dpdk Topics related to the DPDK back end label Nov 3, 2023
@fruffy fruffy added the infrastructure Topics related to code style and build and test infrastructure. label Feb 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dpdk Topics related to the DPDK back end infrastructure Topics related to code style and build and test infrastructure.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants