File tree Expand file tree Collapse file tree 11 files changed +107
-9
lines changed Expand file tree Collapse file tree 11 files changed +107
-9
lines changed Original file line number Diff line number Diff line change 35
35
- openssl-qat-engine
36
36
- sgx-sdk-demo
37
37
- sgx-aesmd-demo
38
+ - dsa-dpdk-dmadevtest
38
39
builder : [buildah, docker]
39
40
steps :
40
41
- uses : actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
Original file line number Diff line number Diff line change 18
18
- intel-dsa-plugin
19
19
- intel-idxd-config-initcontainer
20
20
- accel-config-demo
21
+ - dsa-dpdk-dmadevtest
21
22
- intel-deviceplugin-operator
22
23
- name : e2e-iaa-gnr
23
24
targetjob : e2e-iaa
44
45
- intel-dsa-plugin
45
46
- intel-idxd-config-initcontainer
46
47
- accel-config-demo
48
+ - dsa-dpdk-dmadevtest
47
49
- intel-deviceplugin-operator
48
50
- intel-iaa-plugin
49
51
- crypto-perf
Original file line number Diff line number Diff line change @@ -235,6 +235,7 @@ The summary of resources available via plugins in this repository is given in th
235
235
* [ dlb-libdlb-demo-pod.yaml] ( demo/dlb-libdlb-demo-pod.yaml )
236
236
* ` dsa.intel.com ` : ` wq-user-[shared or dedicated] `
237
237
* [ dsa-accel-config-demo-pod.yaml] ( demo/dsa-accel-config-demo-pod.yaml )
238
+ * [ dsa-dpdk-dmadevtest.yaml] ( demo/dsa-dpdk-dmadevtest.yaml )
238
239
* ` fpga.intel.com ` : custom, see [ mappings] ( cmd/fpga_admissionwebhook/README.md#mappings )
239
240
* [ intelfpga-job.yaml] ( demo/intelfpga-job.yaml )
240
241
* ` gpu.intel.com ` : ` i915 ` , ` i915_monitoring ` , ` xe ` or ` xe_monitoring `
Original file line number Diff line number Diff line change @@ -7,6 +7,7 @@ Table of Contents
7
7
* [ Pre-built Images] ( #pre-built-images )
8
8
* [ Verify Plugin Registration] ( #verify-plugin-registration )
9
9
* [ Testing and Demos] ( #testing-and-demos )
10
+ * [ DPDK application] ( #dpdk-application )
10
11
11
12
## Introduction
12
13
@@ -133,3 +134,24 @@ We can test the plugin is working by deploying the provided example accel-config
133
134
---- ------ ---- ---- -------
134
135
Warning FailedScheduling 2m26s default-scheduler 0/1 nodes are available: 1 Insufficient dsa.intel.com/wq-user-dedicated, 1 Insufficient dsa.intel.com/wq-user-shared.
135
136
```
137
+ ### DPDK application
138
+
139
+ DPDK use requires a couple of changes for the DSA configuration. The workqueue mode has to be `dedicated` and the name has to have a prefix of `dpdk_`.
140
+
141
+ e.g.
142
+ ```
143
+ {
144
+ "dev":"wqX.0",
145
+ "mode":"dedicated",
146
+ "size":16,
147
+ "group_id":0,
148
+ "priority":10,
149
+ "block_on_fault":1,
150
+ "type":"user",
151
+ "name":"dpdk_X0",
152
+ "driver_name":"user",
153
+ "threshold":15
154
+ }
155
+ ```
156
+
157
+ For testing DPDK, one can use the test container in the [demo directory](../../demo/dsa-dpdk-dmadevtest/) and its deployment [file](../../demo/dsa-dpdk-dmadevtest.yaml).
Original file line number Diff line number Diff line change
1
+ apiVersion : v1
2
+ kind : Pod
3
+ metadata :
4
+ name : dpdk
5
+ spec :
6
+ restartPolicy : Never
7
+ containers :
8
+ - name : dpdk
9
+ image : intel/dsa-dpdk-dmadevtest:devel
10
+ securityContext :
11
+ capabilities :
12
+ add : ["SYS_RAWIO"]
13
+ volumeMounts :
14
+ - mountPath : /mnt/hugepage
15
+ name : hugepage
16
+ resources :
17
+ requests :
18
+ cpu : 4
19
+ hugepages-2Mi : 1Gi
20
+ memory : 1Gi
21
+ dsa.intel.com/wq-user-dedicated : 2
22
+ limits :
23
+ cpu : 4
24
+ hugepages-2Mi : 1Gi
25
+ memory : 1Gi
26
+ dsa.intel.com/wq-user-dedicated : 2
27
+ volumes :
28
+ - name : hugepage
29
+ emptyDir :
30
+ medium : HugePages
Original file line number Diff line number Diff line change
1
+ FROM debian:sid-slim AS builder
2
+
3
+ ARG DIR=/dpdk-build
4
+ WORKDIR $DIR
5
+
6
+ RUN apt-get update && apt-get install -y --no-install-recommends wget build-essential meson ninja-build python3-pyelftools libnuma-dev python3-pip pkg-config dpkg-dev libipsec-mb-dev
7
+
8
+ # Download & unpack DPDK tarball
9
+ ARG DPDK_TARBALL=dpdk-24.11.1.tar.xz
10
+ ARG DPDK_TARBALL_SHA256="bcae7d42c449fc456dfb279feabcbe0599a29bebb2fe2905761e187339d96b8e"
11
+
12
+ RUN wget -q https://fast.dpdk.org/rel/$DPDK_TARBALL \
13
+ && echo "$DPDK_TARBALL_SHA256 $DPDK_TARBALL" | sha256sum -c - \
14
+ && tar -xf $DPDK_TARBALL && rm $DPDK_TARBALL
15
+
16
+ RUN cd dpdk-* && meson setup \
17
+ "-Dplatform=generic" \
18
+ "-Denable_drivers=dma/idxd" \
19
+ "-Denable_apps=test" \
20
+ --prefix $(pwd)/installdir \
21
+ builddir
22
+ RUN cd dpdk-* && ninja -C builddir install && install -D installdir/bin/dpdk-test /install_root/usr/bin/dpdk-test
23
+
24
+ FROM debian:sid-slim
25
+ RUN apt-get update && apt-get install -y --no-install-recommends libipsec-mb2 libnuma1 libatomic1 && ldconfig -v
26
+ COPY --from=builder /install_root/usr/bin/dpdk-test /usr/bin/dpdk-test
27
+
28
+ ENTRYPOINT ["dpdk-test" , "dmadev_autotest" ]
Original file line number Diff line number Diff line change 17
17
"priority":10,
18
18
"block_on_fault":1,
19
19
"type":"user",
20
- "name":"appX0 ",
20
+ "name":"dpdk_X0 ",
21
21
"driver_name":"user",
22
22
"threshold":15
23
23
}
43
43
"priority":10,
44
44
"block_on_fault":1,
45
45
"type":"user",
46
- "name":"appX1 ",
46
+ "name":"dpdk_X1 ",
47
47
"driver_name":"user",
48
48
"threshold":15
49
49
}
69
69
"priority":10,
70
70
"block_on_fault":1,
71
71
"type":"user",
72
- "name":"appX2 ",
72
+ "name":"dpdk_X2 ",
73
73
"driver_name":"user",
74
74
"threshold":15
75
75
}
95
95
"priority":10,
96
96
"block_on_fault":1,
97
97
"type":"user",
98
- "name":"appX3 ",
98
+ "name":"dpdk_X3 ",
99
99
"driver_name":"user",
100
100
"threshold":15
101
101
}
Original file line number Diff line number Diff line change @@ -130,7 +130,6 @@ require (
130
130
golang.org/x/time v0.7.0 // indirect
131
131
golang.org/x/tools v0.28.0 // indirect
132
132
gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect
133
- google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect
134
133
google.golang.org/genproto/googleapis/api v0.0.0-20241202173237-19429a94021a // indirect
135
134
google.golang.org/genproto/googleapis/rpc v0.0.0-20241202173237-19429a94021a // indirect
136
135
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
Original file line number Diff line number Diff line change @@ -344,8 +344,8 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T
344
344
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 /go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0 =
345
345
gomodules.xyz/jsonpatch/v2 v2.4.0 h1:Ci3iUJyx9UeRx7CeFN8ARgGbkESwJK+KB9lLcWxY/Zw =
346
346
gomodules.xyz/jsonpatch/v2 v2.4.0 /go.mod h1:AH3dM2RI6uoBZxn3LVrfvJ3E0/9dG4cSrbuBJT4moAY =
347
- google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de h1:F6qOa9AZTYJXOUEr4jDysRDLrm4PHePlge4v4TGAlxY =
348
- google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de /go.mod h1:VUhTRKeHn9wwcdrk73nvdC9gF178Tzhmt/qyaFcPLSo =
347
+ google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80 h1:KAeGQVN3M9nD0/bQXnr/ClcEMJ968gUXJQ9pwfSynuQ =
348
+ google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80 /go.mod h1:cc8bqMqtv9gMOr0zHg2Vzff5ULhhL2IXP4sbcn32Dro =
349
349
google.golang.org/genproto/googleapis/api v0.0.0-20241202173237-19429a94021a h1:OAiGFfOiA0v9MRYsSidp3ubZaBnteRUyn3xB2ZQ5G/E =
350
350
google.golang.org/genproto/googleapis/api v0.0.0-20241202173237-19429a94021a /go.mod h1:jehYqy3+AhJU9ve55aNOaSml7wUXjF9x6z2LcCfpAhY =
351
351
google.golang.org/genproto/googleapis/rpc v0.0.0-20241202173237-19429a94021a h1:hgh8P4EuoxpsuKMXX/To36nOFD7vixReXgn8lPGnt+o =
Original file line number Diff line number Diff line change @@ -15,8 +15,8 @@ if [ $# != 1 ] || [ "$1" = "?" ] || [ "$1" = "--help" ]; then
15
15
exit 1
16
16
fi
17
17
18
- files=$( git grep -l ' ^TAG?*=\|intel/accel-config-demo:\|intel/crypto-perf:\|intel/opae-nlb-demo:\|intel/openssl-qat-engine:\|intel/dlb-libdlb-demo:\|intel/sgx-sdk-demo:\|intel/intel-[^ ]*:\|version=\|appVersion:\|tag:' Makefile deployments demo/* accel-config* .yaml demo/* fpga* .yaml demo/* openssl* .yaml demo/dlb-libdlb* .yaml pkg/controllers/* /* _test.go build/docker/* .Dockerfile test/e2e/* /* .go)
18
+ files=$( git grep -l ' ^TAG?*=\|intel/dsa-dpdk-dmadevtest:\|intel/ accel-config-demo:\|intel/crypto-perf:\|intel/opae-nlb-demo:\|intel/openssl-qat-engine:\|intel/dlb-libdlb-demo:\|intel/sgx-sdk-demo:\|intel/intel-[^ ]*:\|version=\|appVersion:\|tag:' Makefile deployments demo/* accel-config* .yaml demo/* fpga* .yaml demo/* openssl* .yaml demo/dlb-libdlb* .yaml demo/dsa-dpdk-dmadev * .yaml pkg/controllers/* /* _test.go build/docker/* .Dockerfile test/e2e/* /* .go)
19
19
20
20
for file in $files ; do
21
- sed -i -e " s;\(^TAG?*=\|intel/accel-config-demo:\|intel/crypto-perf:\|intel/opae-nlb-demo:\|intel/openssl-qat-engine:\|intel/dlb-libdlb-demo:\|intel/sgx-sdk-demo:\|intel/intel-[^ ]*:\|version=\|appVersion: [^ ]\|tag: [^ ]\)[^ \" ]*;\1$1 ;g" " $file " ;
21
+ sed -i -e " s;\(^TAG?*=\|intel/dsa-dpdk-dmadevtest:\|intel/ accel-config-demo:\|intel/crypto-perf:\|intel/opae-nlb-demo:\|intel/openssl-qat-engine:\|intel/dlb-libdlb-demo:\|intel/sgx-sdk-demo:\|intel/intel-[^ ]*:\|version=\|appVersion: [^ ]\|tag: [^ ]\)[^ \" ]*;\1$1 ;g" " $file " ;
22
22
done
You can’t perform that action at this time.
0 commit comments