From 44d75ae9920757849f40e67e621e9e4936dc177f Mon Sep 17 00:00:00 2001 From: Junxiao Shi Date: Tue, 23 Apr 2024 13:12:59 +0000 Subject: [PATCH] mk: upgrade to SPDK 24.01 --- .github/workflows/build.yml | 4 ++-- docs/ndndpdk-depends.sh | 10 ++++------ dpdk/spdkenv/init.go | 7 ++++++- go.mod | 16 ++++++++-------- go.sum | 32 ++++++++++++++++---------------- mk/cflags.sh | 2 +- package.json | 8 ++++---- 7 files changed, 41 insertions(+), 38 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4a5c9bce..94c6aa12 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -25,11 +25,11 @@ jobs: uses: actions/cache@v4 with: path: ~/setup-dpdk - key: ${{ steps.deps.outputs.meson }}_20231213 + key: ${{ steps.deps.outputs.meson }}_20240423 - uses: yoursunny/setup-dpdk@main with: dpdk-version: v23.11 - spdk-version: c47b9b42589d27dd5fb2598d89fe1bf2521b0f07 + spdk-version: v24.01 - name: Build NDN-DPDK in debug mode run: | corepack pnpm install diff --git a/docs/ndndpdk-depends.sh b/docs/ndndpdk-depends.sh index 5d465c19..48c9bb2a 100755 --- a/docs/ndndpdk-depends.sh +++ b/docs/ndndpdk-depends.sh @@ -39,13 +39,13 @@ DFLT_CODEROOT=$HOME/code DFLT_NODEVER=20 DFLT_GOVER=latest DFLT_UBPFVER=a3e69808888b0f48e3a7972dd94115e46dad1e74 -DFLT_LIBBPFVER=v1.3.0 +DFLT_LIBBPFVER=v1.4.0 DFLT_XDPTOOLSVER=v1.4.2 DFLT_URINGVER=liburing-2.5 DFLT_DPDKVER=v23.11 DFLT_DPDKPATCH= DFLT_DPDKOPTS={} -DFLT_SPDKVER=c47b9b42589d27dd5fb2598d89fe1bf2521b0f07 +DFLT_SPDKVER=v24.01 DFLT_NJOBS=$(nproc) DFLT_TARGETARCH=native @@ -174,9 +174,7 @@ EOT fi : "${NDNDPDK_DL_GITHUB:=https://github.com}" -: "${NDNDPDK_DL_LLVM_APT:=https://apt.llvm.org}" : "${NDNDPDK_DL_NODESOURCE_DEB:=https://deb.nodesource.com}" -: "${NDNDPDK_DL_PYPA_BOOTSTRAP:=https://bootstrap.pypa.io}" : "${NDNDPDK_DL_GODEV:=https://go.dev}" : "${NDNDPDK_DL_DPDK_PATCHES:=https://patches.dpdk.org}" # you can also set the GOPROXY environment variable, which will be persisted @@ -191,9 +189,7 @@ curl_test() { fi } curl_test NDNDPDK_DL_GITHUB /robots.txt -curl_test NDNDPDK_DL_LLVM_APT curl_test NDNDPDK_DL_NODESOURCE_DEB -curl_test NDNDPDK_DL_PYPA_BOOTSTRAP curl_test NDNDPDK_DL_GODEV /VERSION curl_test NDNDPDK_DL_DPDK_PATCHES @@ -233,8 +229,10 @@ APT_PKGS=( m4 make ninja-build + patchelf pkg-config python-is-python3 + python3-pip python3-pyelftools uuid-dev yamllint diff --git a/dpdk/spdkenv/init.go b/dpdk/spdkenv/init.go index b4175080..39912e0e 100644 --- a/dpdk/spdkenv/init.go +++ b/dpdk/spdkenv/init.go @@ -8,6 +8,7 @@ package spdkenv #include #include #include +#include static void c_SpdkLoggerReady() { @@ -50,10 +51,14 @@ func InitEnv() error { } func loadLibspdk() error { - // As of SPDK 23.01, libspdk_scheduler_dpdk_governor.so depends on rte_power_freq_max symbol + // As of SPDK 24.01, libspdk_scheduler_dpdk_governor.so depends on rte_power_freq_max symbol // exported by librte_power.so but does not link with that library. _ = &C.rte_power_freq_max + // As of SPDK 24.01, libspdk_env_dpdk.so depends on OPENSSL_INIT_free symbol + // exported by libssl.so but does not link with that library. + _ = C.OPENSSL_INIT_free + errs := []error{} for _, libdir := range []string{"/usr/local/lib", "/usr/lib"} { filename := filepath.Join(libdir, "libspdk.so") diff --git a/go.mod b/go.mod index 99b450da..da0f92e3 100644 --- a/go.mod +++ b/go.mod @@ -15,7 +15,7 @@ require ( github.com/gorilla/schema v1.3.0 github.com/graphql-go/graphql v0.8.1 github.com/ianlancetaylor/cgosymbolizer v0.0.0-20240326020559-581a3f7c677f - github.com/jacobsa/fuse v0.0.0-20231212222509-2b0495a1d5e0 + github.com/jacobsa/fuse v0.0.0-20240419171848-edf18a690d4b github.com/jfoster/binary-utilities v0.2.1 github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 github.com/korylprince/go-graphql-ws v0.3.6 @@ -24,7 +24,7 @@ require ( github.com/onichandame/gql-ws v0.1.0 github.com/pascaldekloe/name v1.0.1 github.com/powerman/rpc-codec v1.2.2 - github.com/rickb777/plural v1.4.1 + github.com/rickb777/plural v1.4.2 github.com/safchain/ethtool v0.3.0 github.com/sethvargo/go-retry v0.2.4 github.com/sirupsen/logrus v1.9.3 @@ -40,8 +40,8 @@ require ( go.fd.io/govpp/extras v0.1.0 go.uber.org/zap v1.27.0 go4.org v0.0.0-20230225012048-214862532bf5 - golang.org/x/exp v0.0.0-20240325151524-a685a6edb6d8 - golang.org/x/sys v0.18.0 + golang.org/x/exp v0.0.0-20240416160154-fe59bbe5cc7f + golang.org/x/sys v0.19.0 ) require ( @@ -56,7 +56,7 @@ require ( github.com/mattn/go-isatty v0.0.14 // indirect github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d // indirect github.com/onsi/ginkgo v1.16.5 // indirect - github.com/onsi/gomega v1.32.0 // indirect + github.com/onsi/gomega v1.33.0 // indirect github.com/pkg/errors v0.8.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect @@ -68,8 +68,8 @@ require ( github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect go.uber.org/multierr v1.10.0 // indirect - golang.org/x/crypto v0.18.0 // indirect - golang.org/x/net v0.20.0 // indirect - golang.org/x/term v0.16.0 // indirect + golang.org/x/crypto v0.21.0 // indirect + golang.org/x/net v0.23.0 // indirect + golang.org/x/term v0.18.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index b65a90a7..fef1b98d 100644 --- a/go.sum +++ b/go.sum @@ -283,8 +283,8 @@ github.com/ianlancetaylor/cgosymbolizer v0.0.0-20240326020559-581a3f7c677f/go.mo github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/jacobsa/fuse v0.0.0-20231212222509-2b0495a1d5e0 h1:D5+ZZNQL6tuNxYjNyM/qa+MwrsGwSrRkLEMJqlS4Llg= -github.com/jacobsa/fuse v0.0.0-20231212222509-2b0495a1d5e0/go.mod h1:Ui751CMdhWgBysD1kzfi6YLZLJrzUmGFgFZ/pjiGU4E= +github.com/jacobsa/fuse v0.0.0-20240419171848-edf18a690d4b h1:WelCHTd/WEv4E2XCARZwmQpKlVDxInTPLZROxVgRktI= +github.com/jacobsa/fuse v0.0.0-20240419171848-edf18a690d4b/go.mod h1:JYi9iIxdYNgxmMgLwtSHO/hmVnP2kfX1oc+mtx+XWLA= github.com/jfoster/binary-utilities v0.2.1 h1:QlsTWJTe4X/CI69z3MBtp5m2oyW1txX7jaxqaIBUfhg= github.com/jfoster/binary-utilities v0.2.1/go.mod h1:i/pKfbFZeEXPpWZAdXBPfFXQDMWU+ltImrklLVPsrrI= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= @@ -369,8 +369,8 @@ github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= -github.com/onsi/gomega v1.32.0 h1:JRYU78fJ1LPxlckP6Txi/EYqJvjtMrDC04/MM5XRHPk= -github.com/onsi/gomega v1.32.0/go.mod h1:a4x4gW6Pz2yK1MAmvluYme5lvYTn61afQ2ETw/8n4Lg= +github.com/onsi/gomega v1.33.0 h1:snPCflnZrpMsy94p4lXVEkHo12lmPnc3vY5XBbreexE= +github.com/onsi/gomega v1.33.0/go.mod h1:+925n5YtiFsLzzafLUHzVMBpvvRAzrydIBiSIxjX3wY= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pascaldekloe/name v1.0.1 h1:9lnXOHeqeHHnWLbKfH6X98+4+ETVqFqxN09UXSjcMb0= @@ -398,8 +398,8 @@ github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8b github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= -github.com/rickb777/plural v1.4.1 h1:5MMLcbIaapLFmvDGRT5iPk8877hpTPt8Y9cdSKRw9sU= -github.com/rickb777/plural v1.4.1/go.mod h1:kdmXUpmKBJTS0FtG/TFumd//VBWsNTD7zOw7x4umxNw= +github.com/rickb777/plural v1.4.2 h1:Kl/syFGLFZ5EbuV8c9SVud8s5HI2HpCCtOMw2U1kS+A= +github.com/rickb777/plural v1.4.2/go.mod h1:kdmXUpmKBJTS0FtG/TFumd//VBWsNTD7zOw7x4umxNw= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= @@ -513,8 +513,8 @@ golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.18.0 h1:PGVlW0xEltQnzFZ55hkuX5+KLyrMYhHld1YHO4AKcdc= -golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= +golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA= +golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -525,8 +525,8 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/exp v0.0.0-20240325151524-a685a6edb6d8 h1:aAcj0Da7eBAtrTp03QXWvm88pSyOt+UgdZw2BFZ+lEw= -golang.org/x/exp v0.0.0-20240325151524-a685a6edb6d8/go.mod h1:CQ1k9gNrJ50XIzaKCRR2hssIjF07kZFEiieALBM/ARQ= +golang.org/x/exp v0.0.0-20240416160154-fe59bbe5cc7f h1:99ci1mjWVBWwJiEKYY6jWa4d2nTQVIEhZIptnrVb1XY= +golang.org/x/exp v0.0.0-20240416160154-fe59bbe5cc7f/go.mod h1:/lliqkxwWAhPjf5oSOIJup2XcqJaw8RGS6k3TGEc7GI= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -601,8 +601,8 @@ golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d/go.mod h1:9nx3DQGgdP8bBQD5qx golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.20.0 h1:aCL9BSgETF1k+blQaYUBx9hJ9LOGP3gAVemcZlf1Kpo= -golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= +golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= +golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -710,13 +710,13 @@ golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= -golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o= +golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.16.0 h1:m+B6fahuftsE9qjo0VWp2FW0mB3MTJvR0BaMQrq0pmE= -golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= +golang.org/x/term v0.18.0 h1:FcHjZXDMxI8mM3nwhX9HlKop4C0YQvCVCdwYl2wOtE8= +golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= diff --git a/mk/cflags.sh b/mk/cflags.sh index 2ac4c6c6..aa3d2747 100644 --- a/mk/cflags.sh +++ b/mk/cflags.sh @@ -19,4 +19,4 @@ fi export CFLAGS CGO_CFLAGS="-Werror $CFLAGS -m64 -pthread -O3 -g $(pkg-config --cflags libdpdk liburing | sed 's/-include [^ ]*//g')" -CGO_LIBS="-L/usr/local/lib $LGCOV -lurcu-qsbr -lurcu-cds -lubpf -lcrypto $(pkg-config --libs spdk_bdev spdk_init spdk_env_dpdk) -lrte_bus_pci -lrte_bus_vdev -lrte_net_ring $(pkg-config --libs libdpdk liburing) -lnuma -lm" +CGO_LIBS="-L/usr/local/lib $LGCOV -lurcu-qsbr -lurcu-cds -lubpf -lcrypto $(pkg-config --libs spdk_bdev spdk_init spdk_env_dpdk) -lssl -lrte_bus_pci -lrte_bus_vdev -lrte_net_ring $(pkg-config --libs libdpdk liburing) -lnuma -lm" diff --git a/package.json b/package.json index be65df40..d74a7abd 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "type": "module", "main": "build/js/mod.js", "types": "js/mod.ts", - "packageManager": "pnpm@8.15.5+sha256.4b4efa12490e5055d59b9b9fc9438b7d581a6b7af3b5675eb5c5f447cee1a589", + "packageManager": "pnpm@9.0.5+sha256.61bd66913b52012107ec25a6ee4d6a161021ab99e04f6acee3aa50d0e34b4af9", "dependencies": { "graphql": "^16.8.1", "graphql-request": "^6.1.0", @@ -21,12 +21,12 @@ }, "devDependencies": { "@types/ws": "^8.5.10", - "@yoursunny/xo-config": "0.57.2", + "@yoursunny/xo-config": "0.58.0", "dockerfilelint": "^1.8.0", "json-stable-stringify": "^1.1.1", "markdownlint-cli": "^0.39.0", - "ts-json-schema-generator": "^1.5.0", - "typescript": "~5.4.3" + "ts-json-schema-generator": "^2.1.0", + "typescript": "~5.4.5" }, "engines": { "node": "20.x"