Commit Graph

122753 Commits

Author SHA1 Message Date
Loïc Dachary
7fe0ac7c11 qa: verify the benefits of mempool cacheline optimization
There already is a test to verify the mempool sharding works, in the sense that
it uses at least half of the variables available to count the number of
allocated objects and their total size. This new test verifies that, with
sharding, object counting is at least twice faster than without sharding. It
also collects cacheline contention data with the perf c2c tool. The manual
analysis of this data shows the optimization gain is indeed related to cacheline
contention.

Fixes: https://tracker.ceph.com/issues/49896

Signed-off-by: Loïc Dachary <loic@dachary.org>
2021-04-30 12:11:13 +08:00
Ilya Dryomov
2a974fd0c1 librbd/cache/pwl: include head and tail pointers in STATS
While at it, reduce the number of calls to operator<< and drop
the trailing comma.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
2021-04-29 22:09:16 +02:00
Ilya Dryomov
626a995cf6 librbd/cache/pwl: bump "Waiting for allocation" and "Retiring" dout level
Bump "Waiting for allocation" to 5.

"Retiring" is at 20 for rwl and 1 for ssd.  Bump the latter to 20 as
well.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
2021-04-29 22:09:16 +02:00
Ilya Dryomov
27dd7f85ae librbd/cache/pwl: use m_bytes_allocated_cap for both rwl and ssd
Follow rwl mode and use AbstractWriteLog::m_bytes_allocated_cap
instead of m_log_pool_ring_buffer_size specific to ssd.  This fixes
"bytes available" calculation in STATS output.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
2021-04-29 22:09:16 +02:00
Ilya Dryomov
e2bbf4167f librbd/cache/pwl/ssd/WriteLog: decrement m_bytes_allocated when retiring
Currently if ssd cache is filled to capacity, all future I/O hangs
indefinitely because even though the cache eventually becomes clean
and retires enough entries to get back under RETIRE_HIGH_WATER, this
isn't communicated to AbstractWriteLog::check_allocation().

Fixes: https://tracker.ceph.com/issues/50560
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
2021-04-29 22:09:16 +02:00
Ilya Dryomov
5b89c47ec5 librbd/cache/pwl/ssd/WriteLog: fix free()/delete mismatch
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
2021-04-29 22:09:16 +02:00
Ilya Dryomov
a40676c513 librbd/cache/pwl/ssd/WriteLog: fix indentation
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
2021-04-29 22:09:16 +02:00
zdover23
462c121653
Merge pull request #40502 from zdover23/wip-doc-podman-version-octopus-note-2021-30-Mar
doc/cephadm: add podman version note to install

Reviewed-by: Sebastian Wagner <sewagner@redhat.com>
2021-04-30 05:53:58 +10:00
Ernesto Puerta
381685f17f
Merge pull request #40072 from wornet-mwo/dashboard--grafana-hostname-corrections
mgr/dashboard: Fixed name clash when hostname similar to another

Reviewed-by: Aashish Sharma <aasharma@redhat.com>
Reviewed-by: Avan Thakkar <athakkar@redhat.com>
Reviewed-by: p-se <NOT@FOUND>
2021-04-29 19:40:57 +02:00
Daniel Gryniewicz
f330b50f7a RGW Zipper - Permenant User storage API
The load/store/remove APIs for User are needed, so make them consistent
and permenant.

Signed-off-by: Daniel Gryniewicz <dang@redhat.com>
2021-04-29 12:56:35 -04:00
Kefu Chai
9e3aa76f4a
Merge pull request #41040 from tchaikov/wip-doc-mds-conf
doc/cephfs/mds-config-ref: render options using confval directive

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
2021-04-30 00:33:41 +08:00
Ilya Dryomov
d12e7f458b rbd: --source-spec-file should be --source-spec-path
It was renamed during development, get rid of the leftovers.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
2021-04-29 18:10:54 +02:00
Mark Kogan
48ce5bb6c3
Merge pull request #41028 from mkogan1/wip-rgw-tracker-50467
rgw: fix segfault related to explicit object manifest handling
2021-04-29 18:48:54 +03:00
Ernesto Puerta
b0c0815e9d
Merge pull request #41083 from rhcs-dashboard/fix-50580-master
mgr/dashboard: OSDs placement text is unreadable

Reviewed-by: Avan Thakkar <athakkar@redhat.com>
Reviewed-by: Ernesto Puerta <epuertat@redhat.com>
2021-04-29 17:42:38 +02:00
Kefu Chai
a64b623537
Merge pull request #41082 from tchaikov/wip-50558
os/bluestore: Revert" Optimizing the lock of bluestore writing process"

Reviewed-by: Mark Nelson <mnelson@redhat.com>
Reviewed-by: Adam Kupczyk <akupczyk@redhat.com>
2021-04-29 22:59:02 +08:00
Kefu Chai
4fa8b4aa53
Merge pull request #41064 from petrutlucian94/win_at_removedir
include: define AT_REMOVEDIR on Windows

Reviewed-by: Jeff Layton <jlayton@redhat.com>
Reviewed-by: Venky Shankar <vshankar@redhat.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
2021-04-29 22:58:16 +08:00
Juan Miguel Olmo Martínez
7f67a758d0
mgr/cephadm: ceph-volume verbose only when fails
Resolves: https://tracker.ceph.com/issues/50526

Signed-off-by: Juan Miguel Olmo Martínez <jolmomar@redhat.com>
2021-04-29 16:55:03 +02:00
Kefu Chai
59624b0fd9
Merge pull request #41038 from tchaikov/wip-cmake-liburing
cmake: pass "CC" using configure when building liburing

Reviewed-by: Ronen Friedman <rfriedma@redhat.com>
2021-04-29 22:20:09 +08:00
Aashish Sharma
543b02436f mgr/dashboard:OSDs placement text is unreadable
While displaying the host pattern in the OSDs placement tab, it gets splited with semi-colons. Also adjusted the column size of Container Image ID and Placement columns.

Fixes: https://tracker.ceph.com/issues/50580
Signed-off-by: Aashish Sharma <aasharma@redhat.com>
2021-04-29 19:26:17 +05:30
Kefu Chai
2627f3204e os/bluestore: Revert" Optimizing the lock of bluestore writing process"
This reverts commit e80d3f7a89.

Fixes: https://tracker.ceph.com/issues/50571
Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-04-29 20:03:33 +08:00
Yingxin Cheng
cf9f1c80e6 crimson/onode-staged-tree: implement erase for perf-staged-tree
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
2021-04-29 16:03:38 +08:00
Yingxin Cheng
80868b8359 crimson/onode-staged-tree: implement synthetic tests for value erase
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
2021-04-29 16:03:38 +08:00
Yingxin Cheng
c6427de4db crimson/onode-staged-tree: fix ownership issues at node-level
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
2021-04-29 16:03:38 +08:00
Yingxin Cheng
47b67ec417 crimson/onode-staged-tree: allow to insert item to an empty node
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
2021-04-29 16:03:38 +08:00
Yingxin Cheng
04fbaa036a crimson/onode-staged-tree: move try_downgrade_root() into fix_index()
Specifically, apply_children_merge() doesn't know whether it will be
retired due to fix_parent_index().

Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
2021-04-29 16:03:37 +08:00
Yingxin Cheng
e0a9bfbcfa crimson/onode-staged-tree: don't validate child when it's outdated
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
2021-04-29 16:03:37 +08:00
Yingxin Cheng
9f821d0ee2 crimson/onode-staged-tree: pass origin_left_addr to apply_children_merge()
rebuild_extent() may change the address of the left child, we need to
pass the origin_left_addr in order to validate if it is correct.

Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
2021-04-29 16:03:37 +08:00
Samuel Just
86ad429d8d crimson/.../node_extent_manager: replay extents may be dirty
Signed-off-by: Samuel Just <sjust@redhat.com>
2021-04-29 16:03:37 +08:00
Yingxin Cheng
fbf4d71d20 crimson/onode-staged-tree: cleanup tree_utils.h
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
2021-04-29 16:03:37 +08:00
Yingxin Cheng
d0998d3a75 crimson/onode-staged-tree: test fix_index() in internal node
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
2021-04-29 16:03:37 +08:00
Yingxin Cheng
6ece760c38 crimson/onode-staged-tree: test merge in internal node
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
2021-04-29 16:03:37 +08:00
Yingxin Cheng
6291154e4c crimson/onode-staged-tree: implement staged::get_prev_slot()
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
2021-04-29 16:03:37 +08:00
Yingxin Cheng
8e0903378a crimson/onode-staged-tree: test merge in leaf node
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
2021-04-29 16:03:37 +08:00
Yingxin Cheng
7f73bbfe7d crimson/onode-staged-tree: implement layout-level merge
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
2021-04-29 16:03:37 +08:00
Yingxin Cheng
767306bf20 crimson/onode-staged-tree: test erase in leaf node
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
2021-04-29 16:03:37 +08:00
Yingxin Cheng
01873f48d0 crimson/onode-staged-tree: implement staged::erase()
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
2021-04-29 16:03:37 +08:00
Yingxin Cheng
5818e786c4 crimson/onode-staged-tree: fix container_t::update_size() to accept negative value
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
2021-04-29 16:03:37 +08:00
Yingxin Cheng
c4b5e7fecd crimson/onode-staged-tree: implement staged::is_keys_one()
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
2021-04-29 16:03:37 +08:00
Yingxin Cheng
eb4c03f4ef crimson/onode-staged-tree: implement node-level erase/merge logic
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
2021-04-29 16:03:37 +08:00
Yingxin Cheng
36b4610a2c crimson/onode-staged-tree: implement delta encode/decode for erase ops
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
2021-04-29 16:03:37 +08:00
Yingxin Cheng
ee29963503 crimson/onode-staged-tree: improve logs
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
2021-04-29 16:03:37 +08:00
Yingxin Cheng
630babc1b2 crimson/onode-staged-tree: implement fast Node::get_name()
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
2021-04-29 16:03:37 +08:00
Yingxin Cheng
2cebba5646 crimson/onode-staged-tree: fix get_pivot_index() for leaf node
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
2021-04-29 16:03:37 +08:00
Yingxin Cheng
0150067491 crimson/onode-staged-tree: be explicit about node num-key/value invariants
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
2021-04-29 16:03:37 +08:00
Yingxin Cheng
71836adff5 crimson/onode-staged-tree: cleanup node interfaces
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
2021-04-29 16:03:37 +08:00
Yingxin Cheng
5e8ed3e880 crimson/onode-staged-tree: implement states for NodeExtentAccessorT
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
2021-04-29 16:03:37 +08:00
Yingxin Cheng
5d41bda16e crimson/onode-staged-tree: implement NodeExtentManager::retire_extent()
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
2021-04-29 16:03:37 +08:00
Yingxin Cheng
776390d249 crimson/onode-staged-tree: fix log
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
2021-04-29 16:03:37 +08:00
Yingxin Cheng
f286afb8ee crimson/onode-staged-tree: remove implemented TODO
Already implemented in c32c1032de

Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
2021-04-29 16:03:37 +08:00
Yingxin Cheng
c9360d414f crimson/onode-staged-tree: implement tree-level erase interfaces
Define and implement erase related interfaces from BTree, BTree::Cursor,
tree_cursor_t, Node to LeafNode.

Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
2021-04-29 16:03:37 +08:00