From patchwork Sat Feb 10 08:15:45 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Meyers X-Patchwork-Id: 10210381 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id A126160594 for ; Sat, 10 Feb 2018 08:23:57 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 92C69295E2 for ; Sat, 10 Feb 2018 08:23:57 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 873F829911; Sat, 10 Feb 2018 08:23:57 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=2.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_HI, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 258EF295E2 for ; Sat, 10 Feb 2018 08:23:55 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1750884AbeBJIT4 (ORCPT ); Sat, 10 Feb 2018 03:19:56 -0500 Received: from sonic310-48.consmr.mail.ne1.yahoo.com ([66.163.186.229]:38592 "EHLO sonic310-48.consmr.mail.ne1.yahoo.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750775AbeBJITz (ORCPT ); Sat, 10 Feb 2018 03:19:55 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1518250795; bh=XyJjTK38vYeiqH/A2N1pIpYSS5xlkyDK4bK43G4Gb/o=; h=Date:From:Reply-To:To:Subject:References:From:Subject; b=RfZtJegxIzxAyuBrMW8JrKEZoyPzM7fZ2CO1XVdKaFrVY0I1b26EhKRpQwZN3NmzgTHNU4glDHNnJh50HzPehzRKDr+PXkdvpbsdYzSUckfMEso8p2yLwrXZAoMC5SznDrYxKC4NvsKjU1DBuRzBhaHPP3RHtB0GdDQglik/d0aT0qkYKmgjvzzyXQneouonY3PiIphnayuhVdrAe7fcWdrtzOUnNtEBtSCGVJwmCmunzMwU5J3QeFosudM0/94HQCqTTAARQ63h0WM2+C721e3OEx3YlSQE2ULOthCsJ4dwvKvFzGH3oIyVxGf9aGH4+6R57OZZz6f9ac5d9TSbog== X-YMail-OSG: rLOcXLAVM1kPw9aeiD4ZpiStzN7Qq2_6sB6TOBggi4Z4eD9I6dyrB9peEumvxeU sH9B.Oded9LGhL5Ec6_qYm9zSvQIomA.4.MeVofB425kjoAzzVs3uvBJYGmMChfcLoU4.sHaWhKI KzIveOyzgm.dMXrFNdc9StW0pF5TiE7s9Ty2oAcpsZZTyUMunTGl3ntfch6YNgeWcpPAAtc_8MTk GA.gWmFaqFKnDR4tk_QKoekH_16vAijLkzd2hFN4JT_Rm9lBFB2kHglfevd2_7cdEnSrhT3wR7TN .bmagH.w3rClRC3uCkc44ZgsH4Tofz_AtrbjfuAnQH077NwNyB15mmJ_LcWB8MJN0jZCUiggfMhJ bSs.iMc6glv4opap2EWwOWegYezgzQy_nX_h7lmnFyIKIpW.sbvL_SnkI0.MVJKU1UT.eIhKk5Xl FT7_KFHntTZBnOgVoEnvxd5Pja.XcpAd.23GD9eYMI6Ap Received: from sonic.gate.mail.ne1.yahoo.com by sonic310.consmr.mail.ne1.yahoo.com with HTTP; Sat, 10 Feb 2018 08:19:55 +0000 Date: Sat, 10 Feb 2018 08:15:45 +0000 (UTC) From: Mark Meyers Reply-To: Mark Meyers To: Ceph-users , "ceph-devel@lists.ceph.com" , Ceph-devel Message-ID: <2073248911.84014.1518250545543@mail.yahoo.com> Subject: Can I omit acquire_locks in getattr handler of mds? MIME-Version: 1.0 References: <2073248911.84014.1518250545543.ref@mail.yahoo.com> X-Mailer: WebService/1.1.11405 YahooMailNeo Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0 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 I found ls command costs extremely long time (form 30s to 3mins). So I tried to remove acquire_locks in mds's getattr handler: handle_clinet_getattr. Everything looks just good: First, the size of files get updated in time. Second, the read and write to file from clinets works ok. So, please, can I just omiit acquire_locks in mds getattr handler?(if client request doesn't requier or have Fwb caps) Code: --- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff -- git a/src/mds/Server.cc n/src/mds/Server.cc --- a/src/mds/Server.cc +++ b/src/mds/Server.cc @@ -3021,7 +3021,10 @@ void Server::handler_client_getattr(MDRequestRef& mdr, bool is_lookup) if ((mask & CEPH_CAP_FILE_SHARED) && (issued & CEPH_CAP_FILE_EXCL) == 0) rdlocks.insert(&ref->filelock); if ((mask & CEPH_CAP_XATTR_SHARED) && (issued & CEPH_CAP_XATTR_EXCL) == 0) rdlocks.insert(&ref->xattrlock); - if (!mds->locker->acquire_locks(mdr, rdlocks, wrlocks, xlocks)) + dout(20) << __func__ << " mask " << ccap_string(mask) << " issued " << ccap_string(issued) << " " << !is_lookup << " ." << dendl; + if(!(mask & CEPH_CAP_FILE_WR) && !(mask & CEPH_CAP_FILE_BUFFER) && !(issued & CEPH_CAP_FILE_WR) && !(iissued & CEPH_CAP_FILE_BUFFER) && !is_lookup) + dout(10) << "no Fw/b in mask " << ccap_string(mask) << " or issued " << ccap_string(issued) << " " << !is_lookup << " ." << dendl;+ else if (!mds->locker->acquire_locks(mdr, rdlocks, wrlocks, xlocks)) return; if (!check_access(mdr, ref, MAY_READ))