From patchwork Sat Jun 9 12:29:58 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ming Lei X-Patchwork-Id: 10455581 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 90C56601F7 for ; Sat, 9 Jun 2018 12:33:30 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 833A61FF83 for ; Sat, 9 Jun 2018 12:33:30 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 77CB6223A4; Sat, 9 Jun 2018 12:33:30 +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=ham 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 1D8011FF83 for ; Sat, 9 Jun 2018 12:33:30 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2E0746B027C; Sat, 9 Jun 2018 08:33:29 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 28EFE6B027E; Sat, 9 Jun 2018 08:33:29 -0400 (EDT) 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 133656B027F; Sat, 9 Jun 2018 08:33:29 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-qk0-f200.google.com (mail-qk0-f200.google.com [209.85.220.200]) by kanga.kvack.org (Postfix) with ESMTP id DB1566B027C for ; Sat, 9 Jun 2018 08:33:28 -0400 (EDT) Received: by mail-qk0-f200.google.com with SMTP id s133-v6so15113687qke.21 for ; Sat, 09 Jun 2018 05:33:28 -0700 (PDT) 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=KTW+lSe5sKIJ6ad1t4wVzBd8nTI5GX7xaTk1XLQYvhs=; b=PIchn6XTL1g1Nz7KoW35sO9kOQIAs5HRZgCdUsaHepr01qt1ZAneY3gj2UshFCSPUa XF2Ax8eXmnsGfLHHikkAg4OnbMmNwiidDw/CH3vz4wcnAa48P9ZLsvlrpMJsg8PnLWSh 2L7ohhPAwNlrNHTMZLpZoyu2kviht+zdft6AnU8fHqJJLSV5lC4EGwRaQQuJryk/QZ+X unZCe4lQ6/Ps9dFl5kK9TEGpYerj/ghsxqYhzemaOcgkl3EaxtsGT64GGcG6HB5RjIIW 1i7k9DxHa/5CZ6+sh0zna9paRS2urhRxBQLeMCvcMPKRmeP5OlwZknAbSEBQZ2Mah2k7 scoQ== X-Original-Authentication-Results: mx.google.com; spf=pass (google.com: domain of ming.lei@redhat.com designates 66.187.233.73 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: APt69E3Kx850ALInffUbdjeukqUpEJWunYktmNJ8B+t2XmN18DdU3pO2 2icCAUXQaeH1qft/ti9cmcDo9RP7tvmn3NKgfYs/tDVfnvPvDHuWxivT6MeMI8sNMJU1wgzwYxi LFT1atrCQqg9RvaHILj/qMTaNJmSj8aHipIfEBdll1LfKGRU3EMZH4z8xSp0Vfps6tg== X-Received: by 2002:a37:15cd:: with SMTP id 74-v6mr8803035qkv.335.1528547608708; Sat, 09 Jun 2018 05:33:28 -0700 (PDT) X-Google-Smtp-Source: ADUXVKLtIUZCVWiKNCI+fpwylvSOI5Ejo7Tx3JNu+Yo4hLxKX/OGJtRphJIiPVkmsqer+stYAHRI X-Received: by 2002:a37:15cd:: with SMTP id 74-v6mr8803015qkv.335.1528547608188; Sat, 09 Jun 2018 05:33:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1528547608; cv=none; d=google.com; s=arc-20160816; b=TuK7OyK70c6wGze/xkABpOKZGotn7scHWJZAqoiJurfVcxvb3zu3Z0iLxvDQ1Lz16m ++Zt59me65C1l9lNJlPjgF7xrvARfnBqNNeSr8HS3n5kmwh/1Li0aDfrtbMxALilNIlm VmLX3zF8iobZE07kkBC8R+L56ljZQTJ9Ur1JGijShRfO20moAVZJDg1JhxXkBm+99uQR TBiGz+rSqgNdvyxDqOjDY1/kCide0z7RG1+ZV7hl3M4Z2N8x8Prh1W5j67fjGEYvhY9p eS45Myn5uiFdyuzZCW6f9FJuQFco038eyna7fwKT4DYFQtmnpWyw1NhqqLb9Gd9IbOOc 4FOg== 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 :arc-authentication-results; bh=KTW+lSe5sKIJ6ad1t4wVzBd8nTI5GX7xaTk1XLQYvhs=; b=lrnAQ3DH0rJbFlHg03XSfiiIxZSmPfr5+m5jN2nO07uQMB96K7gBrO3oFSJJr6R84p WcRFCHAe9HeMiTiryniSBjnjSD9MDeMNzfXr4wQhFD6J9dl9qahcr6M5EqHNOuSt0t1d hOxmR8FU935De0n5ZCUNOQ8cp3P2xDgfxjxu1n9TUh15380P5tEAIxoA3iOSIcPiGzjt b2URQtS8+pdfE85dVhqeaI4LSOuAXhLl5z3Bdb+Rv8uETbTSRZxrLUZNFYuvozcODQBw ofKSWvCjqohLBL/gIJvb/J/f+n5E3YqpqBQPE5Q2KVuT/Pt4zLSyhHs72EmSFK8+0HK6 l2HQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of ming.lei@redhat.com designates 66.187.233.73 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 (mx3-rdu2.redhat.com. [66.187.233.73]) by mx.google.com with ESMTPS id p47-v6si3893493qtp.296.2018.06.09.05.33.28 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 09 Jun 2018 05:33:28 -0700 (PDT) Received-SPF: pass (google.com: domain of ming.lei@redhat.com designates 66.187.233.73 as permitted sender) client-ip=66.187.233.73; Authentication-Results: mx.google.com; spf=pass (google.com: domain of ming.lei@redhat.com designates 66.187.233.73 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-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id C8ABF4187E53; Sat, 9 Jun 2018 12:33:27 +0000 (UTC) Received: from localhost (ovpn-12-40.pek2.redhat.com [10.72.12.40]) by smtp.corp.redhat.com (Postfix) with ESMTP id A82F52166BB2; Sat, 9 Jun 2018 12:33:19 +0000 (UTC) From: Ming Lei To: Jens Axboe , Christoph Hellwig , Alexander Viro , Kent Overstreet Cc: David Sterba , Huang Ying , linux-kernel@vger.kernel.org, linux-block@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, Theodore Ts'o , "Darrick J . Wong" , Coly Li , Filipe Manana , Randy Dunlap , Ming Lei Subject: [PATCH V6 14/30] block: loop: pass multipage chunks to iov_iter Date: Sat, 9 Jun 2018 20:29:58 +0800 Message-Id: <20180609123014.8861-15-ming.lei@redhat.com> In-Reply-To: <20180609123014.8861-1-ming.lei@redhat.com> References: <20180609123014.8861-1-ming.lei@redhat.com> X-Scanned-By: MIMEDefang 2.78 on 10.11.54.6 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.5]); Sat, 09 Jun 2018 12:33:27 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.5]); Sat, 09 Jun 2018 12:33:27 +0000 (UTC) for IP:'10.11.54.6' DOMAIN:'int-mx06.intmail.prod.int.rdu2.redhat.com' HELO:'smtp.corp.redhat.com' FROM:'ming.lei@redhat.com' RCPT:'' 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 iov_iter is implemented with bvec itererator, so it is safe to pass multipage chunks to it, and this way is much more efficient than passing one page in each bvec. Signed-off-by: Ming Lei --- drivers/block/loop.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/block/loop.c b/drivers/block/loop.c index 4838b0dbaad3..c25963a9df00 100644 --- a/drivers/block/loop.c +++ b/drivers/block/loop.c @@ -521,7 +521,7 @@ static int lo_rw_aio(struct loop_device *lo, struct loop_cmd *cmd, struct bio_vec tmp; __rq_for_each_bio(bio, rq) - segments += bio_segments(bio); + segments += bio_chunks(bio); bvec = kmalloc(sizeof(struct bio_vec) * segments, GFP_NOIO); if (!bvec) return -EIO; @@ -533,7 +533,7 @@ static int lo_rw_aio(struct loop_device *lo, struct loop_cmd *cmd, * copy bio->bi_iov_vec to new bvec. The rq_for_each_segment * API will take care of all details for us. */ - rq_for_each_segment(tmp, rq, iter) { + rq_for_each_chunk(tmp, rq, iter) { *bvec = tmp; bvec++; } @@ -547,7 +547,7 @@ static int lo_rw_aio(struct loop_device *lo, struct loop_cmd *cmd, */ offset = bio->bi_iter.bi_bvec_done; bvec = __bvec_iter_bvec(bio->bi_io_vec, bio->bi_iter); - segments = bio_segments(bio); + segments = bio_chunks(bio); } atomic_set(&cmd->ref, 2);