From patchwork Fri Jul 24 17:06:19 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Loic Dachary X-Patchwork-Id: 6862151 Return-Path: X-Original-To: patchwork-ceph-devel@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 809069F380 for ; Fri, 24 Jul 2015 17:06:32 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 5743B204EC for ; Fri, 24 Jul 2015 17:06:31 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 67FAB20481 for ; Fri, 24 Jul 2015 17:06:29 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754622AbbGXRG0 (ORCPT ); Fri, 24 Jul 2015 13:06:26 -0400 Received: from mail2.dachary.org ([91.121.57.175]:55676 "EHLO smtp.dmail.dachary.org" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754558AbbGXRGY (ORCPT ); Fri, 24 Jul 2015 13:06:24 -0400 Received: by smtp.dmail.dachary.org (Postfix, from userid 65534) id D283D42B4D; Fri, 24 Jul 2015 19:06:22 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Spam-Level: X-Spam-Status: No, score=-8.1 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_HI, RP_MATCHES_RCVD, T_TVD_MIME_EPI, UNPARSEABLE_RELAY autolearn=ham version=3.3.1 Received: from [10.9.0.6] (unknown [10.0.2.28]) by smtp.dmail.dachary.org (Postfix) with ESMTP id 50C39420B0; Fri, 24 Jul 2015 19:06:20 +0200 (CEST) Message-ID: <55B2708B.1020705@dachary.org> Date: Fri, 24 Jul 2015 19:06:19 +0200 From: Loic Dachary Organization: Artisan Logiciel Libre User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0 MIME-Version: 1.0 To: Ken Dreyer CC: Ceph Development Subject: reconciliation between firefly and v0.80.8.2 Sender: ceph-devel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: ceph-devel@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Hi Ken, The commits with a + are found in v0.80.8.2 and are not in firefly $ git rev-parse ceph/hammer eb69cf758eb25e7ac71e36c754b9b959edb67cee $ git --no-pager cherry -v ceph/firefly tags/v0.80.8.2 + d75a9e374e6581c57461018952ed125c929aeb30 build: remove LIBPERFGLUE from LIBMDS - 2cbe4fb6436dc959eb54cbcc5226b5ebff974d8d init-radosgw.sysv: set ulimit -n before starting daemon - f38b7b407325d14868c2798035282f1e29e92485 init-radosgw*: don't require rgw_socket_path to be defined - 0ccd1d379d02da5371cebf962465757b0ac741ab Revert "rbd: ObjectCacher reads can hang when reading sparse files" - ec711a9f30ac829f6504038063babd51f4b50488 Revert "Enforce cache size on read requests" - c7fdbabb237a78aa7a7c282725ce438f60bc4d75 osdc: Constrain max number of in-flight read requests + 00b6fb027bb6fccda6716ef577464d30d96959cc 0.80.8.1 + b31da9435817d057a558c9222a246569d0a632b3 rgw: remove meta file after deleting bucket The meta file is deleted only if the bucket meta data is not synced - 63c67434d22d16d7f72032c596e7563c20ce3b6a rgw: use correct objv_tracker for bucket instance - ed8fb953580a9d23c9a036c475659528d48eedff rgw: don't overwrite bucket / object owner when setting acls + 096488b188a79fc7132e73cf88d6004f369bceb3 CephContext: Add AssociatedSingletonObject to allow CephContext's singleton + 510df4f61367d4b93574251bd0842cc8247c9bf9 common/ceph_context: don't import std namespace + e4fa039c592b50f6406cecd060ed2f673cb5ee7e WorkQueue: add new ContextWQ work queue + 78d48d89ab18479d71d7220fe9ba9c2aa9752476 WorkQueue: added virtual destructor + b82ff103892612e6685a5c5db56082d9565881f6 librbd: add task pool / work queue for AIO requests + f94a88f50078670eebb8a90d923fcb3477a636ac librbd: avoid blocking AIO API methods + 316f08e4ee65f9eda8761972ba2d337e94abcac7 librbd: add new fail method to AioCompletion + ac87e43be3ca7029a4260f4e52dff39144b7c88f Throttle: added pending_error method to SimpleThrottle + 09705dd9f2dcd9c54dd7a478293ec7fc60f3cf92 librbd: internal AIO methods no longer return result + 0600f5f8cf55803da919d6d69b94ed5ed5a1ac2b tests: update librbd AIO tests to remove result code + 890e5bca5c71740025b2e8ff8bad863fc7e9b33e librbd: AioRequest::send no longer returns a result + 6ce86f1f1bd6cc3b7995fa5ba34507c8aa21f608 librbd: new rbd_non_blocking_aio config option + f839ef6ed214dc0847da59742b0c7fa41cceaeea tests: verify librbd blocking aio code path - d0d8555341e297ecbbf62ed3cec179b0e2fbe14f ceph.spec: add mkcephfs to ceph.rpm - 3088167a85ba641b000deb9214b27c0681a745a8 ceph.spec.in: package mkcephfs on EL6 + 08ac26392cd369d0047dfa7a70c8fe693c63ead5 0.80.8.2 * build: remove LIBPERFGLUE from LIBMDS is unique to v0.80.8.2 and it is unclear why it was found to be usefu in isolation. An issue for firefly backport of http://tracker.ceph.com/issues/10691 was open at http://tracker.ceph.com/issues/12461#note-1 * rgw: remove meta file after deleting bucket The meta file is deleted only if the bucket meta data is not synced is being tested and is patch-id identical as shown by the leading minus (-) which would have been an + if they were different pr=4641 ; git fetch ceph +refs/pull/$pr/*:refs/pull/$pr/* $ git --no-pager cherry -v refs/pull/4641/merge tags/v0.80.8.2 | grep 'rgw: remove meta file after deleting' - b31da9435817d057a558c9222a246569d0a632b3 rgw: remove meta file after deleting bucket The meta file is deleted only if the bucket meta data is not synced * The bulk of the differences from 096488b188a79fc7132e73cf88d6004f369bceb3 to f839ef6ed214dc0847da59742b0c7fa41cceaeea are pending integration in https://github.com/ceph/ceph/pull/4854. If this pull request was merged, there would still be two commits that are not patch-id identical: pr=4854 ; git fetch ceph +refs/pull/$pr/*:refs/pull/$pr/* git --no-pager cherry -v refs/pull/4854/merge tags/v0.80.8.2 + d75a9e374e6581c57461018952ed125c929aeb30 build: remove LIBPERFGLUE from LIBMDS - 2cbe4fb6436dc959eb54cbcc5226b5ebff974d8d init-radosgw.sysv: set ulimit -n before starting daemon - f38b7b407325d14868c2798035282f1e29e92485 init-radosgw*: don't require rgw_socket_path to be defined - 0ccd1d379d02da5371cebf962465757b0ac741ab Revert "rbd: ObjectCacher reads can hang when reading sparse files" - ec711a9f30ac829f6504038063babd51f4b50488 Revert "Enforce cache size on read requests" - c7fdbabb237a78aa7a7c282725ce438f60bc4d75 osdc: Constrain max number of in-flight read requests + 00b6fb027bb6fccda6716ef577464d30d96959cc 0.80.8.1 + b31da9435817d057a558c9222a246569d0a632b3 rgw: remove meta file after deleting bucket The meta file is deleted only if the bucket meta data is not synced - 63c67434d22d16d7f72032c596e7563c20ce3b6a rgw: use correct objv_tracker for bucket instance - ed8fb953580a9d23c9a036c475659528d48eedff rgw: don't overwrite bucket / object owner when setting acls - 096488b188a79fc7132e73cf88d6004f369bceb3 CephContext: Add AssociatedSingletonObject to allow CephContext's singleton - 510df4f61367d4b93574251bd0842cc8247c9bf9 common/ceph_context: don't import std namespace - e4fa039c592b50f6406cecd060ed2f673cb5ee7e WorkQueue: add new ContextWQ work queue - 78d48d89ab18479d71d7220fe9ba9c2aa9752476 WorkQueue: added virtual destructor + b82ff103892612e6685a5c5db56082d9565881f6 librbd: add task pool / work queue for AIO requests - f94a88f50078670eebb8a90d923fcb3477a636ac librbd: avoid blocking AIO API methods + 316f08e4ee65f9eda8761972ba2d337e94abcac7 librbd: add new fail method to AioCompletion - ac87e43be3ca7029a4260f4e52dff39144b7c88f Throttle: added pending_error method to SimpleThrottle - 09705dd9f2dcd9c54dd7a478293ec7fc60f3cf92 librbd: internal AIO methods no longer return result - 0600f5f8cf55803da919d6d69b94ed5ed5a1ac2b tests: update librbd AIO tests to remove result code - 890e5bca5c71740025b2e8ff8bad863fc7e9b33e librbd: AioRequest::send no longer returns a result - 6ce86f1f1bd6cc3b7995fa5ba34507c8aa21f608 librbd: new rbd_non_blocking_aio config option - f839ef6ed214dc0847da59742b0c7fa41cceaeea tests: verify librbd blocking aio code path - d0d8555341e297ecbbf62ed3cec179b0e2fbe14f ceph.spec: add mkcephfs to ceph.rpm - 3088167a85ba641b000deb9214b27c0681a745a8 ceph.spec.in: package mkcephfs on EL6 + 08ac26392cd369d0047dfa7a70c8fe693c63ead5 0.80.8.2 The first is cosmetic: librbd: add task pool / work queue for AIO requests $ diff -u --ignore-matching-lines '^[^+-]' <(git show b82ff103892612e6685a5c5db56082d9565881f6) <(git show 220a23e8d99882838626d5647f9c055eefeb28c6) Cheers --- /dev/fd/63 2015-07-24 18:40:24.350584528 +0200 +++ /dev/fd/62 2015-07-24 18:40:24.350584528 +0200 @@ -62,13 +62,12 @@ ImageCtx::ImageCtx(const string &image_name, const string &image_id, const char *snap, IoCtx& p, bool ro) : cct((CephContext*)p.cct()), -@@ -51,7 +69,8 @@ namespace librbd { - format_string(NULL), +@@ -53,7 +71,7 @@ namespace librbd { id(image_id), parent(NULL), stripe_unit(0), stripe_count(0), -- object_cacher(NULL), writeback_handler(NULL), object_set(NULL) -+ object_cacher(NULL), writeback_handler(NULL), object_set(NULL), -+ aio_work_queue(NULL) + object_cacher(NULL), writeback_handler(NULL), object_set(NULL), +- pending_aio(0) ++ pending_aio(0), aio_work_queue(NULL) { md_ctx.dup(p); data_ctx.dup(p); The second is not obvious to me librbd: add new fail method to AioCompletion $ diff -u --ignore-matching-lines '^[^+-]' <(git show 316f08e4ee65f9eda8761972ba2d337e94abcac7) <(git show 8ec341ee8f256e8ab91a931f6005e1ebd4b1db60) --- /dev/fd/63 2015-07-24 18:45:12.837559514 +0200 +++ /dev/fd/62 2015-07-24 18:45:12.841559500 +0200 @@ -58,6 +57,13 @@ + break; + } + ++ if (ictx != NULL) { ++ Mutex::Locker l(ictx->aio_lock); ++ assert(ictx->pending_aio != 0); ++ --ictx->pending_aio; ++ ictx->pending_aio_cond.Signal(); ++ } ++ + if (complete_cb) { + complete_cb(rbd_comp, complete_arg); + } @@ -113,6 +119,14 @@ - lderr(ictx->cct) << "completed invalid aio_type: " << aio_type << dendl; - break; - } +- +- { +- Mutex::Locker l(ictx->aio_lock); +- assert(ictx->pending_aio != 0); +- --ictx->pending_aio; +- ictx->pending_aio_cond.Signal(); +- } +- - if (complete_cb) { - complete_cb(rbd_comp, complete_arg); - }