Commit Graph

134021 Commits

Author SHA1 Message Date
Samuel Just
a9684d4665 crimson/osd/osd_operations: use foreign_ptr for conn
Signed-off-by: Samuel Just <sjust@redhat.com>
2022-09-26 19:35:41 -07:00
Samuel Just
b692dfbad7 vstart: echo osd arguments
Signed-off-by: Samuel Just <sjust@redhat.com>
2022-09-26 19:35:41 -07:00
Samuel Just
3c632e45bb crimson/osd/osd_operations/peering_event.cc: whitespace fix
Signed-off-by: Samuel Just <sjust@redhat.com>
2022-09-26 19:35:41 -07:00
Samuel Just
998cb8c141 crimson/osd: remove compound_peering_request
The state shared between sub events creates problems for multicore.  The
only user is MOSDPGCreate2, so the optimization isn't really worth
salvaging.

Signed-off-by: Samuel Just <sjust@redhat.com>
2022-09-26 19:35:41 -07:00
Samuel Just
6ea21eddba crimson/common/operation: release pipeline stages on the core they are on
Otherwise, tasks waiting on the stage will wake up on the wrong core.
Later, we may choose to statically enable this behavior only for stages
that can actually span cores, but this is ok for now.

Signed-off-by: Samuel Just <sjust@redhat.com>
2022-09-26 19:35:41 -07:00
Samuel Just
752e8cf8f3 crimson/osd: move perf counter ownership to OSDSingletonState
Later, we'll want to create a properly sharded implentation that avoids
barriers.

Signed-off-by: Samuel Just <sjust@redhat.com>
2022-09-26 19:35:41 -07:00
Samuel Just
ce65d7e6fa crimson/osd: shard PerShardState across cores
Signed-off-by: Samuel Just <sjust@redhat.com>
2022-09-26 19:35:41 -07:00
Samuel Just
582bbd5ee1 crimson/osd: move hb_stamps to PerShardState
We may later need to syncronize this across cores, perhaps during tick.
This should work for now, however.

Signed-off-by: Samuel Just <sjust@redhat.com>
2022-09-26 19:35:41 -07:00
Samuel Just
b52990c626 crimson/osd: replace global tid with unique core-local tids
We don't really want a global counter here if we can avoid it.  Instead,
assign tids with core-local counters prefixed with the core id.  We
continue to ensure that tids are unique within an osd boot, but lose
the property that sucessive tids on different cores are ordered.  I
don't see anything relying on that property, however, so this should be
fine.

Signed-off-by: Samuel Just <sjust@redhat.com>
2022-09-26 19:35:41 -07:00
Samuel Just
be1371762a crimson/osd: remove explicit pg counter
The main user of num_pgs was get_target_pg_log_entries(), but we
don't really want to be accessing a global counter there if we
can avoid it.  Instead, compute a core-local target and use the
core-local pg count.

Signed-off-by: Samuel Just <sjust@redhat.com>
2022-09-26 19:35:41 -07:00
Samuel Just
1297b49c93 crimson/osd: clean up PerShardState/OSDSingletonState ownership/access
- move heartbeat messenger ownership to OSD
- move OSDSingletonState/ShardServices initialization to
  PGShardManager::start() method
- add accessor OSD::get_shard_services(), remove OSD::shard_services
  reference
- accessor/forwarding cleanups within PGShardManager

Signed-off-by: Samuel Just <sjust@redhat.com>
2022-09-26 19:35:41 -07:00
Samuel Just
12042dcbc7 crimson/osd: move store responsiblity to PerShardState
Signed-off-by: Samuel Just <sjust@redhat.com>
2022-09-26 19:35:41 -07:00
Samuel Just
2b5c471913 crimson/os: consolidate context handling in FuturizedStore
Context handling is pretty uniform accross all implementations,
may as well do it in the same place.

ShardedStoreProxy would need to handle it otherwise, since
callbacks need to be handled on the core do_transaction is
invoked on.

Signed-off-by: Samuel Just <sjust@redhat.com>
2022-09-26 19:35:41 -07:00
Samuel Just
2c1f213bfa crimson/os/futurized_store: create ShardedStoreProxy
For now, FuturizedStore implementations assume that methods are invoked
on core 0.  Later, we'll adapt each implementation to intelligently
support invocation on any pg core.  Until then, this wrapper converts
the existing implementations to a safe, if not particuarly performant,
proxy behavior.

AlienStore should be safe as is.

Signed-off-by: Samuel Just <sjust@redhat.com>
2022-09-26 19:35:38 -07:00
Samuel Just
2b2f5b7009 crimson/osd: adjust get_pg_stats() and for_each_pg() to return futures
Signed-off-by: Samuel Just <sjust@redhat.com>
2022-09-26 19:33:04 -07:00
Samuel Just
a7296e5ea2 crimson/osd: refactor pg management for multicore
OSDSingletonState will now only be responsible for the spg_t->core
mapping for pgs, the individual PerShardState's will hold local
PGMap's.  PG management operations are now proxied from PGShardManager
to PerShardState.  Subsequent patches will shard PerShardState.

Signed-off-by: Samuel Just <sjust@redhat.com>
2022-09-26 19:33:01 -07:00
Samuel Just
e94a12a8e3 crimson/osd: modify start_pg_operation to return op_id
The op will actually be run generally on a different core, so we don't
want to be returning a reference to it.

Signed-off-by: Samuel Just <sjust@redhat.com>
2022-09-26 19:31:16 -07:00
Samuel Just
25a4612745 crimson/osd/pg_map: add PGShardMapping
Signed-off-by: Samuel Just <sjust@redhat.com>
2022-09-26 19:31:13 -07:00
Samuel Just
b4b2ab171c crimson/osd: rework OSDMap handling for multicore
OSDMaps can occupy significant space in memory.  Duplicating OSDMaps
across cores would multiply that memory usage as well as complicate
the internal structure sharing we do when applying OSDMap incrementals.

Because PeeringState and other interfaces expect efficient copying of
OSDMapRef objects we don't want to use foreign_ptr directly.

Instead, maintain a single cache and distribute local_shared_foreign_ptrs
to other cores.  ShardServices becomes the only OSDMapService.

Signed-off-by: Samuel Just <sjust@redhat.com>
2022-09-22 14:50:00 -07:00
Samuel Just
6385b86520 crimson/common: introduce local_shared_foreign_ptr
Introduces a foreign_ptr wrapper to allow core-local refcounting.

Signed-off-by: Samuel Just <sjust@redhat.com>
2022-09-22 13:16:50 -07:00
Samuel Just
6e2d58a92d crimson/common/operation: generalized for multiple reactors
Signed-off-by: Samuel Just <sjust@redhat.com>
2022-09-21 10:37:22 -07:00
Samuel Just
5544b2ebd8 crimson/osd: make mkfs static
Can't access pg_shard_manager state here without invoking
start().  Instead, let's just be explicit about meta_coll
etc.

Signed-off-by: Samuel Just <sjust@redhat.com>
2022-09-21 10:37:02 -07:00
Samuel Just
895170d77d crimson/osd/main: need to actually invoke ConfigProxy::start()
sharded_proxy()::start() is a sharded<> method.

Signed-off-by: Samuel Just <sjust@redhat.com>
2022-09-21 10:36:59 -07:00
Samuel Just
f6c4d937e1 crimson/osd/main: don't shard OSD
Signed-off-by: Samuel Just <sjust@redhat.com>
2022-09-21 10:36:50 -07:00
Samuel Just
9ddb009279 crimson/osd: rename CoreState to OSDSingletonState
CoreState was a bad name -- "core" is going to be used
to refer to seastar reactors/cores as well.

Signed-off-by: Samuel Just <sjust@redhat.com>
2022-09-21 10:36:50 -07:00
Samuel Just
03765c09bf crimson/osd/shard_services: formatting fixes
Signed-off-by: Samuel Just <sjust@redhat.com>
2022-09-21 10:36:50 -07:00
Samuel Just
cd8a069ab3 crimson/common: introduce smp_helpers.h, crimson::submit_to
Introduce crimson::submit_to wrapper to transparently deal with
vanilla and errorated futures, adds helpers to errorator.h.

Signed-off-by: Samuel Just <sjust@redhat.com>
2022-09-21 10:36:46 -07:00
Samuel Just
9961e70e73 crimson/.../client_request: use intrusive_ptr for instance_handle
Signed-off-by: Samuel Just <sjust@redhat.com>
2022-09-20 17:34:47 -07:00
Samuel Just
73ce96de86
Merge pull request #48121 from rzarzynski/wip-crimson-pgadvmap-critical-from
crimson/osd: initialize PGAdvanceMap::from inside critical section

Reviewed-by: Samuel Just <sjust@redhat.com>
2022-09-20 15:00:45 -07:00
Casey Bodley
870fbefd4d
Merge pull request #48131 from adamemerson/wip-no-fno-new-ttp-matching
build: Remove -fno-new-ttp-matchingg flag

Reviewed-by: Kefu Chai <tchaikov@gmail.com>
2022-09-20 11:23:17 -04:00
Venky Shankar
cfa0feee0d
Merge pull request #48172 from mchangir/doc-add-note-about-cephfs-mirroring-paths
doc/cephfs: add note about cephfs-mirroring paths

Reviewed-by: Venky Shankar <vshankar@redhat.com>
2022-09-20 17:23:38 +05:30
Milind Changire
56178917a6 doc/cephfs: add note about cephfs-mirroring paths
Signed-off-by: Milind Changire <mchangir@redhat.com>
2022-09-20 13:47:09 +05:30
Venky Shankar
61f9c4501e
Merge pull request #48149 from batrick/i57586
tools: allow spaces in dentries for first-damage.sh

Reviewed-by: Venky Shankar <vshankar@redhat.com>
2022-09-20 09:36:38 +05:30
Samuel Just
2e712c26d8
Merge pull request #48057 from athanatos/sjust/wip-io-hang
crimson/osd/client_request: use fresh tracking_events/handle instances on requeue

Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
2022-09-19 17:52:36 -07:00
Samuel Just
b23b1a4f12 crimson/osd/client_request: use fresh tracking_events/handle instances on requeue
See instance_handle_t explanation in client_request.h

Fixes: https://tracker.ceph.com/issues/57494
Fixes: https://tracker.ceph.com/issues/57495
Signed-off-by: Samuel Just <sjust@redhat.com>
2022-09-19 21:04:14 +00:00
Samuel Just
a79e029a72
Merge pull request #48059 from athanatos/sjust/wip-57506
crimson: fix for pgs stuck in +wait along with some debug improvements

Reviewed-by: Yingxin Cheng <yingxin.cheng@intel.com>
Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
2022-09-19 13:40:41 -07:00
Samuel Just
e811060b84
Merge pull request #48091 from rzarzynski/wip-crimson-pgadvmap-complete-in-order
crimson/osd: PGAdvanceMap ops complete in order

Reviewed-by: Samuel Just <sjust@redhat.com>
2022-09-19 13:30:52 -07:00
Nizamudeen A
7ca84d65ca
Merge pull request #48134 from rhcs-dashboard/silence-fix
mgr/dashboard: use service call instead of form component

Reviewed-by: Aashish Sharma <aasharma@redhat.com>
Reviewed-by: Ernesto Puerta <epuertat@redhat.com>
2022-09-20 00:53:55 +05:30
Patrick Donnelly
acab0766e5
tools: allow spaces in dentries for first-damage.sh
Fixes: https://tracker.ceph.com/issues/57586
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2022-09-19 13:34:22 -04:00
Patrick Donnelly
4081f949b7
qa: test first damage with dentry containing spaces
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2022-09-19 13:34:19 -04:00
Samuel Just
ad87f822bd
Merge pull request #45369 from jyha200/wip-samplededup
ceph_dedup_tool: adding sample-dedup

Reviewed-by: Samuel Just <sjust@redhat.com>
Reviewed-by: Myoungwon Oh <myoungwon.oh@samsung.com>
2022-09-19 10:32:19 -07:00
Adam King
12235e92e6
Merge pull request #41855 from p-se/compile-cephadm-1
cephadm: compile cephadm

Reviewed-by: Adam King <adking@redhat.com>
Reviewed-by: Anthony D'Atri <anthonyeleven@users.noreply.github.com>
2022-09-19 11:48:51 -04:00
Yuri Weinstein
346a33aeb6
Merge pull request #47873 from pdvian/wip-log-last
mon/LogMonitor: Fix log last

Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
2022-09-19 08:36:45 -07:00
Yuri Weinstein
98f8424eea
Merge pull request #47852 from Matan-B/wip-matanb-radosmodel
test/osd/RadosModel: Improve error debugging

Reviewed-by: Neha Ojha <nojha@redhat.com>
Reviewed-by: Samuel Just <sjust@redhat.com>
2022-09-19 08:36:15 -07:00
Yuri Weinstein
af5b108776
Merge pull request #47841 from Matan-B/wip-matanb-rados-striper
SimpleRADOSStriper: Avoid moving bufferlists by using deque in read()

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
Reviewed-by: Ronen Friedman <rfriedma@redhat.com>
2022-09-19 08:35:31 -07:00
Yuri Weinstein
c10c8a5e89
Merge pull request #47774 from vumrao/wip-vumrao-57271
blk/KernelDevice: Modify the rotational and discard check log message

Reviewed-by: Igor Fedotov <ifedotov@suse.com>
2022-09-19 08:33:54 -07:00
Casey Bodley
f57c9b6bdd
Merge pull request #48156 from cbodley/wip-rgw-unused-throttles
rgw: remove unused AioThrottles in rgw_op.cc

Reviewed-by: Daniel Gryniewicz <dang@redhat.com>
2022-09-19 11:31:25 -04:00
Adam King
fb3ad64e12
Merge pull request #46321 from jmolmo/issue_55605
mgr/rook: fix error when trying to get the list of nfs services

Reviewed-by: John Mulligan <jmulligan@redhat.com>
2022-09-19 11:04:58 -04:00
Yuri Weinstein
00038e90fc
Merge pull request #46961 from tcoldrick-bb/balancer-weekday
mgr/balancer: Disallow 7 as {begin,end}_weekday and 2400 as {begin,end}_time

Reviewed-by: Laura Flores <lflores@redhat.com>
2022-09-19 07:15:29 -07:00
Yuri Weinstein
6875406e05
Merge pull request #46091 from pdvian/wip-bluestore-error
os/bluestore: Log error to stderr if fail to decode label

Reviewed-by: Igor Fedotov <ifedotov@suse.com>
2022-09-19 07:15:01 -07:00