Kefu Chai [Tue, 4 Jun 2019 12:59:24 +0000 (20:59 +0800)]
cmake: extract rgw_*_scheduler.cc into rgw_schedulers
i was running into following issue:
../../../lib/libradosgw_a.a(rgw_loadgen_process.cc.o): In function
`RGWLoadGenProcess::run()':
/home/jenkins-build/build/workspace/ceph-pull-requests/src/rgw/rgw_loadgen_process.cc:102:
undefined reference to `signal_shutdown()'
collect2: error: ld returned 1 exit status
signal_shutdown() is only used by rgw_main.cc to notify the main thread,
but we don't need this facility in unit test exercising the schedulers,
so, in this change, rgw schedulers are extracted into librgw_schedulers,
so this library can be consumed by the unit test.
Kefu Chai [Mon, 3 Jun 2019 08:36:12 +0000 (16:36 +0800)]
cmake: link rgw tests against ${rgw_libs}
if `WITH_RADOSGW_AMQP_ENDPOINT` is enabled, we should always link rgw
applications against `RabbitMQ::RabbitMQ` or `amqp_mock`, so, to
simplify the linkage dependencies, we should just use `${rgw_libs}`
instead of using `rgw_a` directly.
Kefu Chai [Mon, 3 Jun 2019 07:02:51 +0000 (15:02 +0800)]
cmake: link libkv against common_prioritycache_obj
as both `kv/rocksdb_cache/BinnedLRUCache.cc` and
`kv/rocksdb_cache/ShardedCache.cc` uses `PriorityCache` which is in turn
offered by common_prioritycache_obj, we need to link libkv against the
latter.
libos uses `PriorityCache` as well, but since libos links against
libkv, so it's safe.
Kefu Chai [Mon, 3 Jun 2019 05:27:57 +0000 (13:27 +0800)]
cmake: remove kv_objs target
libkv is better than kv_objs, as it is able to bring more
properties with with it, for instance, the public include
directories, the public/private libraries it is linked against.
Kefu Chai [Mon, 27 May 2019 11:53:42 +0000 (19:53 +0800)]
cmake: use BUILD_BYPRODUCTS to fix build w/ ninja
ninja scan the build dependencies differently than GNU make, so we need
to specify the product of `ExternalProject_Add()`. with this change,
we can build `vstart-base` without building the ExternalProject
separately.
Kefu Chai [Mon, 27 May 2019 07:09:25 +0000 (15:09 +0800)]
cmake: include googletest instead of its subdirectory
so its own settings can be populated properly, among other things,
`GOOGLETEST_VERSION` is set in the CMakeLists.txt in its root directory.
without it, cmake complains when interpreting
project(gtest VERSION ${GOOGLETEST_VERSION} LANGUAGES CXX C)
Lenz Grimmer [Tue, 21 May 2019 12:00:54 +0000 (14:00 +0200)]
Merge pull request #28147 from bk201/wip-39933
mgr/dashboard: fix backend error when updating RBD interlocked features
Reviewed-by: Laura Paduano <lpaduano@suse.com> Reviewed-by: Patrick Nawracay <pnawracay@suse.com> Reviewed-by: Ricardo Dias <rdias@suse.com> Reviewed-by: Tatjana Dehler <tdehler@suse.com>
Kiefer Chang [Mon, 20 May 2019 06:18:32 +0000 (14:18 +0800)]
mgr/dashboard: fix some performance data are not displayed
Several Grafana dashboards were updated and their uids are changed.
Update corresponding uids in angular templates. Also fix that when a user
clicks performance details of an OSD, wrong OSD metrics are displayed.
Ali Maredia [Thu, 16 May 2019 16:03:20 +0000 (12:03 -0400)]
qa: remove mon valgrind check in rgw verfiy suite
memory leaks in the monitor are causing a significant
percentage of jobs run in the rgw verify suite to
fail even though the jobs succeeded before hand.
See: http://tracker.ceph.com/issues/38827 for
root cause
Kiefer Chang [Thu, 16 May 2019 07:53:35 +0000 (15:53 +0800)]
mgr/dashboard: fix backend error when updating RBD interlocked features
Now object-map and fast-diff features are interlocked. Allow
enabling/disabling these two features together without raising an already
enabled/disabled error.
Yuri Weinstein [Fri, 10 May 2019 16:28:56 +0000 (09:28 -0700)]
qa/tests: added new client-upgrade-*-nautilus suites for jewel, luminous, mimic
NOTE:
!!!! three suites below MUST use --suite-branch jewel, luminous, mimic (see https://tracker.ceph.com/issues/24021)
ref: https://github.com/ceph/ceph/pull/27983; https://github.com/ceph/ceph/pull/27934; https://github.com/ceph/ceph/pull/28027
--filter "ubuntu_16.04,centos_7.6,rhel_7.6" - test ONLY supported distro BEFORE mimic
--filter "ubuntu_16.04,ubuntu_18.04,centos_7.6,rhel_7.6" - test ONLY supported distro AFTER mimic
Merge after https://github.com/ceph/ceph/pull/28027
Jason Dillaman [Tue, 14 May 2019 13:34:04 +0000 (09:34 -0400)]
librbd: use custom allocator for aligned boost::lockfree::queue
If tcmalloc is in-use as the allocator and its version is less than 2.6.2,
it might be missing support for 'aligned_alloc'. This can result in the
glibc version of 'aligned_alloc' being used to allocate memory that is
then freed by tcmalloc -- resulting in a crash.
Fixes: http://tracker.ceph.com/issues/39703 Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Patrick Donnelly [Tue, 14 May 2019 20:07:49 +0000 (13:07 -0700)]
Merge PR #27594 into master
* refs/pull/27594/head:
mgr/volumes: allow creation/deletion of FS subvolume group snapshots
mgr/volumes: allow creation/deletion of FS subvolume groups
mgr/volumes: allow creation/deletion of snapshots of FS subvolumes
mgr/volumes: allow fetching path of FS subvolumes
mgr/volumes: use the fs_subvolume module
mgr/volumes: add fs_subvolume module
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
Ramana Raja [Mon, 29 Apr 2019 12:31:49 +0000 (18:01 +0530)]
mgr/volumes: allow creation/deletion of FS subvolume groups
... using `ceph fs subvolumegroup create/rm` commands.
FS subvolume groups are parent directories of FS subvolumes. They
can be directly mapped to OpenStack Manila share groups.
Ramana Raja [Sat, 13 Apr 2019 16:06:05 +0000 (21:36 +0530)]
mgr/volumes: add fs_subvolume module
fs_subvolume module provisions and manages CephFS subvolumes, which are
CephFS subdirectories with a desired layout and quota. Its code is
heavily borrowed from, src/pybind/ceph_volume_client.py
Fixes: http://tracker.ceph.com/issues/39610 Signed-off-by: Ramana Raja <rraja@redhat.com>
Jason Dillaman [Wed, 8 May 2019 21:34:02 +0000 (17:34 -0400)]
osdc/Striper: implemented a lightweight version of file_to_extents
The previous versions of file_to_extents resulted in numerous heap
allocations for maps, vectors, and strings -- in addition to using
a CPU inefficient oid name formater.
librbd doesn't require the use of object_t and it would be better to
avoid any heap allocations on the IO path for the common case.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Jason Dillaman [Wed, 8 May 2019 18:09:17 +0000 (14:09 -0400)]
common/Finisher: avoid memory re-allocations for finisher queue
Since there is only a single thread associated with the Finisher,
swap between two queues to avoid the need to re-allocate a new
vector for each iteration through the loop. Also replace the
condition broadcast with a signal since there is only a single
thread to wake up.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>