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