Commit Graph

82018 Commits

Author SHA1 Message Date
Radoslaw Zarzynski
49a4c51e02 os/bluestore: _dump_onode() don't prolongate Onode anymore.
Before the patch `BlueStore::_dump_onode()` takes `OnodeRef`
by value effectively extending the object's life time.

This is unnecessary and can be costly as `BlueStore::OnodeRef`
is ref-counted with `boost::intrusive_ptr`. Moreover, callers
are supposed to already hold a reference, so the optimization
for `count == 0` case stays without effect of inhibiting call
to `BlueStore::Onode::put()` and atomic integer increment.

    ```
    0000000000907d70 <BlueStore::_do_read(BlueStore::Collection*, boost::intrusive_ptr<BlueStore::Onode>, unsigned long, unsigned long, ceph::buffer::list&, unsigned int)>:
      907d70:       41 57                   push   %r15
      907d72:       41 56                   push   %r14

    ...

      907f1f:       48 8b 44 24 78          mov    0x78(%rsp),%rax
      907f24:       48 8b 00                mov    (%rax),%rax
      907f27:       48 85 c0                test   %rax,%rax
      907f2a:       48 89 84 24 a0 01 00    mov    %rax,0x1a0(%rsp)
      907f31:       00
      907f32:       74 04                   je     907f38 <BlueStore::_do_read(BlueStore::Collection*, boost::intrusive_ptr<BlueStore::Onode>, unsigned long, unsigned long, ceph::buffer::list&, unsigned int)+0x1c8>
      907f34:       f0 83 00 01             lock addl $0x1,(%rax)
      907f38:       48 8d 84 24 a0 01 00    lea    0x1a0(%rsp),%rax
      907f3f:       00
      907f40:       ba 1e 00 00 00          mov    $0x1e,%edx
      907f45:       4c 89 ff                mov    %r15,%rdi
      907f48:       48 89 c6                mov    %rax,%rsi
      907f4b:       48 89 44 24 20          mov    %rax,0x20(%rsp)
      907f50:       e8 9b bc fb ff          callq  8c3bf0 <BlueStore::_dump_onode(boost::intrusive_ptr<BlueStore::Onode>, int)>
      907f55:       48 8b bc 24 a0 01 00    mov    0x1a0(%rsp),%rdi
      907f5c:       00
      907f5d:       48 85 ff                test   %rdi,%rdi
      907f60:       74 05                   je     907f67 <BlueStore::_do_read(BlueStore::Collection*, boost::intrusive_ptr<BlueStore::Onode>, unsigned long, unsigned long, ceph::buffer::list&, unsigned int)+0x1f7>
      907f62:       e8 99 14 02 00          callq  929400 <BlueStore::Onode::put()>
      907f67:       48 8d 84 24 d0 00 00    lea    0xd0(%rsp),%rax
    ```

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
2018-01-08 13:27:25 +01:00
Kefu Chai
c9c821cb99
Merge pull request #19428 from tchaikov/wip-erasure-cleanup
erasure-code: use std::count() instead

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
2018-01-08 19:51:10 +08:00
Kefu Chai
f69516e1dc
Merge pull request #19777 from tchaikov/wip-rpm-fix-upgrade
rpm: adjust ceph-{osdomap,kvstore,monstore}-tool feature move

Reviewed-by: Boris Ranto <branto@redhat.com>
Reviewed-By: Nathan Cutler <ncutler@suse.com>
2018-01-08 19:07:48 +08:00
Bingyin Zhang
95bb4e93e5 rgw: drop useless type conversion
* variable 'max_buckets' is already 'uint64_t', so the type conversion is useless.

Signed-off-by: Bingyin Zhang <zhangbingyin@cloudin.cn>
2018-01-08 09:02:29 +08:00
Eric Ivancich
158f3173de
Merge pull request #18827 from TaewoongKim/anticipation_timeout
osd: Make dmclock's anticipation timeout be configurable

Reviewed-by: Sage Weil <sage@redhat.com>
Reviewed-by: myoungwon oh <omwmw@sk.com>
2018-01-07 10:49:18 -05:00
Jason Dillaman
50ef9aff9d
Merge pull request #19704 from trociny/wip-nbd-format
rbd-nbd: output format support for list-mapped command

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
2018-01-07 09:04:35 -05:00
Jason Dillaman
ff889ea592
Merge pull request #19722 from Songweibin/wip-rbd-import
rbd: replace positional_path parameter with arg_index in get_path()

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
2018-01-07 08:56:41 -05:00
myoungwon oh
3a568704e5 osd: fix ObjectContextRef leak
To avoid ObjectContextRef leak, drop ObjectContextRef
before send a flush request to low tier

Signed-off-by: Myoungwon Oh <omwmw@sk.com>
2018-01-07 22:42:50 +09:00
myoungwon oh
085f1caadf osd: fix updating wrong object size
Signed-off-by: Myoungwon Oh <omwmw@sk.com>
2018-01-07 22:42:38 +09:00
myoungwon oh
6273c2ffef osd: use stop_block() if the object is blocked
This commit prevents double free in finish_flush()
(stop_block() -> cancel_flush())

Signed-off-by: Myoungwon Oh <omwmw@sk.com>
2018-01-07 22:42:19 +09:00
myoungwon oh
fca74efe04 src/test: remove version check and add data alignment for chunk_read test
Signed-off-by: Myoungwon Oh <omwmw@sk.com>
2018-01-07 22:41:55 +09:00
myoungwon oh
c97fc50a20 src/test: add chunked object unit test
Signed-off-by: Myoungwon Oh <omwmw@sk.com>
2018-01-07 22:41:35 +09:00
myoungwon oh
e5cc463460 osd: add ordered flag if the object is flushing
Signed-off-by: Myoungwon Oh <omwmw@sk.com>
2018-01-07 22:41:12 +09:00
myoungwon oh
2e3af00ab1 osd: add flush() for the chunked object.
If all chunks are dirty, the cheunked object will be flushed

Signed-off-by: Myoungwon Oh <omwmw@sk.com>
2018-01-07 22:40:58 +09:00
myoungwon oh
437bb83c8b osd: set dirty flag if chunks are overwritten
Signed-off-by: Myoungwon Oh <omwmw@sk.com>
2018-01-07 22:40:47 +09:00
Mykola Golub
44cc02483c rbd-ggate: make list command produce valid xml format output
Signed-off-by: Mykola Golub <mgolub@suse.com>
2018-01-07 12:44:07 +00:00
Yao Zongyou
b637f7b8f1 osd: silence maybe-uninitialized false positives
Signed-off-by: Yao Zongyou <yaozongyou@vip.qq.com>
2018-01-07 16:25:09 +08:00
Adam C. Emerson
322d2a5718
Merge pull request #17010 from jgibson/bugfix-rgw-s3-policy-ip-address-condition
rgw: S3 Bucket Policy Conditions IpAddress and NotIpAddress do not work

Reviewed-By: Adam C. Emerson <aemerson@redhat.com>
Reviewed-By: Matt Benjamin <mbenjamin@redhat.com>
2018-01-07 02:07:55 -05:00
Bingyin Zhang
e0a05d23dc rgw: drop useless lines
* There is no 'break' statement in the for loop, so 'eiter' must be equal to 'ent_map.end()' in this place.

Signed-off-by: Bingyin Zhang <zhangbingyin@cloudin.cn>
2018-01-07 09:33:48 +08:00
Yuri Weinstein
25550823df
Merge pull request #19354 from shinobu-x/osd_atomic
osd: Use specializations, typedefs instead

Reviewed-by: xie xingguo <xie.xingguo@zte.com.cn>
2018-01-06 09:29:52 -08:00
Yuri Weinstein
392314d980
Merge pull request #19549 from bi-shun/brotli-compressor
compressor: Add Brotli Compressor

Reviewed-by: Kefu Chai <kchai@redhat.com>
2018-01-06 09:28:58 -08:00
Yuri Weinstein
938919028a
Merge pull request #19564 from kungf/list_bucket_osd
mon/OSDMonitor: list osd tree in named bucket

Reviewed-by: Sage Weil <sage@redhat.com>
2018-01-06 09:28:22 -08:00
Sage Weil
0973c371f6
Merge pull request #19816 from tchaikov/wip-22596
qa/standalone: remove osd-map-max-advance related tests

Reviewed-by: Sage Weil <sage@redhat.com>
2018-01-06 10:25:12 -06:00
Kefu Chai
b07aa210aa rpm: adjust ceph-{osdomap,kvstore,monstore}-tool feature move
this is the rpm's counterpart of debian/control changes related to the
ceph-{osdomap,kvstore,monstore}-tool feature move. see #19328 and #19356.
the commit introducing this move is 6dba25e. and

$ git describe 6dba25e
v12.2.2-8-g6dba25e39d

so the first release that have this change is 12.2.2-8. in other words,
ceph-{base,osd,mon} >= 12.2.2.8 cannot co-exist with ceph-test < 12.2.2-8
in the same system. so we let ceph-test Requires ceph-common with the
same version. and since ceph-{osd,mon} Requires ceph-base with the same
version, and ceph-base Requires ceph-common with the same version, so by
tiering ceph-test with ceph-common with the same version, we enforce
this restriction.

Fixes: http://tracker.ceph.com/issues/22558
Signed-off-by: Kefu Chai <kchai@redhat.com>
2018-01-06 20:00:54 +08:00
Kefu Chai
e7097593a7 qa/standalone: remove osd-map-max-advance related tests
this setting was removed in 8967b73

Fixes: http://tracker.ceph.com/issues/22596
Signed-off-by: Kefu Chai <kchai@redhat.com>
2018-01-06 19:40:15 +08:00
Bingyin Zhang
3e0e1a029a rgw: optimize function parse_raw_oid
* drop redundant checks

Signed-off-by: Bingyin Zhang <zhangbingyin@cloudin.cn>
2018-01-06 14:38:05 +08:00
Kefu Chai
077351fab7
Merge pull request #19808 from cbodley/wip-boost-1.66
cmake: update minimum boost version to 1.66

Reviewed-by: Kefu Chai <kchai@redhat.com>
2018-01-06 11:35:44 +08:00
Xuehan Xu
7e0a27a5c8 common: compute SimpleLRU's size with contents.size() instead of lru.size()
As libstdc++ earlier than version 5 implement the list::size() as a O(n) operation,
this should be needed to avoid regression of various ceph component's performance.

Signed-off-by: Xuehan Xu <xuxuehan@360.cn>
2018-01-06 10:42:32 +08:00
dongdong tao
fa796a0593 mds: clean up log's function name for CDir.cc and Beacon.cc
Signed-off-by: dongdong tao <tdd21151186@gmail.com>
2018-01-06 10:27:03 +08:00
dongdong tao
dc2ed13123 mds: clean up log's function name for CDentry.cc
Signed-off-by: dongdong tao <tdd21151186@gmail.com>
2018-01-06 10:26:50 +08:00
dongdong tao
d5f11b19ca mds: clean up log's function name for CInode.cc
Signed-off-by: dongdong tao <tdd21151186@gmail.com>
2018-01-06 10:26:36 +08:00
Shinobu Kinjo
e691a27de7 osd: Remove redundant local variable declaration
Signed-off-by: Shinobu Kinjo <shinobu@redhat.com>
2018-01-06 11:06:33 +09:00
Matt Benjamin
d1ec523427
Merge pull request #19358 from taoCH/wip-librgw-multitenancy
librgw: export multitenancy support
2018-01-05 15:49:14 -05:00
Casey Bodley
b589b73c70 cmake: add WITH_BOOST_CONTEXT option
adds a more specific option for this boost::context dependency, which was
previously only used by the radosgw beast frontend. see
http://tracker.ceph.com/issues/20048 for more background

Signed-off-by: Casey Bodley <cbodley@redhat.com>
2018-01-05 14:55:23 -05:00
Casey Bodley
d85f42dd69 cmake: remove Beast submodule and include path
the beast library is included in boost 1.66

Signed-off-by: Casey Bodley <cbodley@redhat.com>
2018-01-05 14:55:23 -05:00
Casey Bodley
a66a644929 rgw: update beast frontend for boost 1.66
Fixes: http://tracker.ceph.com/issues/22600

Signed-off-by: Casey Bodley <cbodley@redhat.com>
2018-01-05 14:55:16 -05:00
Casey Bodley
01f9b599e6
Merge pull request #19806 from cbodley/wip-common-escape
common: add streaming interfaces for json/xml escaping

Reviewed-by: Adam C. Emerson <aemerson@redhat.com>
2018-01-05 14:29:23 -05:00
Casey Bodley
0e47a339df cmake: update minimum boost version to 1.66
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2018-01-05 13:52:47 -05:00
Casey Bodley
688cc25755 common: add streaming interfaces for json/xml escaping
adds stream output operators that escape json/xml strings without having
to allocate a separate output buffer

Signed-off-by: Casey Bodley <cbodley@redhat.com>
2018-01-05 13:26:25 -05:00
Casey Bodley
dff9562098 test: EscapeJson.Utf8 uses json instead of xml
the xml version does not escape the \n, while json does

Signed-off-by: Casey Bodley <cbodley@redhat.com>
2018-01-05 12:38:13 -05:00
Casey Bodley
b2960e4721 test: use hex string literals
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2018-01-05 12:38:08 -05:00
Yuri Weinstein
135c0a0104
Merge pull request #19279 from taoCH/wip-fix-librgw-shutdown-err
librgw: fix shutdown err with resources uncleaned

Reviewed-by: Matt Benjamin <mbenjami@redhat.com>
2018-01-05 08:42:12 -08:00
Yuri Weinstein
3b033d8e81
Merge pull request #19394 from zhangsw/cleanup-rgw-datasync-lease_cr
rgw: lease_cr->go_down is called twice, remove the needless one.

Reviewed-by: Casey Bodley <cbodley@redhat.com>
2018-01-05 08:41:42 -08:00
Kefu Chai
92eae109a3
Merge pull request #19725 from shinobu-x/osd_max_object_size
osd,os/bluestore: Display current size of osd_max_object_size

Reviewed-by: Sage Weil <sage@redhat.com>
2018-01-06 00:02:28 +08:00
Kefu Chai
6a817b90c6
Merge pull request #19718 from ifed01/wip-ifed-freelist-cleanup
os/bluestore: refactor FreeListManager to get clearer view on the number

Reviewed-by: Sage Weil <sage@redhat.com>
2018-01-05 23:59:58 +08:00
Casey Bodley
b99dae03c3
Merge pull request #18324 from Jeegn-Chen/wip-bucket-quota-api
rgw: Admin API Support for bucket quota change

Reviewed-by: Casey Bodley <cbodley@redhat.com>
2018-01-05 10:52:30 -05:00
Kefu Chai
58fe27ebc2 common/perf_counters: remove unused parameter
Signed-off-by: Kefu Chai <kchai@redhat.com>
2018-01-05 23:52:10 +08:00
Kefu Chai
44bbb372a4
Merge pull request #19719 from shinobu-x/bluestore_extentmap_dup
bluestore: BlueStore::ExtentMap::dup impl

Reviewed-by: Sage Weil <sage@redhat.com>
2018-01-05 23:50:29 +08:00
Kefu Chai
2775cc9aa3
Merge pull request #19698 from Liuchang0812/cleanup-ceph-tool
ceph: add the right bracket to watch-channel argument in the help message

Reviewed-by: Sage Weil <sage@redhat.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
2018-01-05 23:43:30 +08:00
Kefu Chai
16a1a02e70
Merge pull request #19660 from cfanz/tmp
include/encoding: fix compat version error message

Reviewed-by: Kefu Chai <kchai@redhat.com>
2018-01-05 23:35:54 +08:00