Received: by 2002:ac0:a581:0:0:0:0:0 with SMTP id m1-v6csp7048396imm; Wed, 27 Jun 2018 19:02:57 -0700 (PDT) X-Google-Smtp-Source: ADUXVKLMSV0Ll+Ssoh068g3CgImP/08JAULkTL2T+10sHOLALTAIhbrwJ1edE06RJi8tAtxRUEQN X-Received: by 2002:a63:65c2:: with SMTP id z185-v6mr7078674pgb.276.1530151377707; Wed, 27 Jun 2018 19:02:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1530151377; cv=none; d=google.com; s=arc-20160816; b=xzGkN7u5RsSXiHv4O1K+VHz1QHRt/0nAP0PE0w6bCJos6+Zh/1qlCXRL7exYBY8D4w oelRyc510uqn6MiSoraNKnxdPAZ+DxWrhk4nhZ0dxdzKcSpuOIypG27xbUQ7KlyPS9uB Fd+vjD0mTpIAC+fIWCVMbJNsfnMN59UxmY8oaZ67IBvcVz4MJYN8vGscHgMPCeyVkaAx tNlR5+lsW0Oo42Lw/o+otlApkFJXgPX83MflH7Lew8QPJS0DDqw56Ge3mQYUPCk+KDS0 fatOlmr4lxESzFORcunD5Sa3fRKwHwLofT7r/1Ti+VKvsdNUXIpWQ4Zw5Z0yGFZL3bQW 8wMA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:autocrypt:openpgp:from:references:cc:to:subject :arc-authentication-results; bh=u6N4hZu1WBg3XrrXLISzvhlhNp0rPn9W7FRSlmeOimQ=; b=uYc9g4KvB+NRnTLEaFh8E0XaMEWP/V00IPLmlC/wCCHZucKTlCZg2c1nA+E3uUHNkj Zk0Z4MD8Hwgg1SCIs+bX9NYkujLs/JW5FO5tnMYtwafZvt9DYv17PDwByTXo8vJnvMMM /SbCYIL1gJm1cjxw41hOy93BQTTE+PjoFkVyLMMjrLf3wbW0wU3okRZg8vH2L/MOofDq QUOObxbQVi15bcUxr/zSqfzf/9lIpq2itfPNm6eovHq3a0r6uYfgf7FETXtpmeSBI/YL 3AmPFakNM0y2+YKsFSeetv6jYDI5JW1wcEUraOSGCPgEjQ/S6yZaR7ELc/unGXH7vBbZ D1VA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id v18-v6si5358362pfg.343.2018.06.27.19.02.43; Wed, 27 Jun 2018 19:02:57 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752544AbeF1CBz (ORCPT + 99 others); Wed, 27 Jun 2018 22:01:55 -0400 Received: from mx2.suse.de ([195.135.220.15]:53132 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750962AbeF1CBw (ORCPT ); Wed, 27 Jun 2018 22:01:52 -0400 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (charybdis-ext-too.suse.de [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id B57B9AC7F; Thu, 28 Jun 2018 02:01:50 +0000 (UTC) Subject: Re: [PATCH V7 20/24] bcache: avoid to use bio_for_each_segment_all() in bch_bio_alloc_pages() To: Ming Lei Cc: Jens Axboe , Christoph Hellwig , Kent Overstreet , David Sterba , Huang Ying , Mike Snitzer , 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" , Filipe Manana , Randy Dunlap , linux-bcache@vger.kernel.org References: <20180627124548.3456-1-ming.lei@redhat.com> <20180627124548.3456-21-ming.lei@redhat.com> <20180628012816.GH7583@ming.t460p> From: Coly Li Openpgp: preference=signencrypt Autocrypt: addr=colyli@suse.de; prefer-encrypt=mutual; keydata= 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 Message-ID: <92ae1547-39b1-472c-efbe-c0a6430fc3f6@suse.de> Date: Thu, 28 Jun 2018 10:01:39 +0800 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:52.0) Gecko/20100101 Thunderbird/52.8.0 MIME-Version: 1.0 In-Reply-To: <20180628012816.GH7583@ming.t460p> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2018/6/28 9:28 AM, Ming Lei wrote: > On Wed, Jun 27, 2018 at 11:55:33PM +0800, Coly Li wrote: >> On 2018/6/27 8:45 PM, Ming Lei wrote: >>> bch_bio_alloc_pages() is always called on one new bio, so it is safe >>> to access the bvec table directly. Given it is the only kind of this >>> case, open code the bvec table access since bio_for_each_segment_all() >>> will be changed to support for iterating over multipage bvec. >>> >>> Cc: Coly Li >>> Cc: linux-bcache@vger.kernel.org >>> Signed-off-by: Ming Lei >>> --- >>> drivers/md/bcache/util.c | 2 +- >>> 1 file changed, 1 insertion(+), 1 deletion(-) >>> >>> diff --git a/drivers/md/bcache/util.c b/drivers/md/bcache/util.c >>> index fc479b026d6d..9f2a6fd5dfc9 100644 >>> --- a/drivers/md/bcache/util.c >>> +++ b/drivers/md/bcache/util.c >>> @@ -268,7 +268,7 @@ int bch_bio_alloc_pages(struct bio *bio, gfp_t gfp_mask) >>> int i; >>> struct bio_vec *bv; >>> >> >> Hi Ming, >> >>> - bio_for_each_segment_all(bv, bio, i) { >>> + for (i = 0, bv = bio->bi_io_vec; i < bio->bi_vcnt; bv++) { >> >> >> Is it possible to treat this as a special condition of >> bio_for_each_segement_all() ? I mean only iterate one time in >> bvec_for_each_segment(). I hope the above change is not our last choice >> before I reply an Acked-by :-) > > Now the bvec from bio_for_each_segement_all() can't be changed any more > since the referenced 'bvec' is generated in-flight given we store > real multipage bvec. > > BTW, this way is actually suggested by Christoph for saving one new > helper of bio_for_each_bvec_all() as done in V6, and per previous discussion, > seems both Kent and Christoph agrees to convert bcache into bio_add_page() > finally. > > So I guess this open code style should be fine. Hi Ming, I see, thanks for the hint. Acked-by: Coly Li Coly Li