summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-21 11:58:56 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-21 11:58:56 +0000
commitd3f8c3d72830f996aec7f66f45d58f5f836e2b13 (patch)
treeface63932bbf27af02c3e1f7281d20947cdcb584
parentRemoving unneeded depends in ceph-mon for shorter dependency chains. (diff)
downloadceph-d3f8c3d72830f996aec7f66f45d58f5f836e2b13.tar.xz
ceph-d3f8c3d72830f996aec7f66f45d58f5f836e2b13.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..113bb072a
--- /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
+@@ -53,11 +53,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..88f03243f
--- /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
+@@ -52,6 +52,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
new file mode 100644
index 000000000..f5320ab0e
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1,2 @@
+progress-linux/0001-rocksdb-cxxflags-1.patch
+progress-linux/0002-rocksdb-cxxflags-2.patch