From patchwork Wed Nov 21 03:23:09 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ming Lei X-Patchwork-Id: 10691599 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 09A6613BB for ; Wed, 21 Nov 2018 03:25:04 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id ECCC92B409 for ; Wed, 21 Nov 2018 03:25:03 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id E00CA2B40A; Wed, 21 Nov 2018 03:25:03 +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=-2.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_NONE autolearn=unavailable version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8C4952B406 for ; Wed, 21 Nov 2018 03:25:03 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id BAFF26B2392; Tue, 20 Nov 2018 22:25:02 -0500 (EST) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id B5D2D6B2393; Tue, 20 Nov 2018 22:25:02 -0500 (EST) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A280E6B2394; Tue, 20 Nov 2018 22:25:02 -0500 (EST) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-qk1-f197.google.com (mail-qk1-f197.google.com [209.85.222.197]) by kanga.kvack.org (Postfix) with ESMTP id 747936B2392 for ; Tue, 20 Nov 2018 22:25:02 -0500 (EST) Received: by mail-qk1-f197.google.com with SMTP id c84so5471725qkb.13 for ; Tue, 20 Nov 2018 19:25:02 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-original-authentication-results:x-gm-message-state:from:to:cc :subject:date:message-id:in-reply-to:references; bh=ElsrrhpAVIbsmTVlPH0nJbaneQL9iVm2pKo9WSx+m1k=; b=DKBFYs3/huCXhpeVkn03eYKVrvz0LSdpwADp+m3C4l8i0kqf2cVx0Mu/nHwi4SiQmY nn9ZPPesMmkwnxrTowQjNrZayfnjQk9R63jUjjeesdSOwj/I/KyEI8V9Cxpo9hG58UVw jROqq2G+n9t2zuN6eTP8aVimoUFWK3qh6UZgOiqxWJCEPfgefdyqojCLcEeJDRXFhqXN RaiBql0mItCg/O75BGYLyXye9bdwV8uzSVp1bXKgelPnfNOI76i689IL5NsTsbrE4tbY pW8pz2HtxoSDkRiBQohz4qMMVUoknBHNXqMNAmflybPX2EShvh2kXrMZQHEp7Bj9VBXe ww2g== X-Original-Authentication-Results: mx.google.com; spf=pass (google.com: domain of ming.lei@redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=ming.lei@redhat.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com X-Gm-Message-State: AA+aEWaEEbvBE2Uhc3RF0IMZUM3r71VmbvwIJMkrMfp+QeZWY4Y2Q9IE pOH7nSG0IIm45HNNtM8VXCYtRMbHAqcELtvpQD+bLtW6QrQFhQ+Xe0ku+t6Hwd37mlX1Nue3aIs 5caWsokH/8e/YIEdh4DPajyfAs6fm5p3xWgnoRM6I8wTfNjRtjVYdJOtlW6A3tIO+Vg== X-Received: by 2002:a37:5bc1:: with SMTP id p184mr4197644qkb.121.1542770702241; Tue, 20 Nov 2018 19:25:02 -0800 (PST) X-Google-Smtp-Source: AFSGD/Ve78mHdHFkbcYxz1Ki3lxPZMdnNP03oGfamwmp+iMdG6VrBqVI6b+vN+0SAIRDV10YKyPH X-Received: by 2002:a37:5bc1:: with SMTP id p184mr4197621qkb.121.1542770701575; Tue, 20 Nov 2018 19:25:01 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1542770701; cv=none; d=google.com; s=arc-20160816; b=ssheAglYzzQP+t5JLkvkLdJpu8kuB8s+o7/OfySei8/Z7EHNx3f97MyivqMCRzIQsG Haj89Htr1I+qTGG/+UaKabIG0jbnsLtwEv1DnpFYFAEHLg1u4ykCUgV1xglSzP9uPWyY rGmFcpYdkAFrwPJnuHKwOb3TbCcYbeuOt4Qa+K+1U8k1sWdtdkKXON3RH9HgyX7halc6 xq+AkIY6zBaBiD21PQyICbdZbIidsPkIbFRQUpGsuI2KZmLMnf0MqybjHEFR1k4rkdrX IA8ndBsai7aSARSTs/dc0fmslqYilcjUj8fAXgw+9TRCuS4OztgRXetXdmtU6+j9cPCf Pmnw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=references:in-reply-to:message-id:date:subject:cc:to:from; bh=ElsrrhpAVIbsmTVlPH0nJbaneQL9iVm2pKo9WSx+m1k=; b=XiSWRC21EwgLWPZ8ncXyOVEda2SjXRjSZZUiiwmhyedjxfyyIt1a9nRu58wW37NLx7 U6gcDUbb2p1WeA+CcQ5P98p9ZNidQtp63o88h0b3idTew3irNdVah83k3xd8WfB2tESK 2EJlfuuaaEc7fwuKpZITqO+umImuZnFcUPHC+njyy0722EZwS8YqjAq5Su87t+xNEN1w wo6WUtw8pd2qa6ED+OG2lQ3YHrWnr48g2E6O/UPxgdbga0PAuHK/1b6P2y6PT9Eniiji jeFOk+kOHZDjE15STjNGR9p5hWKOMQkPx4d0kIX1dFCCIjJB2ecA91kw+0eo5O8e3G9C FEzA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of ming.lei@redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=ming.lei@redhat.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: from mx1.redhat.com (mx1.redhat.com. [209.132.183.28]) by mx.google.com with ESMTPS id l5si468786qkh.194.2018.11.20.19.25.01 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 20 Nov 2018 19:25:01 -0800 (PST) Received-SPF: pass (google.com: domain of ming.lei@redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; Authentication-Results: mx.google.com; spf=pass (google.com: domain of ming.lei@redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=ming.lei@redhat.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 81FB337E79; Wed, 21 Nov 2018 03:25:00 +0000 (UTC) Received: from localhost (ovpn-8-21.pek2.redhat.com [10.72.8.21]) by smtp.corp.redhat.com (Postfix) with ESMTP id 97DDA608C4; Wed, 21 Nov 2018 03:24:46 +0000 (UTC) From: Ming Lei To: Jens Axboe Cc: linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, Theodore Ts'o , Omar Sandoval , Sagi Grimberg , Dave Chinner , Kent Overstreet , Mike Snitzer , dm-devel@redhat.com, Alexander Viro , linux-fsdevel@vger.kernel.org, Shaohua Li , linux-raid@vger.kernel.org, David Sterba , linux-btrfs@vger.kernel.org, "Darrick J . Wong" , linux-xfs@vger.kernel.org, Gao Xiang , Christoph Hellwig , linux-ext4@vger.kernel.org, Coly Li , linux-bcache@vger.kernel.org, Boaz Harrosh , Bob Peterson , cluster-devel@redhat.com, Ming Lei Subject: [PATCH V11 01/19] block: don't use bio->bi_vcnt to figure out segment number Date: Wed, 21 Nov 2018 11:23:09 +0800 Message-Id: <20181121032327.8434-2-ming.lei@redhat.com> In-Reply-To: <20181121032327.8434-1-ming.lei@redhat.com> References: <20181121032327.8434-1-ming.lei@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.29]); Wed, 21 Nov 2018 03:25:00 +0000 (UTC) X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: X-Virus-Scanned: ClamAV using ClamSMTP It is wrong to use bio->bi_vcnt to figure out how many segments there are in the bio even though CLONED flag isn't set on this bio, because this bio may be splitted or advanced. So always use bio_segments() in blk_recount_segments(), and it shouldn't cause any performance loss now because the physical segment number is figured out in blk_queue_split() and BIO_SEG_VALID is set meantime since bdced438acd83ad83a6c ("block: setup bi_phys_segments after splitting"). Reviewed-by: Christoph Hellwig Fixes: 76d8137a3113 ("blk-merge: recaculate segment if it isn't less than max segments") Signed-off-by: Ming Lei --- block/blk-merge.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/block/blk-merge.c b/block/blk-merge.c index b1df622cbd85..f52400ce2187 100644 --- a/block/blk-merge.c +++ b/block/blk-merge.c @@ -368,13 +368,7 @@ void blk_recalc_rq_segments(struct request *rq) void blk_recount_segments(struct request_queue *q, struct bio *bio) { - unsigned short seg_cnt; - - /* estimate segment number by bi_vcnt for non-cloned bio */ - if (bio_flagged(bio, BIO_CLONED)) - seg_cnt = bio_segments(bio); - else - seg_cnt = bio->bi_vcnt; + unsigned short seg_cnt = bio_segments(bio); if (test_bit(QUEUE_FLAG_NO_SG_MERGE, &q->queue_flags) && (seg_cnt < queue_max_segments(q)))