Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp3747226ybl; Tue, 21 Jan 2020 06:23:10 -0800 (PST) X-Google-Smtp-Source: APXvYqzYay26Sgp4X73zE2peMyPAU0XTUnNb823WaoDLCsqZBhQCp0GAaSPo1wlozJ7E664U3a+H X-Received: by 2002:a05:6830:139a:: with SMTP id d26mr3867957otq.75.1579616590150; Tue, 21 Jan 2020 06:23:10 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1579616590; cv=none; d=google.com; s=arc-20160816; b=TAGFC6zWa970NMN+StB1Nm/fZ1Q+wvXCjhQYv76iaH9gmdDdfX9izWx6GkC7mI/HyR AeNbBzen3QVt1B4u2TxWVA3J+OpUU3SQPm2epbqFp1vcY9dp6sw1hZfM/Y4ZedVBjSBx plWDTBi6k2cO2wPXooVnJC+jOY+RqdD9DQ2a/CHJqyzFTUH8lmm6+SAcd5cC0GjIEKOK aRG8ALGYjkpBLq2URkXTre4JE1KvInt0xKZbCCCws03PwMLYp6vPN3b73p9TPpWQkuc8 1sBp6JPmNktWU04sNUGtjFW8vPbdPvB9QdEqcnVbVhmBlUSV3ndwHcmNpoNwlYIipPUl qfQg== 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:from:references:cc:to:subject; bh=1pg0ao8VX3Kr6rbkXPOqhifS7/hdWzQbhH05nCwPdnI=; b=dEruEaREX9GR1u4em64K0vd1eotOLyuF2CualkhlFtEP8Po69TAH7FRsOEeP3aDurI 8W0AVX7bUQPE3JaEmkQhpGkVnumYqoYJ+MOKlY1ozT46DQGRmX/Ic+O+MSovs8I9YINI NPWd2rETgm2h+48TkjpmGvKUzhLnaFa6x0SvBjuY+BqtHmhKUcocaohMid496Yc6i5KP LANiyCdadOWhn+z461sOfQvHWAzAePWYKSvqtJ8m1BEnja54hGyU2uIkWZZvf7FQ6FAh Gypa/K4EGAOaAirZ0q7RVRWwL7tYQz4iqiZzp4kZFtizkawKeK8YDgNsLiPnQg+W/+68 Sgfw== 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=virtuozzo.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id j3si22210109otn.154.2020.01.21.06.22.57; Tue, 21 Jan 2020 06:23:10 -0800 (PST) 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=virtuozzo.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729277AbgAUOV7 (ORCPT + 99 others); Tue, 21 Jan 2020 09:21:59 -0500 Received: from relay.sw.ru ([185.231.240.75]:38308 "EHLO relay.sw.ru" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729030AbgAUOV7 (ORCPT ); Tue, 21 Jan 2020 09:21:59 -0500 Received: from dhcp-172-16-24-104.sw.ru ([172.16.24.104]) by relay.sw.ru with esmtp (Exim 4.92.3) (envelope-from ) id 1ituOd-0000iX-C4; Tue, 21 Jan 2020 17:20:47 +0300 Subject: Re: [PATCH v4 6/7] dm: Directly disable max_allocate_sectors for now To: Mike Snitzer Cc: linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, martin.petersen@oracle.com, bob.liu@oracle.com, axboe@kernel.dk, agk@redhat.com, dm-devel@redhat.com, song@kernel.org, tytso@mit.edu, adilger.kernel@dilger.ca, Chaitanya.Kulkarni@wdc.com, darrick.wong@oracle.com, ming.lei@redhat.com, osandov@fb.com, jthumshirn@suse.de, minwoo.im.dev@gmail.com, damien.lemoal@wdc.com, andrea.parri@amarulasolutions.com, hare@suse.com, tj@kernel.org, ajay.joshi@wdc.com, sagi@grimberg.me, dsterba@suse.com, bvanassche@acm.org, dhowells@redhat.com, asml.silence@gmail.com References: <157960325642.108120.13626623438131044304.stgit@localhost.localdomain> <157960337238.108120.18048939587162465175.stgit@localhost.localdomain> <20200121122458.GA9365@redhat.com> <619a7a14-44e6-eca7-c1ea-3f04abeee53d@virtuozzo.com> <20200121134840.GA9944@redhat.com> From: Kirill Tkhai Message-ID: Date: Tue, 21 Jan 2020 17:20:46 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.4.1 MIME-Version: 1.0 In-Reply-To: <20200121134840.GA9944@redhat.com> 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 21.01.2020 16:48, Mike Snitzer wrote: > On Tue, Jan 21 2020 at 8:33am -0500, > Kirill Tkhai wrote: > >> On 21.01.2020 15:36, Kirill Tkhai wrote: >>> On 21.01.2020 15:24, Mike Snitzer wrote: >>>> On Tue, Jan 21 2020 at 5:42am -0500, >>>> Kirill Tkhai wrote: >>>> >>>>> Since dm inherits limits from underlining block devices, >>>>> this patch directly disables max_allocate_sectors for dm >>>>> till full allocation support is implemented. >>>>> >>>>> This prevents high-level primitives (generic_make_request_checks(), >>>>> __blkdev_issue_write_zeroes(), ...) from sending REQ_ALLOCATE >>>>> requests. >>>>> >>>>> Signed-off-by: Kirill Tkhai >>>>> --- >>>>> drivers/md/dm-table.c | 2 ++ >>>>> drivers/md/md.h | 1 + >>>>> 2 files changed, 3 insertions(+) >>>> >>>> You're mixing DM and MD changes in the same patch. >>>> >>>> But I'm wondering if it might be best to set this default for stacking >>>> devices in blk_set_stacking_limits()? >>>> >>>> And then it is up to each stacking driver to override as needed. >>> >>> Hm. Sound like a good idea. This "lim->max_allocate_sectors = 0" in blk_set_stacking_limits() >>> should work for dm's dm_calculate_queue_limits(), since it calls blk_stack_limits(), which is: >>> >>> t->max_allocate_sectors = min(t->max_allocate_sectors, >>> b->max_allocate_sectors); >>> >>> Could you please tell is this fix is also enough for md? >> >> It looks like it's enough since queue defaults are set in md_alloc()->blk_set_stacking_limits(). >> In case of we set "max_allocate_sectors = 0", in further it can be changed only manually, >> but nobody does this. > > Yes, it will work to disable this capability for MD and DM. > > But if/when a stacked device _dooes_ want to support this then it'll be > awkward to override this stacking default to allow blk_stack_limits() > to properly stack up this limit. blk_limits are extremely fiddley so > this isn't necessarily new. But by explicitly defaulting to 0 and then > having blk_stack_limits use min() for this limit: it results in stacking > drivers needing to clumsily unwind the default. E.g. DM will need to > tweak its blk_stack_limits() related code to allow override that > actually _does_ stack up the underlying devices' capability (and not > just impose its own limit that ignores the underlying devices). > > So I'm not convinced this is the right way to go (be it the v4 approach > you took or the cleaner use of blk_set_stacking_limits I suggested). Is there a strong vision about the way we should go? Or you leave this choose up to me? > And to be clear, I'm interested in having DM thinp support this > capability to preallocate blocks. My opinion is it would be better to not mix several subsystem related support in a single patch set. Both of the approaches (v4 or that you suggested) do not prevents us to implement allocation support in next patch series. After we have the base functionality enabled, we may add support in other subsystems and drivers one by one with more focus on the subsystem specificities and with the best possible attention. Regards, Kirill