From 10adcb1fe8156a91276ac738834ba5a4f0527724 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 20:47:13 +0200 Subject: Adding patches from upstream to fix CXXFLAGS in embedded rocksdb causing performance issues. Signed-off-by: Daniel Baumann --- .../progress-linux/0001-rocksdb-cxxflags-1.patch | 23 +++++++++++++++++ .../progress-linux/0002-rocksdb-cxxflags-2.patch | 30 ++++++++++++++++++++++ debian/patches/series | 2 ++ 3 files changed, 55 insertions(+) create mode 100644 debian/patches/progress-linux/0001-rocksdb-cxxflags-1.patch create mode 100644 debian/patches/progress-linux/0002-rocksdb-cxxflags-2.patch diff --git a/debian/patches/progress-linux/0001-rocksdb-cxxflags-1.patch b/debian/patches/progress-linux/0001-rocksdb-cxxflags-1.patch new file mode 100644 index 000000000..0c96c8399 --- /dev/null +++ b/debian/patches/progress-linux/0001-rocksdb-cxxflags-1.patch @@ -0,0 +1,23 @@ +Author: Kefu Chai +Description: cmake/modules/BuildRocksDB.cmake: use string(APPEND ..) when appropriate + less repeatings this way. + . + https://lists.ceph.io/hyperkitty/list/ceph-users@ceph.io/thread/W5QEP4PM6G6L62W5PNJMGXU4Y26437XL/ + +diff -Naurp ceph.orig/cmake/modules/BuildRocksDB.cmake ceph/cmake/modules/BuildRocksDB.cmake +--- ceph.orig/cmake/modules/BuildRocksDB.cmake ++++ ceph/cmake/modules/BuildRocksDB.cmake +@@ -57,11 +57,11 @@ function(build_rocksdb) + include(CheckCXXCompilerFlag) + check_cxx_compiler_flag("-Wno-deprecated-copy" HAS_WARNING_DEPRECATED_COPY) + if(HAS_WARNING_DEPRECATED_COPY) +- set(rocksdb_CXX_FLAGS -Wno-deprecated-copy) ++ string(APPEND rocksdb_CXX_FLAGS " -Wno-deprecated-copy") + endif() + check_cxx_compiler_flag("-Wno-pessimizing-move" HAS_WARNING_PESSIMIZING_MOVE) + if(HAS_WARNING_PESSIMIZING_MOVE) +- set(rocksdb_CXX_FLAGS "${rocksdb_CXX_FLAGS} -Wno-pessimizing-move") ++ string(APPEND rocksdb_CXX_FLAGS " -Wno-pessimizing-move") + endif() + if(rocksdb_CXX_FLAGS) + list(APPEND rocksdb_CMAKE_ARGS -DCMAKE_CXX_FLAGS='${rocksdb_CXX_FLAGS}') diff --git a/debian/patches/progress-linux/0002-rocksdb-cxxflags-2.patch b/debian/patches/progress-linux/0002-rocksdb-cxxflags-2.patch new file mode 100644 index 000000000..564c429ed --- /dev/null +++ b/debian/patches/progress-linux/0002-rocksdb-cxxflags-2.patch @@ -0,0 +1,30 @@ +Author: Kefu Chai +Description: cmake/modules/BuildRocksDB.cmake: inherit parent's CMAKE_CXX_FLAGS + CMake allows us to customize `CMAKE_CXX_FLAGS` by setting CXXFLAGS + environmental variable. and Debian's debhelper also sets CXXFLAGS + when it builds cmake projects for customizing the building flags. + . + but we fail to populate this setting down when building external + projects. this is important when it comes to the projects which + is critical to the performance. RocksDB is one of them. + . + in this change, we pass the `CMAKE_CXX_FLAGS` down in + `BuildRocksDB.cmake` so that its `CMAKE_CXX_FLAGS` contains + the same set of `CMAKE_CXX_FLAGS` used by its parent project. + . + this should help with the performance in the bluestore, where + RocksDB is used. + . + https://lists.ceph.io/hyperkitty/list/ceph-users@ceph.io/thread/W5QEP4PM6G6L62W5PNJMGXU4Y26437XL/ + +diff -Naurp ceph.orig/cmake/modules/BuildRocksDB.cmake ceph/cmake/modules/BuildRocksDB.cmake +--- ceph.orig/cmake/modules/BuildRocksDB.cmake ++++ ceph/cmake/modules/BuildRocksDB.cmake +@@ -56,6 +56,7 @@ function(build_rocksdb) + endif() + include(CheckCXXCompilerFlag) + check_cxx_compiler_flag("-Wno-deprecated-copy" HAS_WARNING_DEPRECATED_COPY) ++ set(rocksdb_CXX_FLAGS "${CMAKE_CXX_FLAGS}") + if(HAS_WARNING_DEPRECATED_COPY) + string(APPEND rocksdb_CXX_FLAGS " -Wno-deprecated-copy") + endif() diff --git a/debian/patches/series b/debian/patches/series index a4cec842c..3197bed6a 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -23,3 +23,5 @@ fix-CheckCxxAtomic-riscv64.patch CVE-2022-3650_1_ceph-crash_drop_privleges_to_run_as_ceph_user_rather_than_root.patch CVE-2022-3650_2_ceph-crash_fix_stderr_handling.patch CVE-2022-3854_1_rgw_Guard_against_malformed_bucket_URLs.patch +progress-linux/0001-rocksdb-cxxflags-1.patch +progress-linux/0002-rocksdb-cxxflags-2.patch -- cgit v1.2.3