Received: by 2002:ac0:a5b6:0:0:0:0:0 with SMTP id m51-v6csp3899355imm; Tue, 29 May 2018 16:28:03 -0700 (PDT) X-Google-Smtp-Source: ADUXVKJxZbNi5xsUGx5qzuZyIwpiyG05BWOGbBcbEnjf1JjqAk9uP9V8spTDFj74UJcIVLPj6Jrj X-Received: by 2002:a63:88c3:: with SMTP id l186-v6mr331618pgd.226.1527636483234; Tue, 29 May 2018 16:28:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1527636483; cv=none; d=google.com; s=arc-20160816; b=bEjpMnm1/D6T9NrTd8SWySA8ldMzyrTLWQQWVFDxfizzmpXEx8UybYPpTSpX3qqT9O tlti1mFMLN5yW5RWF8sl1e9efMDOpcuv7gpe8YnBBVJ8x1nwHlAlGf1pdht+5fJ4p/tr ybt/+M/D23++2isR6z2Ve3jVmTkXPI9Yb2iDzkIhL7YBbryCOuMH7c/NPVFqIWpiFcGQ PVTgm2JaEOnTuK16eB3pqXGsj9m6Z20rGgswq5AvC+tbCi7siNfDM+tIewsSzpUMCkVN +OjNqcmfT0I6+7WCvqnFalmRydhVvlFnNc/G6SCyQ7QhqAqNl1OxMrrFasg/keJRkGE0 aMcQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:arc-authentication-results; bh=+M2JAPQ19GrC78UKWjxPkMGTfaviiR3m6TjLYwMPKI8=; b=jM3+qlMGSa10lVjvDb1MYYZ9srrRphQ0X5DJvlPZ/K3HFZDEitWTBdpouJ8v94A3J5 K7/wTSzlUsoFgBM9A2/a1rMNGey3GGWs2LF5/59svwlGifSv/f6YHtyYgl30ue3Z4fG9 rWhVmqVeNUutDRQOf4eIboQNHHKtdqAM5jK2/P/mI/q8QluruKIcIW7L5fhz0feXQObe ULXatvvzUslOWgJEf3Qum01e90oJVrcbUwAgxupzTWDCM5P0MLj/2NrIP3c4/0719Izm Uw3G2Uf0jXx3NKajYK8KGyMyMjloH3XEX1nLSbCI51RtTU+LXbKpiYOoy40dEajv7HiO 1F8g== 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=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id i61-v6si23231637plb.138.2018.05.29.16.27.48; Tue, 29 May 2018 16:28:03 -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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S967971AbeE2X1X (ORCPT + 99 others); Tue, 29 May 2018 19:27:23 -0400 Received: from mx3-rdu2.redhat.com ([66.187.233.73]:40244 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S965499AbeE2X1V (ORCPT ); Tue, 29 May 2018 19:27:21 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 413184022407; Tue, 29 May 2018 23:27:20 +0000 (UTC) Received: from localhost (unknown [10.18.25.149]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 5DC162026DEF; Tue, 29 May 2018 23:27:19 +0000 (UTC) Date: Tue, 29 May 2018 19:27:18 -0400 From: Mike Snitzer To: Christoph Hellwig , axboe@kernel.dk, Linus Torvalds Cc: Johannes Thumshirn , "Martin K. Petersen" , Linux NVMe Mailinglist , Laurence Oberman , Sagi Grimberg , James Smart , Ewan Milne , Linux Kernel Mailinglist , Keith Busch , Hannes Reinecke , Martin George , John Meneghini , dm-devel@redhat.com Subject: Re: [PATCH 0/3] Provide more fine grained control over multipathing Message-ID: <20180529232718.GA1730@redhat.com> References: <20180525125322.15398-1-jthumshirn@suse.de> <20180525130535.GA24239@lst.de> <20180525135813.GB9591@redhat.com> <20180525141211.GA25971@lst.de> <20180525145056.GD9591@redhat.com> <20180529030236.GA28895@redhat.com> <20180529072240.np5c62akbr7jqelr@linux-x5ow.site> <20180529080952.GA1369@lst.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20180529080952.GA1369@lst.de> User-Agent: Mutt/1.5.21 (2010-09-15) X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.6]); Tue, 29 May 2018 23:27:20 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.6]); Tue, 29 May 2018 23:27:20 +0000 (UTC) for IP:'10.11.54.4' DOMAIN:'int-mx04.intmail.prod.int.rdu2.redhat.com' HELO:'smtp.corp.redhat.com' FROM:'msnitzer@redhat.com' RCPT:'' Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, May 29 2018 at 4:09am -0400, Christoph Hellwig wrote: > On Tue, May 29, 2018 at 09:22:40AM +0200, Johannes Thumshirn wrote: > > For a "Plan B" we can still use the global knob that's already in > > place (even if this reminds me so much about scsi-mq which at least we > > haven't turned on in fear of performance regressions). > > > > Let's drop the discussion here, I don't think it leads to something > > else than flamewars. > > If our plan A doesn't work we can go back to these patches. For now > I'd rather have everyone spend their time on making Plan A work then > preparing for contingencies. Nothing prevents anyone from using these > patches already out there if they really want to, but I'd recommend > people are very careful about doing so as you'll lock yourself into > a long-term maintainance burden. Restating (for others): this patchset really isn't about contingencies. It is about choice. Since we're at an impasse, in the hopes of soliciting definitive feedback from Jens and Linus, I'm going to attempt to reset the discussion for their entry. In summary, we have a classic example of a maintainer stalemate here: 1) Christoph, as NVMe co-maintainer, doesn't want to allow native NVMe multipath to actively coexist with dm-multipath's NVMe support on the same host. 2) I, as DM maintainer, would like to offer this flexibility to users -- by giving them opt-in choice to continue using existing dm-multipath with NVMe. (also, both Red Hat and SUSE would like to offer this). There is no technical reason why they cannot coexist. Hence this simple patchset that was originally offered by Johannes Thumshirn with contributions from myself. With those basics established, I'd like to ask: Are we, as upstream kernel maintainers, really willing to force a needlessly all-or-nothing multipath infrastructure decision on Linux NVMe users with dm-multipath expertise? Or should we also give them an opt-in choice to continue using the familiar, mature, dm-multipath option -- in addition to the new default native NVMe multipath that may, in the long-term, be easier to use and more performant? A definitive answer to this would be very helpful. As you can see above, Christoph is refusing to allow the opt-in option. This will force enterprise Linux distributions to consider carrying the patches on our own, in order to meet existing customer needs. The maintenance burden of this is unnecessary, and it goes against our "upstream first" mantra. I'm well past the point for wanting to reach closure on this issue. But I do feel strong enough about it that I'd be remiss not to solicit feedback that lets us have no doubt about what the future holds for upstream Linux's NVMe multipathing. Please advise, thanks. Mike -- Additional background (for the benefit of others who haven't been following along): Jens, as block maintainer, took Christoph's NVMe change to have NVMe internalize multiple paths to an NVMe subsystem. This is referred to as "native NVMe multipath" (see: commit 32acab3181). As DM maintainer, I've consistently requested we have the ability to allow users to opt-in to exposing the underlying NVMe devices so that dm-multipath could continue to provide a single interface for multipath configuration and monitoring, see: http://lists.infradead.org/pipermail/linux-nvme/2017-February/008256.html Christoph rejected this on the principle that he dislikes the dm-multipath architecture (being split between DM in kernel, dm-mpath.ko, and userspace via multipathd; exposure of underlying devices, less performant, etc). So instead, dm-multipath was prevented from seeing these individual paths because the NVMe driver hid them. That is, unless CONFIG_NVME_MULTIPATH isn't set or nvme_core.multipath=N is set. And if either is used, users then cannot make use of native NVMe multipath. So currently, native NVMe multipath vs dm-multipath is all-or-nothing. The feeling is we should afford users the ability to continue using dm-multipath at their choosing. Hannes summarized the need for this nicely here: https://lkml.org/lkml/2018/5/29/95 Please also note this from my first reply to this thread (here: https://lkml.org/lkml/2018/5/25/438): The ability to switch between "native" and "other" multipath absolutely does _not_ imply anything about the winning disposition of native vs other. It is purely about providing commercial flexibility to use whatever solution makes sense for a given environment. The default _is_ native NVMe multipath. It is on userspace solutions for "other" multipath (e.g. multipathd) to allow user's to whitelist an NVMe subsystem to be switched to "other".