Commit Graph

102361 Commits

Author SHA1 Message Date
Patrick Seidensal
d639d7ec93 mgr/dashboard: Firefox ngx-datatable performance issue
Fixes: https://tracker.ceph.com/issues/41667

Signed-off-by: Patrick Seidensal <pseidensal@suse.com>
2019-09-16 12:54:20 +02:00
Nathan Cutler
33a5fae1cf
Merge pull request #30398 from tspmelo/wip-backport-head
script/ceph-backport.sh: Fix verification of git repository
2019-09-16 12:53:12 +02:00
Ricardo Marques
6e8f122c17 mgr/dashboard: NFS list should display the "Pseudo Path"
Fixes: https://tracker.ceph.com/issues/41815

Signed-off-by: Ricardo Marques <rimarques@suse.com>
2019-09-16 11:30:39 +01:00
Tiago Melo
4968613dd9 script/ceph-backport.sh: Fix verification of git repository
In git 2.16 running "git show-ref HEAD" returns an error and
prevents the script to procced.

Signed-off-by: Tiago Melo <tmelo@suse.com>
2019-09-16 10:27:45 +00:00
Changcheng Liu
30a35bd58f msg/async/rdma: initialize some variables in-class
1. initialize RDMAServerSocketImpl member

2. initialize RDMAConnectedSocketImpl member

3. pollfd::revents
   Though it won't result in any error here, it's better to
   initialize the pollfd structure obj's revents to be 0.

Signed-off-by: Changcheng Liu <changcheng.liu@aliyun.com>
2019-09-16 15:25:19 +08:00
Changcheng Liu
d557e649c8 msg/async/rdma: remove extra variable
Signed-off-by: Changcheng Liu <changcheng.liu@aliyun.com>
2019-09-16 15:25:19 +08:00
Changcheng Liu
5e3e134a72 msg/async/rdma: change rdma_event_channel to be non blocked
rdma_event_channel is blocked by default, if there's no event
in the event channel, rdma_get_cm_event could be blocked forever.
This is not "asynchronous" messenger.

Signed-off-by: Changcheng Liu <changcheng.liu@aliyun.com>
2019-09-16 15:25:19 +08:00
Changcheng Liu
ba65dd7e41 msg/async/rdma: librdamcm set local_qpn after creating QueuePair
Signed-off-by: Changcheng Liu <changcheng.liu@aliyun.com>
2019-09-16 15:25:19 +08:00
Changcheng Liu
97d6d0c124 msg/async/rdma: RDMAIWARPConnectedSocketImpl inherit member from base class
RDMAIWARPConnectedSocketImpl is derived from RDMAConnectedSocketImpl
which already has member "is_server" & "local/peer_qpn" & "get_local_qpn".

Signed-off-by: Changcheng Liu <changcheng.liu@aliyun.com>
2019-09-16 15:25:19 +08:00
Changcheng Liu
098e1bb196 msg/async/rdma: remove unused Send WR with immediate data
Signed-off-by: Changcheng Liu <changcheng.liu@aliyun.com>
2019-09-16 15:25:19 +08:00
Changcheng Liu
f33693d174 msg/async/rdma: refine handle_async_event implementation
1. log every asynchronous type event
2. Deal with IBV_EVENT_QP_LAST_WQE_REACHED log
   The QueuePair is switched into IBV_QPS_ERR before posting
   Beacon WR. For SRQ, all the SQ/WRs on that QP will be flushed
   into CQ and result in IBV_EVENT_QP_LAST_WQE_REACHED.
   The above scenario is what we want, it needn't take it as error
   with lderr logging.

Signed-off-by: Changcheng Liu <changcheng.liu@aliyun.com>
2019-09-16 15:25:19 +08:00
Changcheng Liu
1f5773c746 msg/async/rdma: refine handle_rx_handle log under WCE failure case
1. ibv_wc:status IBV_WC_SUCCESS
   keep same logic

2. ibv_wc:status IBV_WC_WR_FLUSH_ERR
1) After Beacon is posted into SQ, all the outstanding RQ/WR will
   be flushed into CQ with IBV_WC_WR_FLUSH_ERR status. This is right
   without special logging.
2) For the other case that trigger IBV_WC_WR_FLUSH_ERR, it need track
   more info such as remote QueuePair number and local QP state.

3. ibv_wc:status others
   same logic with tracking more info into log

Signed-off-by: Changcheng Liu <changcheng.liu@aliyun.com>
2019-09-16 15:25:19 +08:00
Changcheng Liu
72e0c84ed2 msg/async/rdma: refine handle_tx_handle log under WCE fail case
1. ibv_wc:status IBV_WC_RETRY_EXC_ERR
Logging possible reasons:
1) Responder ACK timeout
2) Responder QueuePair in bad status
3) Disconnected

2. ibv_wc:status IBV_WC_WR_FLUSH_ERR
1) After switch QP into error state, all the outstanding SQ/WRs
   will be flushed into CQ with IBV_WC_WR_FLUSH_ERR status. This is
   right without special logging.
2) For the other case that trigger IBV_WC_WR_FLUSH_ERR, it need track
   more info such as remote QueuePair number and local QP state.

3. ibv_wc:status others
   same logic with tracking more info into log

Signed-off-by: Changcheng Liu <changcheng.liu@aliyun.com>
2019-09-16 15:25:01 +08:00
Changcheng Liu
e58e3ce015 msg/async/rdma: support hardware NIC without SRQ
Currently, msg/async/rdma is friendly to the hardware with
SRQ feature. This patch makes the NIC without SRQ work.

Signed-off-by: Changcheng Liu <changcheng.liu@aliyun.com>
2019-09-16 15:25:01 +08:00
Changcheng Liu
3f620383bf msg/async/rdma: get local/peer qpn from RDMAConnectedSocketImpl
When remote QP is destroyed, QP will be disconnected. The local QP
is transitioned into error state. Then some asynchronous event or
completion event could be triggered. Need to get the qpn through
RDMAConnectedSocketImpl object.
Add get_local/peer_qpn to get qpn from RDMAConnectedSocketImpl class.

Signed-off-by: Changcheng Liu <changcheng.liu@aliyun.com>
2019-09-16 15:25:01 +08:00
Roman Penyaev
0736b46bf7 msg/async/rdma: remove redundant code
1. remove aync_handler
1). async_handler is never scheduled (which should be scheduled by
    center->dispatch_event_external).
2). async_hander wrapper handle_async_event, which will be called
    in RDMADispatcher::polling.
So, all async_handler related code are removed.

2. fault won't run to_dead, so removed the commented code

Signed-off-by: Roman Penyaev <rpenyaev@suse.de>
2019-09-16 15:25:01 +08:00
Roman Penyaev
2fb8be43fa msg/async/rdma: no need to audit inflight SQ WQEs
Beacon is used to detect SQ WQEs drained. There's no need to
to use tx_wr_inflight to check whether SQ WQEs has been drained
before destroying the QueuePair.

Signed-off-by: Roman Penyaev <rpenyaev@suse.de>
2019-09-16 15:25:01 +08:00
Roman Penyaev
e907e18154 msg/async/rdma: use special Beacon to detect SQ WRs drained
switch the QueuePair to error state, then post Beacon WR to
send queue. All outstanding WQEs will be flushed to CQ.
In CQ, check the completion queue element to detect SQ WRs has
been drained before destroying the QueuePair.
We don't post another Beacon WR to RQ if SRQ is not used/supported,
the reason is that QueuePair could be destroyed only under all
flushed WRs have been polled from CQ.

Refer to page 474 on below spec:
 InfiniBandTM Architecture Specification Volume 1, Release 1.3
spec link: https://cw.infinibandta.org/document/dl/7859

Signed-off-by: Roman Penyaev <rpenyaev@suse.de>
2019-09-16 15:25:01 +08:00
Changcheng Liu
9f070abf2f msg/async/rdma: call member function to get QP status
RDMAConnectedSocketImpl::get_qp_state() implement the function
to get QueuePair state.

Signed-off-by: Changcheng Liu <changcheng.liu@aliyun.com>
2019-09-16 15:25:01 +08:00
Changcheng Liu
ee7623746d msg/async/rdma: use QueuePair as args to get more info
ibv_qp is member in class QueuePair. QueuePair has other fields
which is needed in post_chunks_to_rq to be further checked for
different hardware feature e.g. SRQ/iWARP/RoCE

Signed-off-by: Changcheng Liu <changcheng.liu@aliyun.com>
2019-09-16 15:25:01 +08:00
Changcheng Liu
cc08b02046 msg/async/rdma: complete get_qp_lockless to get get qp
Need get_qp_lockless to get the QueuePair when lock is
locked.

Signed-off-by: Changcheng Liu <changcheng.liu@aliyun.com>
2019-09-16 15:25:01 +08:00
Changcheng Liu
8870e1bc0d msg/async/rdma: refactor QP state switch & ib_cm_meta_t transaction
1. Implement below 3 function in class QueuePair to switch QP state
   1) int modify_qp_to_error(void);
   2) int modify_qp_to_rts(void);
   3) int modify_qp_to_rtr(void);
3. All connection meta data are member of class QueuePair.
   So, send/recv connection meta data directly in send/recv_cm_meta i.e.
   change send/recv_cm_meta API without using parameter cm_meta_data.
4. RDMAConnectedSocketImpl need members to track peer_qpn and local_qpn.

Signed-off-by: Changcheng Liu <changcheng.liu@aliyun.com>
2019-09-16 15:24:26 +08:00
albIN7
13f15e6122 rgw: fix indentation for listobjectsv2
https://tracker.ceph.com/issues/41840

Signed-off-by: Albin Antony <aantony@redhat.com>
2019-09-16 11:36:19 +05:30
Tianshan Qu
339344ab19 rgw: fix data sync start delay if remote haven't init data_log
Fixes: https://tracker.ceph.com/issues/41839

Signed-off-by: Tianshan Qu <tianshan@xsky.com>
2019-09-16 13:59:31 +08:00
Chang Liu
a4128494f5 rgw: DefaultRetention requires either Days or Years
Fixes: https://tracker.ceph.com/issues/41838

Signed-off-by: Chang Liu <liuchang0812@gmail.com>
2019-09-16 11:50:39 +08:00
Patrick Donnelly
81e451e0c3
mds: drive cap recall while dropping cache
STEADY does not imply TRIM. We want to always trim as many caps as
possible.

Introduced-by: be49866a15
Fixes: https://tracker.ceph.com/issues/41835
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2019-09-15 20:43:24 -07:00
zhang Shaowen
91d39bd776 rgw: change MAX_USAGE_TRIM_ENTRIES value from 128 to 1000.
Signed-off-by: zhang Shaowen <zhangshaowen@cmss.chinamobile.com>
2019-09-16 10:32:19 +08:00
Albert H Chen
c28a00cfa5 tools/rados: Fix rand & seq read bench to use num ops instead of num objs when issuing and tracking outstanding IO
ObjBencher::seq_read_bench() is using "num_objects > data.started" to make sure
we don't issue more reads than what was written during ObjBencher::write_bench().
However, this does not work op_size != object_size as data.started is number of read
ops issued, not number of objects read.
This fix modifies ObjBencher::seq_read_bench() to use "num_ops > data.started" instead.
Where "num_ops" is metadata saved at the end of ObjBencher::write_bench().

ObjBencher::rand_read_bench() is using "rand() % num_objects" for rand_id and
"rand_id / reads_per_object" to generate object name.
This will not work correctly when reads_per_object != 1 (i.e. when op_size != object_size).
For example, if reads_per_object = 100 and num_objects = 2, then all generated
reads will be directed towards the first object, with no read for the second object.
This fix modifies ObjBencher::rand_read_bench() to use "rand() % num_ops" for rand_id instead.
Where "num_ops" is metadata saved at the end of ObjBencher::write_bench().

This patch also modifies ObjBencher::write_bench() to save number of write operations issued
(num_ops above), rather than number of objects written (num_objects). We can always derive
num_objects based on "(num_ops + ops_per_object - 1) / ops_per_object" where "ops_per_object"
is simply object_size / op_size.

Signed-off-by: Albert H Chen <hselin.chen@gmail.com>
2019-09-15 19:40:55 +00:00
J. Eric Ivancich
e487604ad2
Merge pull request #29549 from smanjara/wip-multisite-metadata
rgw: Allow admin APIs that write metadata to be executed first on the mast…

Reviewed-by: Abhishek Lekshmanan <abhishek@suse.com>
Reviewed-by: Casey Bodley <cbodley@redhat.com>
2019-09-15 12:54:24 -04:00
J. Eric Ivancich
1be120975c
Merge pull request #30174 from mkogan1/wip-rgw-40700
rgw: fix memory growth while deleting objects with

Reviewed-by: Matt Benjamin <mbenjamin@redhat.com>
Reviewed-by: J. Eric Ivancich <ivancich@redhat.com>
2019-09-15 12:48:28 -04:00
Kefu Chai
8e6cc60899 script/run_tox.sh: remove unused code
it's a follow-up of 793308f8, where the code to use python2/python3 to
determine env_list was removed already

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
2019-09-15 15:45:22 +08:00
Nathan Cutler
abe5fce994
Merge pull request #30379 from smithfarm/wip-41821
tools/setup-virtualenv.sh: do not default to python2.7

Reviewed-by: Kefu Chai <kchai@redhat.com>
Reviewed-by: Joao Eduardo Luis <joao@suse.de>
2019-09-15 09:32:12 +02:00
Enming Zhang
07cafa320e rgw: add creation time information into bucket stats
Signed-off-by: Enming Zhang <zvampirem77@gmail.com>
2019-09-15 00:04:36 -07:00
Kefu Chai
01ffda8fff
Merge pull request #30362 from uweigand/fix-unaligned-check
cmake: Fix unaligned check on big-endian systems

Reviewed-by: Kefu Chai <kchai@redhat.com>
2019-09-14 09:46:41 +08:00
Kefu Chai
784abe200e
Merge pull request #30374 from tchaikov/wip-cmake-brotli
cmake: s/bortli_libs/brotli_libs/

Reviewed-by: Casey Bodley <cbodley@redhat.com>
2019-09-14 09:43:04 +08:00
Kefu Chai
2375aa87e4
Merge pull request #30366 from liu-chunmei/ceph_seastar_MonClient
crimson/mon: use shared_future for waiting MauthReply

Reviewed-by: Kefu Chai <kchai@redhat.com>
2019-09-14 09:05:48 +08:00
Kefu Chai
af4b9749bc
Merge pull request #30380 from rzarzynski/wip-crimson-cyanread-returns-bl
crimson/os: Object::read() returns bufferlist instead of never used errcode

Reviewed-by: Kefu Chai <kchai@redhat.com>
2019-09-14 09:04:30 +08:00
Kefu Chai
43e85ae79d
Merge pull request #30339 from rzarzynski/wip-crimson-cls-2
crimson: serve basic RBD traffic coming from fio

Reviewed-by: Samuel Just <sjust@redhat.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
2019-09-14 09:01:10 +08:00
chunmei Liu
449550b0ef crimson/mon:use shared_future for waiting MauthReply
when monitor-side close the connection, msgr call MonClient
ms_handle_reset cause reply.get_future be called twice then
assert happen in promise.get_future.
promise<T...>::get_future() noexcept {
    assert(!this->_future && this->_state && !this->_task);
    return future<T...>(this);
}
use shared_promise instead of promise to solve it.

Signed-off-by: chunmei Liu <chunmei.liu@intel.com>
2019-09-13 15:49:45 -07:00
Ilya Dryomov
d63570c5a5
Merge pull request #30363 from idryomov/wip-krbd-huge-osdmap
qa: add script to test how libceph handles huge osdmaps

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
2019-09-13 22:35:57 +02:00
Radoslaw Zarzynski
9e71e56d92 crimson/osd: add dummy support for CEPH_OSD_OP_WATCH.
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
2019-09-13 22:12:32 +02:00
Radoslaw Zarzynski
cf186a50b0 crimson/osd: implement cls_get_client_features().
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
2019-09-13 22:12:32 +02:00
Radoslaw Zarzynski
b5b6dd6d18 crimson/osd: switch get_orig_source_inst() to get_message() in OpsExecuter.
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
2019-09-13 22:12:31 +02:00
Radoslaw Zarzynski
46eb81b1f4 crimson/osd: implement cls_cxx_map_set_val().
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
2019-09-13 22:12:31 +02:00
Radoslaw Zarzynski
fe9ce1f66c crimson/osd: implement cls_get_request_origin().
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
2019-09-13 22:12:31 +02:00
Radoslaw Zarzynski
3daddb8183 crimson/osd: add support for CEPH_OSD_OP_OMAPGETVALS.
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
2019-09-13 22:12:31 +02:00
Patrick Donnelly
9e59ba40c3
Merge PR #28560 into master
* refs/pull/28560/head:
	cephfs-shell: handle du's arguments elsewhere outside do_du()
	cephfs-shell: reuse code
	cephfs-shell: rewrite call to perror in do_du
	pybind/cephfs: define variable for hexcode used in stat()
	test_cephfs_shell: test cephfs-shell command at invocation
	cephfs-shell: refactor do_du()
	cephfs-shell: option -r is not for reverse
	cephfs-shell: extend to_bytes()
	test_cephfs_shell: test du with no args
	test_cephfs_shell: test du with multiple paths in args
	test_cephfs_shell: test behaviour of "du -r"
	test_cephfs_shell: test du's output for softlinks
	qa/cephfs: add convenience method lstat()
	qa/cephfs: add option to make stat() unfollow symlinks
	test_cephfs_shell: test du's output for hardlinks
	test_cephfs_shell: test du's output for directories
	test_cephfs_shell: test du's output for regular files
	test_cephfs_shell: add a method to get command output
	test_cephfs_shell: allow cmd as list too
	test_cephfs_shell: rename and rewrite _cephfs_shell()
	test_cephfs_shell: copy humanize() from cephfs-shell
	cephfs-shell: print disk usage for non-directory files too
	pybind/cephfs: add method that stats symlinks without following
	cephfs-shell: Fix 'du' command error

Reviewed-by: Varsha Rao <varao@redhat.com>
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
2019-09-13 12:39:39 -07:00
Patrick Donnelly
faac21f54f
Merge PR #29907 into master
* refs/pull/29907/head:
	doc: add a doc for vstart_runner.py

Reviewed-by: Varsha Rao <varao@redhat.com>
Reviewed-by: Jeff Layton <jlayton@redhat.com>
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
2019-09-13 12:04:45 -07:00
Casey Bodley
3bb3d817ff qa/keystone: add --debug to openstack commands
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2019-09-13 15:04:43 -04:00
Casey Bodley
392d746141 qa/keystone: save keystone config to archive dir
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2019-09-13 15:04:43 -04:00