summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 18:47:13 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 18:47:13 +0000
commit10adcb1fe8156a91276ac738834ba5a4f0527724 (patch)
tree018c628dc66febe656158711cdcfd0bc79007bcf
parentRemoving unneeded depends in ceph-mon for shorter dependency chains. (diff)
downloadceph-10adcb1fe8156a91276ac738834ba5a4f0527724.tar.xz
ceph-10adcb1fe8156a91276ac738834ba5a4f0527724.zip
Adding patches from upstream to fix CXXFLAGS in embedded rocksdb causing performance issues.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
-rw-r--r--debian/patches/progress-linux/0001-rocksdb-cxxflags-1.patch23
-rw-r--r--debian/patches/progress-linux/0002-rocksdb-cxxflags-2.patch30
-rw-r--r--debian/patches/series2
3 files changed, 55 insertions, 0 deletions
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 <tchaikov@gmail.com>
+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 <tchaikov@gmail.com>
+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