From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ming Lei Subject: Re: [PATCH V11 14/19] block: handle non-cluster bio out of blk_bio_segment_split Date: Thu, 22 Nov 2018 17:33:00 +0800 Message-ID: <20181122093259.GA27007@ming.t460p> References: <20181121032327.8434-1-ming.lei@redhat.com> <20181121032327.8434-15-ming.lei@redhat.com> <20181121143355.GB2594@lst.de> <20181121153726.GC19111@ming.t460p> <20181121174621.GA6961@lst.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline In-Reply-To: <20181121174621.GA6961@lst.de> Sender: linux-kernel-owner@vger.kernel.org To: Christoph Hellwig Cc: Jens Axboe , 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 , linux-ext4@vger.kernel.org, Coly Li , linux-bcache@vger.kernel.org, Boaz Harrosh , Bob List-Id: linux-raid.ids On Wed, Nov 21, 2018 at 06:46:21PM +0100, Christoph Hellwig wrote: > Actually.. > > I think we can kill this code entirely. If we look at what the > clustering setting is really about it is to avoid ever merging a > segement that spans a page boundary. And we should be able to do > that with something like this before your series: > > --- > From 0d46fa76c376493a74ea0dbe77305bd5fa2cf011 Mon Sep 17 00:00:00 2001 > From: Christoph Hellwig > Date: Wed, 21 Nov 2018 18:39:47 +0100 > Subject: block: remove the "cluster" flag > > The cluster flag implements some very old SCSI behavior. As far as I > can tell the original intent was to enable or disable any kind of > segment merging. But the actually visible effect to the LLDD is that > it limits each segments to be inside a single page, which we can > also affect by setting the maximum segment size and the virt > boundary. This approach is pretty good given we can do post-split during mapping sg. However, using virt boundary limit on non-cluster seems over-kill, because the bio will be over-split(each small bvec may be split as one bio) if it includes lots of small segment. What we want to do is just to avoid to merge bvecs to segment, which should have been done by NO_SG_MERGE simply. However, after multi-page is enabled, two adjacent bvecs won't be merged any more, I just forget to remove the bvec merge code in V11. So seems we can simply avoid to use virt boundary limit for non-cluster after multipage bvec is enabled? thanks, Ming From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.5 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_PASS,URIBL_BLOCKED,USER_AGENT_MUTT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 745ADC43441 for ; Thu, 22 Nov 2018 09:33:44 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 4434F20684 for ; Thu, 22 Nov 2018 09:33:44 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4434F20684 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-block-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2393484AbeKVUMR (ORCPT ); Thu, 22 Nov 2018 15:12:17 -0500 Received: from mx1.redhat.com ([209.132.183.28]:49112 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2387669AbeKVUMQ (ORCPT ); Thu, 22 Nov 2018 15:12:16 -0500 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 1E7402D7F3; Thu, 22 Nov 2018 09:33:36 +0000 (UTC) Received: from ming.t460p (ovpn-8-23.pek2.redhat.com [10.72.8.23]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 951B3171F6; Thu, 22 Nov 2018 09:33:04 +0000 (UTC) Date: Thu, 22 Nov 2018 17:33:00 +0800 From: Ming Lei To: Christoph Hellwig Cc: Jens Axboe , 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 , linux-ext4@vger.kernel.org, Coly Li , linux-bcache@vger.kernel.org, Boaz Harrosh , Bob Peterson , cluster-devel@redhat.com Subject: Re: [PATCH V11 14/19] block: handle non-cluster bio out of blk_bio_segment_split Message-ID: <20181122093259.GA27007@ming.t460p> References: <20181121032327.8434-1-ming.lei@redhat.com> <20181121032327.8434-15-ming.lei@redhat.com> <20181121143355.GB2594@lst.de> <20181121153726.GC19111@ming.t460p> <20181121174621.GA6961@lst.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20181121174621.GA6961@lst.de> User-Agent: Mutt/1.9.1 (2017-09-22) X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.30]); Thu, 22 Nov 2018 09:33:36 +0000 (UTC) Sender: linux-block-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-block@vger.kernel.org On Wed, Nov 21, 2018 at 06:46:21PM +0100, Christoph Hellwig wrote: > Actually.. > > I think we can kill this code entirely. If we look at what the > clustering setting is really about it is to avoid ever merging a > segement that spans a page boundary. And we should be able to do > that with something like this before your series: > > --- > From 0d46fa76c376493a74ea0dbe77305bd5fa2cf011 Mon Sep 17 00:00:00 2001 > From: Christoph Hellwig > Date: Wed, 21 Nov 2018 18:39:47 +0100 > Subject: block: remove the "cluster" flag > > The cluster flag implements some very old SCSI behavior. As far as I > can tell the original intent was to enable or disable any kind of > segment merging. But the actually visible effect to the LLDD is that > it limits each segments to be inside a single page, which we can > also affect by setting the maximum segment size and the virt > boundary. This approach is pretty good given we can do post-split during mapping sg. However, using virt boundary limit on non-cluster seems over-kill, because the bio will be over-split(each small bvec may be split as one bio) if it includes lots of small segment. What we want to do is just to avoid to merge bvecs to segment, which should have been done by NO_SG_MERGE simply. However, after multi-page is enabled, two adjacent bvecs won't be merged any more, I just forget to remove the bvec merge code in V11. So seems we can simply avoid to use virt boundary limit for non-cluster after multipage bvec is enabled? thanks, Ming From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ming Lei Date: Thu, 22 Nov 2018 17:33:00 +0800 Subject: [Cluster-devel] [PATCH V11 14/19] block: handle non-cluster bio out of blk_bio_segment_split In-Reply-To: <20181121174621.GA6961@lst.de> References: <20181121032327.8434-1-ming.lei@redhat.com> <20181121032327.8434-15-ming.lei@redhat.com> <20181121143355.GB2594@lst.de> <20181121153726.GC19111@ming.t460p> <20181121174621.GA6961@lst.de> Message-ID: <20181122093259.GA27007@ming.t460p> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit On Wed, Nov 21, 2018 at 06:46:21PM +0100, Christoph Hellwig wrote: > Actually.. > > I think we can kill this code entirely. If we look at what the > clustering setting is really about it is to avoid ever merging a > segement that spans a page boundary. And we should be able to do > that with something like this before your series: > > --- > From 0d46fa76c376493a74ea0dbe77305bd5fa2cf011 Mon Sep 17 00:00:00 2001 > From: Christoph Hellwig > Date: Wed, 21 Nov 2018 18:39:47 +0100 > Subject: block: remove the "cluster" flag > > The cluster flag implements some very old SCSI behavior. As far as I > can tell the original intent was to enable or disable any kind of > segment merging. But the actually visible effect to the LLDD is that > it limits each segments to be inside a single page, which we can > also affect by setting the maximum segment size and the virt > boundary. This approach is pretty good given we can do post-split during mapping sg. However, using virt boundary limit on non-cluster seems over-kill, because the bio will be over-split(each small bvec may be split as one bio) if it includes lots of small segment. What we want to do is just to avoid to merge bvecs to segment, which should have been done by NO_SG_MERGE simply. However, after multi-page is enabled, two adjacent bvecs won't be merged any more, I just forget to remove the bvec merge code in V11. So seems we can simply avoid to use virt boundary limit for non-cluster after multipage bvec is enabled? thanks, Ming