envoyproxy / envoy

Cloud-native high-performance edge/middle/service proxy
https://www.envoyproxy.io
Apache License 2.0
24.81k stars 4.77k forks source link

liburing compilation on Rocky Linux 8 which supports 4.18 kernel #36349

Open Gaurav0411GitHub opened 1 week ago

Gaurav0411GitHub commented 1 week ago

When we are compiling envoy 1.30.x version using below command on rocky linux 8 which supports 4.18 kenel version, we are not getting liburing compilation error and we are able to compile envoy successfully. bazel --bazelrc=/dev/null build --sandbox_debug --verbose_failures --copt="-DENVOY_IGNORE_GLIBCXX_USE_CXX11_ABI_ERROR=1 -DLLVM_USE_SPLIT_DWARF" --define wasm=disabled --define tcmalloc=disabled --define signal_trace=disabled --config=sizeopt --compilation_mode=fastbuild --copt=-Wno-error=maybe-uninitialized //source/exe:envoy-static.stripped

When we are compiling envoy 1.31.x version using above command on rocky linux 8 which supports 4.18 kenel version, we are getting liburing compilation error and we are not able to compile envoy successfully. We are getting liburing compilation error. I am having below queries

  1. 1.30.x was not using liburing library?
  2. Is there any changes done in 1.31.x for using liburing library?
  3. As per my understanding kernel version greater than 5.1 use liburing library so how the operating system which are having kernel version lesser than 5.0?
Gaurav0411GitHub commented 1 week ago

@phlax , Thanks in advance for your reply

phlax commented 1 week ago

hi @Gaurav0411GitHub my response is that the supported way to build is using the envoy build image - ie ci/run_envoy_docker.sh

it should be possible to build in other environments - and where necessary we will take patches to facilitate that - but we provide a build image for precisely this reason - so that others can build with reasonable confidence on any platform that supports docker (with some qualifications about kernel versions)

phlax commented 1 week ago

1.30.x was not using liburing library?

it was

Is there any changes done in 1.31.x for using liburing library?

you would have to check the diffs between the branches

As per my understanding kernel version greater than 5.1 use liburing library so how the operating system which are having kernel version lesser than 5.0?

not sure on specifics wrt liburing kernel versions - i do remember that it required a fairly recent kernel - iirc we could not add it until we updated our vms to ubuntu jammy

Gaurav0411GitHub commented 1 week ago

I want to use rhel 8.10 (kernel-devel-4.18.0-553.16.1.el8_10.x86_64 ,kernel-headers-4.18.0-553.16.1.el8_10.x86_64), Is envoy 1.31.x version is supported on this above mentioned version?

phlax commented 1 week ago

io_uring requires a 5.1 kernel

Gaurav0411GitHub commented 6 days ago

Thanks for your reply, I understood io_uring requires 5.1 kernel. I am using the below command to compile on Rocky Linux 8. bazel --bazelrc=/dev/null build --sandbox_debug --verbose_failures --copt="-DENVOY_IGNORE_GLIBCXX_USE_CXX11_ABI_ERROR=1 -DLLVM_USE_SPLIT_DWARF" --define wasm=disabled --define tcmalloc=disabled --define signal_trace=disabled --config=sizeopt --compilation_mode=fastbuild --copt=-Wno-error=maybe-uninitialized //source/exe:envoy-static.stripped Is there any way to avoid io_uring in envoy compilation? or we will not be able to compile envoy 1.31.x without io_uring?