From patchwork Mon Mar 18 19:10:31 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ilya Dryomov X-Patchwork-Id: 10858401 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 40A1914DE for ; Mon, 18 Mar 2019 19:09:40 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1F4DB28FB7 for ; Mon, 18 Mar 2019 19:09:40 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 11FA628FF6; Mon, 18 Mar 2019 19:09:40 +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=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI 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 9688428FEF for ; Mon, 18 Mar 2019 19:09:39 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726860AbfCRTJi (ORCPT ); Mon, 18 Mar 2019 15:09:38 -0400 Received: from mail-wm1-f66.google.com ([209.85.128.66]:36119 "EHLO mail-wm1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726777AbfCRTJi (ORCPT ); Mon, 18 Mar 2019 15:09:38 -0400 Received: by mail-wm1-f66.google.com with SMTP id h18so5607875wml.1 for ; Mon, 18 Mar 2019 12:09:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=n9dMwOZB3m1PiYDsQmmc2/86Pa9eXTDjVyysOjo/pUk=; b=UDiA3tVNFoQQyxzS1BdE9kiwFsD6gyDOMJKwESyAImq+9pQmmj3lq7rZe1ZQxZNgaH leimNjdHBFpaaPrbBf6EL7/rrXMW+KyaDn1TzVRCkku7Tb5dhneOb0UBK6QMWcnKOkWF P9OrOrysBx9gvVXP/EM92YVKXyat2M/uhqJnzGQFIdDtPAefzjwje3UBGiX1wLDJHnZ1 hBtCb28aoxrGCWXEECcqUYFFbeHpoJyy9OwQTzYxGN+uXV+jomElVuSBZyaIpAGk0FAQ /WBzkE+0R3B/2UuFMAld7NRXFIPxlW7MIMqXELYBA2ldjU4pw/iO7KZbYBirpOjgtc4j NyvQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=n9dMwOZB3m1PiYDsQmmc2/86Pa9eXTDjVyysOjo/pUk=; b=pbByYll8dIQZrzAxhqdMHNbGK7eWHIDSX3fwIc1BRiuegBUElBBoobmUrk9lKzOfeV y7thCtnzro3qj9ELeG4+INX9VhM4ZWVEyL40oUFyaAvK2R/iy5d9jLqLwAHsGoTHjOQO 1kCBd9tdZy3087VKZ+jSlI0Onapo4etlFVHzRHYuzNqQApapkSjFJ1RI5QbECFPvA10X mTHJv4AT1WvT6H4dmEaWlP6zPewu5YdKw6UZs5flP5FODBSeWRkYkn5+uGtpmVrr4uc1 6i9B2LW6/8BdduyHroz1wkkJpI2MhYlDLbO2+RUkT8fMakqVaT9toWYaZwxrrt3YbYP6 bcbQ== X-Gm-Message-State: APjAAAUBB7n4gzmkuR1W/vD7YUNr0n8VnR6mwsZNXDi9vIBIjs2BSxh3 wtJ/cfku1h/DfMTGJA9vQP77tIHq X-Google-Smtp-Source: APXvYqy+pe8AX1INwT2ScjvohLdznbSaxJbyhNsbIFiZga4dvRqCtYCqiXinJG0gjYrBOrznaIKppQ== X-Received: by 2002:a1c:4d17:: with SMTP id o23mr316602wmh.53.1552936175912; Mon, 18 Mar 2019 12:09:35 -0700 (PDT) Received: from kwango.redhat.com (ovpn-brq.redhat.com. [213.175.37.11]) by smtp.gmail.com with ESMTPSA id b10sm7197378wru.92.2019.03.18.12.09.34 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 18 Mar 2019 12:09:35 -0700 (PDT) From: Ilya Dryomov To: ceph-devel@vger.kernel.org Subject: [PATCH] rbd: set io_min, io_opt and discard_granularity to alloc_size Date: Mon, 18 Mar 2019 20:10:31 +0100 Message-Id: <20190318191031.11066-1-idryomov@gmail.com> X-Mailer: git-send-email 2.19.2 MIME-Version: 1.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 Now that we have alloc_size that controls our discard behavior, it doesn't make sense to have these set to object (set) size. alloc_size defaults to 64k, but because discard_granularity is likely 4M, only ranges that are equal to or bigger than 4M can be considered during fstrim. A smaller io_min is also more likely to be met, resulting in fewer deferred writes on bluestore OSDs. Signed-off-by: Ilya Dryomov Reviewed-by: Jason Dillaman --- drivers/block/rbd.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c index a32d5b54d59e..e037f1ab2fde 100644 --- a/drivers/block/rbd.c +++ b/drivers/block/rbd.c @@ -834,7 +834,7 @@ static int parse_rbd_opts_token(char *c, void *private) pctx->opts->queue_depth = intval; break; case Opt_alloc_size: - if (intval < 1) { + if (intval < SECTOR_SIZE) { pr_err("alloc_size out of range\n"); return -EINVAL; } @@ -4204,12 +4204,12 @@ static int rbd_init_disk(struct rbd_device *rbd_dev) q->limits.max_sectors = queue_max_hw_sectors(q); blk_queue_max_segments(q, USHRT_MAX); blk_queue_max_segment_size(q, UINT_MAX); - blk_queue_io_min(q, objset_bytes); - blk_queue_io_opt(q, objset_bytes); + blk_queue_io_min(q, rbd_dev->opts->alloc_size); + blk_queue_io_opt(q, rbd_dev->opts->alloc_size); if (rbd_dev->opts->trim) { blk_queue_flag_set(QUEUE_FLAG_DISCARD, q); - q->limits.discard_granularity = objset_bytes; + q->limits.discard_granularity = rbd_dev->opts->alloc_size; blk_queue_max_discard_sectors(q, objset_bytes >> SECTOR_SHIFT); blk_queue_max_write_zeroes_sectors(q, objset_bytes >> SECTOR_SHIFT); }