]> git.apps.os.sepia.ceph.com Git - ceph.git/log
ceph.git
7 years agotest: make the LibCephFS.ShutdownRacer test even more thrashy 18139/head
Jeff Layton [Wed, 11 Oct 2017 15:16:39 +0000 (11:16 -0400)]
test: make the LibCephFS.ShutdownRacer test even more thrashy

Have each thread do the startup and shutdown in a loop for a specified
number of times.

Tracker: http://tracker.ceph.com/issues/21512
Signed-off-by: Jeff Layton <jlayton@redhat.com>
7 years agolockdep: free_ids and lock_ref hashes must be truly global
Jeff Layton [Wed, 11 Oct 2017 15:16:38 +0000 (11:16 -0400)]
lockdep: free_ids and lock_ref hashes must be truly global

It's possible for the teardown of g_lockdep_ceph_ctx to occur, followed
by a new context being registered as the lockdep context. When that
occurs, we can end up reusing lock id's that were previously handed out
to consumers. We need for those IDs to be persistent across lockdep
enablement and disablement.

Make both the free_ids table, and the lock_refs map persistent across
lockdep_unregister_ceph_context and lockdep_register_ceph_context cycles.
Entries in those tables will only be deleted by the destruction of the
associated mutex.

When lockdep_unregister is called, do the refcounting like we normally
would, but only clear out the state when the lockid is registered
in the lock_names hash.

Finally, we do still need to handle the case where g_lockdep has gone
false even when there are outstanding references after the decrement.
Only log the message if that's not the case.

With this, we can deal with the case of multiple clients enabling and
disabling lockdep in an unsynchronized way.

Tracker: http://tracker.ceph.com/issues/21512
Signed-off-by: Jeff Layton <jlayton@redhat.com>
7 years agocommon: add a clear_g_str_vec() function to clear g_str_vec
Jeff Layton [Wed, 11 Oct 2017 15:16:38 +0000 (11:16 -0400)]
common: add a clear_g_str_vec() function to clear g_str_vec

Prefix str_vec and str_vec_lock with "g_" to make it clear that they are
truly global values. Add a new clear_g_str_vec function to allow it to
be explicitly cleaned out by callers that need that functionality
(mostly testcase for now).

Tracker: http://tracker.ceph.com/issues/21512
Signed-off-by: Jeff Layton <jlayton@redhat.com>
7 years agocommon: make it safe to call env_to_vec multiple times
Jeff Layton [Wed, 11 Oct 2017 15:16:38 +0000 (11:16 -0400)]
common: make it safe to call env_to_vec multiple times

After it has been called once and we have outstanding CephContexts with
pointers into str_vec, we can't call get_str_vec on it again.

Add a static local mutex to protect access to str_vec.

Tracker: http://tracker.ceph.com/issues/21512
Signed-off-by: Jeff Layton <jlayton@redhat.com>
7 years agoMerge pull request #18205 from yaozongyou/fix-bluestore-cache-kv-max-type
Kefu Chai [Tue, 10 Oct 2017 04:49:19 +0000 (12:49 +0800)]
Merge pull request #18205 from yaozongyou/fix-bluestore-cache-kv-max-type

doc: correct wrong bluestore config types

Reviewed-by: Kefu Chai <kchai@redhat.com>
7 years agodoc: fix bluestore config type error. 18205/head
Yao Zongyou [Tue, 10 Oct 2017 03:34:26 +0000 (11:34 +0800)]
doc: fix bluestore config type error.

Signed-off-by: Yao Zongyou <yaozongyou@vip.qq.com>
7 years agoMerge pull request #18161 from Liuchang0812/wip-bluestore-ebusy
Kefu Chai [Tue, 10 Oct 2017 02:55:07 +0000 (10:55 +0800)]
Merge pull request #18161 from Liuchang0812/wip-bluestore-ebusy

os/bluestore: do not core dump when we try to open kvstore twice

Reviewed-by: Sage Weil <sage@redhat.com>
7 years agoMerge pull request #18149 from tchaikov/wip-cleanups
Kefu Chai [Tue, 10 Oct 2017 02:53:52 +0000 (10:53 +0800)]
Merge pull request #18149 from tchaikov/wip-cleanups

common, osd: various cleanups

Reviewed-by: Sage Weil <sage@redhat.com>
Reviewed-by: Adam C. Emerson <aemerson@redhat.com>
7 years agoMerge pull request #18177 from tchaikov/wip-kv-kill-warning
Kefu Chai [Tue, 10 Oct 2017 02:52:53 +0000 (10:52 +0800)]
Merge pull request #18177 from tchaikov/wip-kv-kill-warning

kv: unify {create_and_,}open() methods

Reviewed-by: Sage Weil <sage@redhat.com>
7 years agoMerge pull request #18195 from ktdreyer/doc-mds-blacklist-interval-manual
John Spray [Mon, 9 Oct 2017 22:31:09 +0000 (23:31 +0100)]
Merge pull request #18195 from ktdreyer/doc-mds-blacklist-interval-manual

doc: "mds blacklist interval" vs manually blacklisting

7 years agoMerge pull request #18188 from jschmid1/wip-man-osd-config-ref-syntax
Kefu Chai [Mon, 9 Oct 2017 17:01:00 +0000 (01:01 +0800)]
Merge pull request #18188 from jschmid1/wip-man-osd-config-ref-syntax

doc: fixes syntax in osd-config-ref

Reviewed-by: Kefu Chai <kchai@redhat.com>
7 years agodoc: fix syntax in rst 18188/head
Joshua Schmid [Mon, 9 Oct 2017 15:31:45 +0000 (17:31 +0200)]
doc: fix syntax in rst

* Fix syntax in osd max object size section.

Fixes: http://tracker.ceph.com/issues/21733
Signed-off-by: Joshua Schmid <jschmid@suse.de>
7 years agodoc: "mds blacklist interval" vs manually blacklisting 18195/head
Ken Dreyer [Mon, 9 Oct 2017 15:20:35 +0000 (09:20 -0600)]
doc: "mds blacklist interval" vs manually blacklisting

The "mds blacklist interval" setting has no effect on the time that
the "ceph osd blacklist" command will use by default. Clarify this in
the docs.

Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
7 years agokv: unify {create_and_,}open() methods 18177/head
Kefu Chai [Mon, 9 Oct 2017 08:52:20 +0000 (16:52 +0800)]
kv: unify {create_and_,}open() methods

this silences the warning of "-Woverloaded-virtual" where create() and
create_and_open() from KeyValueDB are hidden from the ones defined in
derived classes.

Signed-off-by: Kefu Chai <kchai@redhat.com>
7 years agoMerge pull request #18190 from JustL/master
Haomai Wang [Mon, 9 Oct 2017 13:48:19 +0000 (08:48 -0500)]
Merge pull request #18190 from JustL/master

msg/async/rdma: unnecessary reinitiliazation of an iterator

Reviewed-by: Haomai Wang <haomai@xsky.com>
7 years agoMerge pull request #18058 from Yan-waller/wip-walle-0927pgstatexpandstate
Sage Weil [Mon, 9 Oct 2017 13:22:42 +0000 (08:22 -0500)]
Merge pull request #18058 from Yan-waller/wip-walle-0927pgstatexpandstate

osd/PG:  extend pg state bits to fix pg ls commands error

Reviewed-by: Sage Weil <sage@redhat.com>
7 years agomsg/async/rdma: unnecessary reinitiliazation of an iterator 18190/head
JustL [Mon, 9 Oct 2017 12:37:43 +0000 (20:37 +0800)]
msg/async/rdma: unnecessary reinitiliazation of an iterator

current_buffer iterator does not need to be reinitalized as no changes
occur between the initialization and iteration steps.

Signed-off-by: Justinas Lingys jlingys@connect.ust.hk
7 years agoMerge pull request #18178 from joscollin/wip-radosgw-admin-reshard-fix
Orit Wasserman [Mon, 9 Oct 2017 12:19:05 +0000 (15:19 +0300)]
Merge pull request #18178 from joscollin/wip-radosgw-admin-reshard-fix

rgw: update usage() with status
Reviewed-by: Orit Wasserman <owasserm@redhat.com>
7 years agoMerge pull request #18180 from oritwas/wip-rgw-21617
Jos Collin [Mon, 9 Oct 2017 12:03:57 +0000 (12:03 +0000)]
Merge pull request #18180 from oritwas/wip-rgw-21617

rgw: add reshard commands

Reviewed-by: Jos Collin <jcollin@redhat.com>
7 years agorgw: Fixed typos and status in help.t 18178/head
Jos Collin [Mon, 9 Oct 2017 11:28:29 +0000 (16:58 +0530)]
rgw: Fixed typos and status in help.t

Fixed typos and status in help.t

Signed-off-by: Jos Collin <jcollin@redhat.com>
7 years agorgw: add reshard commands to the man pages 18180/head
Orit Wasserman [Mon, 9 Oct 2017 09:35:42 +0000 (12:35 +0300)]
rgw: add reshard commands to the man pages

Fixes: http://tracker.ceph.com/issues/21617
Signed-off-by: Orit Wasserman <owasserm@redhat.com>
7 years agoMerge pull request #18162 from tchaikov/wip-ceph-disk-retry-on-dev-not-ready
Kefu Chai [Mon, 9 Oct 2017 10:25:45 +0000 (18:25 +0800)]
Merge pull request #18162 from tchaikov/wip-ceph-disk-retry-on-dev-not-ready

ceph-disk: retry on OSError

Reviewed-by: Loic Dachary <ldachary@redhat.com>
7 years agorgw: update usage() with status
Jos Collin [Mon, 9 Oct 2017 09:14:29 +0000 (14:44 +0530)]
rgw: update usage() with status

Fixed the missing 'status' in usage().

Signed-off-by: Jos Collin <jcollin@redhat.com>
7 years agoosd/PG: extend pg state to 64 bits 18058/head
Yan Jun [Wed, 27 Sep 2017 08:35:14 +0000 (16:35 +0800)]
osd/PG: extend pg state to 64 bits

Signed-off-by: Yan Jun <yan.jun8@zte.com.cn>
7 years agoos/bluestore: drop unused class FreelistManager
Yan Jun [Wed, 27 Sep 2017 11:02:36 +0000 (19:02 +0800)]
os/bluestore: drop unused class FreelistManager

Signed-off-by: Yan Jun <yan.jun8@zte.com.cn>
7 years agoMerge pull request #18157 from batrick/ptl-tool-branch-checkout
Jos Collin [Mon, 9 Oct 2017 03:27:27 +0000 (03:27 +0000)]
Merge pull request #18157 from batrick/ptl-tool-branch-checkout

ptl-tool: checkout branch after creation

Reviewed-by: Jos Collin <jcollin@redhat.com>
7 years agoMerge pull request #17708 from liewegas/wip-pg
Sage Weil [Mon, 9 Oct 2017 02:47:49 +0000 (21:47 -0500)]
Merge pull request #17708 from liewegas/wip-pg

osd: initial minimal efforts to clean up PG interface

7 years agoMerge pull request #18125 from cernceph/dvanders_conf
Sage Weil [Mon, 9 Oct 2017 02:47:26 +0000 (21:47 -0500)]
Merge pull request #18125 from cernceph/dvanders_conf

mon: mark mon_allow_pool_delete as observed

Reviewed-by: Sage Weil <sage@redhat.com>
7 years agoMerge pull request #18144 from hjwsm1989/wip-21425-part2
Sage Weil [Mon, 9 Oct 2017 02:47:02 +0000 (21:47 -0500)]
Merge pull request #18144 from hjwsm1989/wip-21425-part2

qa/suites/rest/basic/tasks/rest_test: whiltelist OSD_DOWN

Reviewed-by: xie xingguo <xie.xingguo@zte.com.cn>
7 years agoMerge pull request #18159 from liewegas/wip-21712-b
Sage Weil [Mon, 9 Oct 2017 02:46:27 +0000 (21:46 -0500)]
Merge pull request #18159 from liewegas/wip-21712-b

os: fix 0-length zero semantics, add tests

Reviewed-by: xie xingguo <xie.xingguo@zte.com.cn>
Reviewed-by: Kefu Chai <kchai@redhat.com>
7 years agoos/bluestore: 0-length zero should not change object size 18159/head
Sage Weil [Fri, 6 Oct 2017 20:29:32 +0000 (15:29 -0500)]
os/bluestore: 0-length zero should not change object size

Fixes: http://tracker.ceph.com/issues/21712
Signed-off-by: Sage Weil <sage@redhat.com>
7 years agoos/filestore: make 0-length zero avoid touching object length
Sage Weil [Fri, 6 Oct 2017 20:29:15 +0000 (15:29 -0500)]
os/filestore: make 0-length zero avoid touching object length

Fixes: http://tracker.ceph.com/issues/21712
Signed-off-by: Sage Weil <sage@redhat.com>
7 years agoos/ObjectStore: 0-length zero does not change length of object
Sage Weil [Fri, 6 Oct 2017 20:28:49 +0000 (15:28 -0500)]
os/ObjectStore: 0-length zero does not change length of object

Signed-off-by: Sage Weil <sage@redhat.com>
7 years agomon/OSDMonitor: s/g_ceph_context/cct/ 18149/head
Kefu Chai [Tue, 26 Sep 2017 09:19:23 +0000 (17:19 +0800)]
mon/OSDMonitor: s/g_ceph_context/cct/

use this->cct if possible, yet another step to remove the dependency on
global `g_ceph_context`.

Signed-off-by: Kefu Chai <kchai@redhat.com>
7 years agocommon/config: return const reference instead of a copy
Kefu Chai [Fri, 6 Oct 2017 10:27:51 +0000 (18:27 +0800)]
common/config: return const reference instead of a copy

avoid creating temporary Option::value_t instances if possible

Signed-off-by: Kefu Chai <kchai@redhat.com>
7 years agocommon/config: use boost::get<> instead of visitor
Kefu Chai [Sun, 8 Oct 2017 16:32:54 +0000 (00:32 +0800)]
common/config: use boost::get<> instead of visitor

simpler this way with caveat of less developer friendly assertion
failure.

Signed-off-by: Kefu Chai <kchai@redhat.com>
7 years agoosd,common: avoid casting useless casts
Kefu Chai [Fri, 6 Oct 2017 10:11:46 +0000 (18:11 +0800)]
osd,common: avoid casting useless casts

no need to cast a variable of type `Foo` to `Foo`, for example, 2.000 is
of type `double`, so (double)2.000 does not make sense.

Signed-off-by: Kefu Chai <kchai@redhat.com>
7 years agoinclude/types.h: silence "-Wdouble-promotion" warnings
Kefu Chai [Fri, 6 Oct 2017 09:49:04 +0000 (17:49 +0800)]
include/types.h: silence "-Wdouble-promotion" warnings

avoid implicit promotion from float to double.

Signed-off-by: Kefu Chai <kchai@redhat.com>
7 years agocommon/config: s/_get_val/_get_val_generic/
Kefu Chai [Mon, 9 Oct 2017 01:45:57 +0000 (09:45 +0800)]
common/config: s/_get_val/_get_val_generic/

avoid distinguish two methods with their return types and non-templated
versus templated. also, this follows the convention of md_config_t.

Signed-off-by: Kefu Chai <kchai@redhat.com>
7 years agoMerge pull request #18141 from adamemerson/wip-log-time
Kefu Chai [Mon, 9 Oct 2017 01:35:46 +0000 (09:35 +0800)]
Merge pull request #18141 from adamemerson/wip-log-time

log: Use the coarse real time clock in log timestamps

Reviewed-by: Sage Weil <sage@redhat.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
7 years agoMerge pull request #17976 from adamemerson/wip-warning-sign
Kefu Chai [Mon, 9 Oct 2017 01:34:50 +0000 (09:34 +0800)]
Merge pull request #17976 from adamemerson/wip-warning-sign

mgr,osd,kv: Fix various warnings for Clang and GCC7

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
7 years agoceph-disk: retry on OSError 18162/head
Kefu Chai [Sat, 7 Oct 2017 14:15:11 +0000 (22:15 +0800)]
ceph-disk: retry on OSError

we are likely to
1) create partition, for instance, sdc1
2) partprobe sdc
3) udevadm settle
4) check the device by its path: /dev/sdc1

but there is chance that the uevent sent from kernel fails to reach udev
before we call "udevadm", hence "/dev/sdc1" does not exist even after
"udevadm settle" returns. so we retry in case of OSError here.

Signed-off-by: Kefu Chai <kchai@redhat.com>
7 years agoceph-disk: factor out the retry logic into a decorator
Kefu Chai [Sat, 7 Oct 2017 13:13:47 +0000 (21:13 +0800)]
ceph-disk: factor out the retry logic into a decorator

Signed-off-by: Kefu Chai <kchai@redhat.com>
7 years agoos/bluestore: do not core dump when we try to open kvstore twice 18161/head
Chang Liu [Sat, 7 Oct 2017 08:46:46 +0000 (16:46 +0800)]
os/bluestore: do not core dump when we try to open kvstore twice

Signed-off-by: Chang Liu <liuchang0812@gmail.com>
7 years agolog: Mark timestamps for coarseness and print appropriately 18141/head
Adam C. Emerson [Fri, 6 Oct 2017 21:15:43 +0000 (17:15 -0400)]
log: Mark timestamps for coarseness and print appropriately

Have each timestamp know whether it's coarse or fine. Print six figures
for fine stamps and three for coarse.

Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
7 years agolog: Add log_coarse_timestamps option
Adam C. Emerson [Thu, 5 Oct 2017 22:34:06 +0000 (18:34 -0400)]
log: Add log_coarse_timestamps option

And set up an observer in CephContext to coarsen/refine time stamps as
requested.

Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
7 years agoconfig: Add templated _get_val for use in observers
Adam C. Emerson [Thu, 5 Oct 2017 22:32:32 +0000 (18:32 -0400)]
config: Add templated _get_val for use in observers

When notified by a config observer, the config lock is already held,
create a _get_val template to manipulate newstyle options when
notified.

Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
7 years agolog: Use log_clock, defaulting to coarse time
Adam C. Emerson [Thu, 5 Oct 2017 22:30:56 +0000 (18:30 -0400)]
log: Use log_clock, defaulting to coarse time

Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
7 years agolog: Add optional msg parameter to create_entry and test with it
Adam C. Emerson [Thu, 5 Oct 2017 22:27:37 +0000 (18:27 -0400)]
log: Add optional msg parameter to create_entry and test with it

The tests should, really, get their time from the same source as the
log, and also probably use the same interface to creating entries that
other people do. So add an optional message argument and have the
tests use that rather than using the new operator directly.

Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
7 years agolog: Create log_clock to replace use of utime_t
Adam C. Emerson [Thu, 5 Oct 2017 22:17:16 +0000 (18:17 -0400)]
log: Create log_clock to replace use of utime_t

We create a new time type to support using coarse timestamps (for
performance) by default while still allowing the user to switch to
fine timestamps.

Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
7 years agoosd/PGLog: drop old compat coll/oid args to read_log_and_missing 17708/head
Sage Weil [Fri, 6 Oct 2017 19:34:41 +0000 (14:34 -0500)]
osd/PGLog: drop old compat coll/oid args to read_log_and_missing

The oldest version we care about is 10, and these were for <8.

Signed-off-by: Sage Weil <sage@redhat.com>
7 years agoMerge pull request #18122 from liewegas/wip-monthrash-peering
Sage Weil [Fri, 6 Oct 2017 20:32:45 +0000 (15:32 -0500)]
Merge pull request #18122 from liewegas/wip-monthrash-peering

qa/suites/rados/monthrash: tolerate PG_AVAILABILITY during mon thrashing

7 years agoMerge pull request #18047 from gregsfortytwo/wip-20416-bitwise-assert
Yuri Weinstein [Fri, 6 Oct 2017 19:48:35 +0000 (12:48 -0700)]
Merge pull request #18047 from gregsfortytwo/wip-20416-bitwise-assert

osd: make the PG's SORTBITWISE assert a more generous shutdown

Reviewed-by: Sage Weil <sage@redhat.com>
7 years agoceph-objectstore-tool: bring past_intervals up to date on import
Sage Weil [Fri, 6 Oct 2017 19:21:43 +0000 (14:21 -0500)]
ceph-objectstore-tool: bring past_intervals up to date on import

We can't blinding fast-forward the pg epoch to the latest map without
also updating the pg history and PastIntervals.  Do that at import time.

Signed-off-by: Sage Weil <sage@redhat.com>
7 years agoceph-objectstore-tool: hide DIAGNOSTIC stuff behind debug/verbose mode
Sage Weil [Fri, 6 Oct 2017 18:58:22 +0000 (13:58 -0500)]
ceph-objectstore-tool: hide DIAGNOSTIC stuff behind debug/verbose mode

Signed-off-by: Sage Weil <sage@redhat.com>
7 years agoceph-objectstore-tool: drop unused biginfo_oid
Sage Weil [Fri, 6 Oct 2017 18:57:59 +0000 (13:57 -0500)]
ceph-objectstore-tool: drop unused biginfo_oid

Signed-off-by: Sage Weil <sage@redhat.com>
7 years agoceph-objectstore-tool: refuse to import PG older that OSD's oldest_epoch
Sage Weil [Fri, 6 Oct 2017 18:43:57 +0000 (13:43 -0500)]
ceph-objectstore-tool: refuse to import PG older that OSD's oldest_epoch

We don't have a way to construct a valid PastIntervals history.

Signed-off-by: Sage Weil <sage@redhat.com>
7 years agoptl-tool: checkout branch after creation 18157/head
Patrick Donnelly [Fri, 6 Oct 2017 18:52:04 +0000 (11:52 -0700)]
ptl-tool: checkout branch after creation

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
7 years agoceph-objectstore-tool: remove rm-past-intervals op
Sage Weil [Thu, 5 Oct 2017 02:31:12 +0000 (21:31 -0500)]
ceph-objectstore-tool: remove rm-past-intervals op

The OSD doesn't rebuild this on demand anymore.

Signed-off-by: Sage Weil <sage@redhat.com>
7 years agoceph-objectstore-tool: do not clear same_interval_since and PastIntervals
Sage Weil [Tue, 3 Oct 2017 18:32:37 +0000 (13:32 -0500)]
ceph-objectstore-tool: do not clear same_interval_since and PastIntervals

We dropped the OSD recalculation code for this.  Import it.

Signed-off-by: Sage Weil <sage@redhat.com>
7 years agoceph-objectstore-tool: print pg_info_t to stdoutt
Sage Weil [Sun, 17 Sep 2017 23:27:44 +0000 (18:27 -0500)]
ceph-objectstore-tool: print pg_info_t to stdoutt

Helpful for debugging

Signed-off-by: Sage Weil <sage@redhat.com>
7 years agoosd: print summary for forced backfill/recovery to debug
Sage Weil [Mon, 18 Sep 2017 21:53:31 +0000 (16:53 -0500)]
osd: print summary for forced backfill/recovery to debug

Signed-off-by: Sage Weil <sage@redhat.com>
7 years agoosd/PG: drop OSD friend, finally!
Sage Weil [Mon, 18 Sep 2017 19:53:47 +0000 (14:53 -0500)]
osd/PG: drop OSD friend, finally!

Signed-off-by: Sage Weil <sage@redhat.com>
7 years agoosd: drop redundant is_active() check before scrub_sched()
Sage Weil [Mon, 18 Sep 2017 19:51:36 +0000 (14:51 -0500)]
osd: drop redundant is_active() check before scrub_sched()

Signed-off-by: Sage Weil <sage@redhat.com>
7 years agoosd/PG: make update_snap_mapper_bits public
Sage Weil [Mon, 18 Sep 2017 19:14:11 +0000 (14:14 -0500)]
osd/PG: make update_snap_mapper_bits public

Signed-off-by: Sage Weil <sage@redhat.com>
7 years agoosd/PG: make on_removal() public
Sage Weil [Mon, 18 Sep 2017 19:12:08 +0000 (14:12 -0500)]
osd/PG: make on_removal() public

Signed-off-by: Sage Weil <sage@redhat.com>
7 years agoosd/PG: make get_primary() public
Sage Weil [Mon, 18 Sep 2017 19:11:49 +0000 (14:11 -0500)]
osd/PG: make get_primary() public

Signed-off-by: Sage Weil <sage@redhat.com>
7 years agoosd/PG: add get_pool()
Sage Weil [Mon, 18 Sep 2017 19:05:00 +0000 (14:05 -0500)]
osd/PG: add get_pool()

Signed-off-by: Sage Weil <sage@redhat.com>
7 years agoosd: use pg_id.pool() for pg pool id
Sage Weil [Mon, 18 Sep 2017 19:04:44 +0000 (14:04 -0500)]
osd: use pg_id.pool() for pg pool id

Signed-off-by: Sage Weil <sage@redhat.com>
7 years agoosd/PG: make sched_scrub() public
Sage Weil [Mon, 18 Sep 2017 19:04:14 +0000 (14:04 -0500)]
osd/PG: make sched_scrub() public

Signed-off-by: Sage Weil <sage@redhat.com>
7 years agoosd/PG: get_must_scrub()
Sage Weil [Mon, 18 Sep 2017 19:01:00 +0000 (14:01 -0500)]
osd/PG: get_must_scrub()

Signed-off-by: Sage Weil <sage@redhat.com>
7 years agoosd/PGBackend: remove scrub_supported()
Sage Weil [Mon, 18 Sep 2017 19:00:37 +0000 (14:00 -0500)]
osd/PGBackend: remove scrub_supported()

Everybody supports scrub.

Signed-off-by: Sage Weil <sage@redhat.com>
7 years agoosd/PG: change 'debug dump_missing'
Sage Weil [Mon, 18 Sep 2017 18:59:33 +0000 (13:59 -0500)]
osd/PG: change 'debug dump_missing'

- json
- move into PG class

No users in the qa suite.

Signed-off-by: Sage Weil <sage@redhat.com>
7 years agoosd/PG: move bits of delete_dir (pg removal) into PG
Sage Weil [Mon, 18 Sep 2017 02:55:27 +0000 (21:55 -0500)]
osd/PG: move bits of delete_dir (pg removal) into PG

We don't want to expose things like SnapMapper, OSDriver.

Signed-off-by: Sage Weil <sage@redhat.com>
7 years agoosd/PG: define public interface for heartbeat peers
Sage Weil [Mon, 18 Sep 2017 02:32:44 +0000 (21:32 -0500)]
osd/PG: define public interface for heartbeat peers

Signed-off-by: Sage Weil <sage@redhat.com>
7 years agoosd: use accessors for pg resurrection
Sage Weil [Mon, 18 Sep 2017 02:17:36 +0000 (21:17 -0500)]
osd: use accessors for pg resurrection

Signed-off-by: Sage Weil <sage@redhat.com>
7 years agoosd/PG: simplify start_recovery_ops return value meaning
Sage Weil [Sun, 17 Sep 2017 23:32:45 +0000 (18:32 -0500)]
osd/PG: simplify start_recovery_ops return value meaning

Instead of complex check in caller, return simple bool indicating whether
find_unfound() should be called with a rctx.

There is one remaining condition that can probably be simplified:

  if (!recovering.empty() ||
      work_in_progress || recovery_ops_active > 0 || deferred_backfill)
    return !work_in_progress && have_unfound();

but we will leave it for now.

Signed-off-by: Sage Weil <sage@redhat.com>
7 years agoosd/PG: simplify unfound recovery case; rename method
Sage Weil [Sun, 17 Sep 2017 23:29:38 +0000 (18:29 -0500)]
osd/PG: simplify unfound recovery case; rename method

Signed-off-by: Sage Weil <sage@redhat.com>
7 years agoosd/PG: drop unneeded write_if_dirty
Sage Weil [Sun, 17 Sep 2017 23:27:44 +0000 (18:27 -0500)]
osd/PG: drop unneeded write_if_dirty

Nothing in start_recovery_ops or stuck_on_unfound dirties state.

Signed-off-by: Sage Weil <sage@redhat.com>
7 years agoosd/PG: move a few assertions, flag change into start_recovery_ops()
Sage Weil [Sun, 17 Sep 2017 23:11:35 +0000 (18:11 -0500)]
osd/PG: move a few assertions, flag change into start_recovery_ops()

Signed-off-by: Sage Weil <sage@redhat.com>
7 years agoosd/PG: move some more split machinery into PG
Sage Weil [Sun, 17 Sep 2017 22:55:29 +0000 (17:55 -0500)]
osd/PG: move some more split machinery into PG

and move other split pieces into the public interface.

Signed-off-by: Sage Weil <sage@redhat.com>
7 years agoosd/PG: move write_if_dirty inside handle_{loaded,create}
Sage Weil [Sun, 17 Sep 2017 22:37:36 +0000 (17:37 -0500)]
osd/PG: move write_if_dirty inside handle_{loaded,create}

Signed-off-by: Sage Weil <sage@redhat.com>
7 years agoosd/PG: get_need_up_thru(), get_same_interval_since()
Sage Weil [Sun, 17 Sep 2017 22:35:31 +0000 (17:35 -0500)]
osd/PG: get_need_up_thru(), get_same_interval_since()

Signed-off-by: Sage Weil <sage@redhat.com>
7 years agoosd: bit less verbose while loading pgs
Sage Weil [Sun, 17 Sep 2017 22:30:32 +0000 (17:30 -0500)]
osd: bit less verbose while loading pgs

Signed-off-by: Sage Weil <sage@redhat.com>
7 years agoosd/PG: move more recovery logic into PG
Sage Weil [Sun, 17 Sep 2017 22:29:16 +0000 (17:29 -0500)]
osd/PG: move more recovery logic into PG

I suspect we eventually want to move the create_context and
dispatch_context into OSDService (if it isn't there already) and move
even more of this logic into PG.

Signed-off-by: Sage Weil <sage@redhat.com>
7 years agoosd/PG: move some osd logic into handle_pg_trim
Sage Weil [Sun, 17 Sep 2017 22:10:53 +0000 (17:10 -0500)]
osd/PG: move some osd logic into handle_pg_trim

Signed-off-by: Sage Weil <sage@redhat.com>
7 years agoosd/PG: hide peering_queue from OSD
Sage Weil [Sun, 17 Sep 2017 22:02:05 +0000 (17:02 -0500)]
osd/PG: hide peering_queue from OSD

Signed-off-by: Sage Weil <sage@redhat.com>
7 years agoosd: remove build_past_intervals_parallel
Sage Weil [Sat, 16 Sep 2017 18:08:07 +0000 (14:08 -0400)]
osd: remove build_past_intervals_parallel

This was added in the dumpling era to handle the case where we have lots
of PGs with stale or missing past_intervals.  These days, we update
PastIntervals as we inject new makes (via advance_map), when we
learn about new PGs via notify with get the PastIntervals at the same time,
and during PGCreate handling we have a separate path in
build_initial_pg_history.  This code is obsolete.

It also reaches deep into the PG class where it shouldn't!

Signed-off-by: Sage Weil <sage@redhat.com>
7 years agoosd: use PG::is_deleting()
Sage Weil [Sat, 16 Sep 2017 03:53:57 +0000 (23:53 -0400)]
osd: use PG::is_deleting()

Signed-off-by: Sage Weil <sage@redhat.com>
7 years agoosd/PG: move load_pgs cruft into read_state()
Sage Weil [Sat, 16 Sep 2017 03:52:33 +0000 (23:52 -0400)]
osd/PG: move load_pgs cruft into read_state()

This only happens during initial load; move it there.

Also, since update_store_with_options

Signed-off-by: Sage Weil <sage@redhat.com>
7 years agoosd/PG: make read_state, peek_map_epoch public
Sage Weil [Sat, 16 Sep 2017 03:44:53 +0000 (23:44 -0400)]
osd/PG: make read_state, peek_map_epoch public

Signed-off-by: Sage Weil <sage@redhat.com>
7 years agoosd/PG: simplify/streamline upgrade process
Sage Weil [Sat, 16 Sep 2017 03:31:54 +0000 (23:31 -0400)]
osd/PG: simplify/streamline upgrade process

There's no reason for this to be exposed to the OSD.  Just do it directly
in read_state().

Signed-off-by: Sage Weil <sage@redhat.com>
7 years agoosd/PG: drop bufferlist passed from peek_map_epoch to read_state/read_info
Sage Weil [Sat, 16 Sep 2017 03:26:17 +0000 (23:26 -0400)]
osd/PG: drop bufferlist passed from peek_map_epoch to read_state/read_info

This is no longer used or needed.

Signed-off-by: Sage Weil <sage@redhat.com>
7 years agoosd/PG: make init() public
Sage Weil [Sat, 16 Sep 2017 03:15:19 +0000 (23:15 -0400)]
osd/PG: make init() public

Signed-off-by: Sage Weil <sage@redhat.com>
7 years agoosd/PG: on_shutdown -> shutdown in public interface
Sage Weil [Sat, 16 Sep 2017 03:11:34 +0000 (23:11 -0400)]
osd/PG: on_shutdown -> shutdown in public interface

Signed-off-by: Sage Weil <sage@redhat.com>
7 years agoosd/PG: add get_num_ref()
Sage Weil [Sat, 16 Sep 2017 03:08:33 +0000 (23:08 -0400)]
osd/PG: add get_num_ref()

Signed-off-by: Sage Weil <sage@redhat.com>
7 years agoosd/PG: add get_pg_stats() to public interface
Sage Weil [Sat, 16 Sep 2017 03:07:38 +0000 (23:07 -0400)]
osd/PG: add get_pg_stats() to public interface

Signed-off-by: Sage Weil <sage@redhat.com>
7 years agoosd/PG: add dump_pgstate_history() to public interface
Sage Weil [Sat, 16 Sep 2017 02:58:15 +0000 (22:58 -0400)]
osd/PG: add dump_pgstate_history() to public interface

Signed-off-by: Sage Weil <sage@redhat.com>
7 years agoosd/PG: make get_watchers public, hide locking
Sage Weil [Sat, 16 Sep 2017 02:53:20 +0000 (22:53 -0400)]
osd/PG: make get_watchers public, hide locking

Signed-off-by: Sage Weil <sage@redhat.com>
7 years agoosd: drop legacy infos object cleanup
Sage Weil [Fri, 15 Sep 2017 22:43:29 +0000 (18:43 -0400)]
osd: drop legacy infos object cleanup

This won't be there post-luminous

Signed-off-by: Sage Weil <sage@redhat.com>