From patchwork Thu Feb 27 21:11:41 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Simmons X-Patchwork-Id: 11410063 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 23E18138D for ; Thu, 27 Feb 2020 21:29:18 +0000 (UTC) Received: from pdx1-mailman02.dreamhost.com (pdx1-mailman02.dreamhost.com [64.90.62.194]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 0C939246A1 for ; Thu, 27 Feb 2020 21:29:18 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0C939246A1 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=infradead.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lustre-devel-bounces@lists.lustre.org Received: from pdx1-mailman02.dreamhost.com (localhost [IPv6:::1]) by pdx1-mailman02.dreamhost.com (Postfix) with ESMTP id A4C9D348DD9; Thu, 27 Feb 2020 13:25:18 -0800 (PST) X-Original-To: lustre-devel@lists.lustre.org Delivered-To: lustre-devel-lustre.org@pdx1-mailman02.dreamhost.com Received: from smtp3.ccs.ornl.gov (smtp3.ccs.ornl.gov [160.91.203.39]) by pdx1-mailman02.dreamhost.com (Postfix) with ESMTP id 444AD21FAB4 for ; Thu, 27 Feb 2020 13:19:29 -0800 (PST) Received: from star.ccs.ornl.gov (star.ccs.ornl.gov [160.91.202.134]) by smtp3.ccs.ornl.gov (Postfix) with ESMTP id 1044C2C5B; Thu, 27 Feb 2020 16:18:16 -0500 (EST) Received: by star.ccs.ornl.gov (Postfix, from userid 2004) id 0F1B246C; Thu, 27 Feb 2020 16:18:16 -0500 (EST) From: James Simmons To: Andreas Dilger , Oleg Drokin , NeilBrown Date: Thu, 27 Feb 2020 16:11:41 -0500 Message-Id: <1582838290-17243-234-git-send-email-jsimmons@infradead.org> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1582838290-17243-1-git-send-email-jsimmons@infradead.org> References: <1582838290-17243-1-git-send-email-jsimmons@infradead.org> Subject: [lustre-devel] [PATCH 233/622] lustre: osc: propagate grant shrink interval immediately X-BeenThere: lustre-devel@lists.lustre.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "For discussing Lustre software development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Lustre Development List MIME-Version: 1.0 Errors-To: lustre-devel-bounces@lists.lustre.org Sender: "lustre-devel" From: Alex Zhuravlev currently the new interval (updated with lctl) will be used only when the next shrink happens. with default interval it will take at least 20 minutes. instead we should refresh it immediately. WC-bug-id: https://jira.whamcloud.com/browse/LU-11408 Lustre-commit: 0b09a19bdf2d ("LU-11408 osc: propagate grant shrink interval immediately") Signed-off-by: Alex Zhuravlev Reviewed-on: https://review.whamcloud.com/33204 Reviewed-by: Andreas Dilger Reviewed-by: Patrick Farrell Reviewed-by: Oleg Drokin Signed-off-by: James Simmons --- fs/lustre/osc/lproc_osc.c | 2 ++ fs/lustre/osc/osc_internal.h | 1 + fs/lustre/osc/osc_request.c | 6 ++++++ 3 files changed, 9 insertions(+) diff --git a/fs/lustre/osc/lproc_osc.c b/fs/lustre/osc/lproc_osc.c index ea67d20..5faf518 100644 --- a/fs/lustre/osc/lproc_osc.c +++ b/fs/lustre/osc/lproc_osc.c @@ -349,6 +349,8 @@ static ssize_t grant_shrink_interval_store(struct kobject *kobj, return -ERANGE; obd->u.cli.cl_grant_shrink_interval = val; + osc_update_next_shrink(&obd->u.cli); + osc_schedule_grant_work(); return count; } diff --git a/fs/lustre/osc/osc_internal.h b/fs/lustre/osc/osc_internal.h index 2cb737b..0f0f4d4 100644 --- a/fs/lustre/osc/osc_internal.h +++ b/fs/lustre/osc/osc_internal.h @@ -43,6 +43,7 @@ extern struct ptlrpc_request_pool *osc_rq_pool; int osc_shrink_grant_to_target(struct client_obd *cli, u64 target_bytes); +void osc_schedule_grant_work(void); void osc_update_next_shrink(struct client_obd *cli); int lru_queue_work(const struct lu_env *env, void *data); int osc_extent_finish(const struct lu_env *env, struct osc_extent *ext, diff --git a/fs/lustre/osc/osc_request.c b/fs/lustre/osc/osc_request.c index 7190da9..7b120da 100644 --- a/fs/lustre/osc/osc_request.c +++ b/fs/lustre/osc/osc_request.c @@ -905,6 +905,12 @@ static void osc_grant_work_handler(struct work_struct *data) schedule_work(&work.work); } +void osc_schedule_grant_work(void) +{ + cancel_delayed_work_sync(&work); + schedule_work(&work.work); +} + /** * Start grant thread for returing grant to server for idle clients. */