linux-block.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Zdenek Kabelac <zkabelac@redhat.com>
To: Linus Torvalds <torvalds@linux-foundation.org>,
	Mike Snitzer <snitzer@redhat.com>
Cc: Theodore Ts'o <tytso@mit.edu>,
	linux-block <linux-block@vger.kernel.org>,
	dm-devel@redhat.com, Mikulas Patocka <mpatocka@redhat.com>,
	Hou Tao <houtao1@huawei.com>,
	Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>,
	Alasdair G Kergon <agk@redhat.com>
Subject: Re: [dm-devel] [git pull] device mapper fixes for 5.6-rc5
Date: Thu, 5 Mar 2020 10:44:21 +0100	[thread overview]
Message-ID: <7493a5fb-e267-6aaa-286b-16472ac8a5ca@redhat.com> (raw)
In-Reply-To: <CAHk-=wjdzxSGRLVHheRd1WA_FhsAMEV5pOwy08x8NaMG7ty8DQ@mail.gmail.com>

Dne 04. 03. 20 v 20:34 Linus Torvalds napsal(a):
> 
> 
> On Wed, Mar 4, 2020, 13:23 Mike Snitzer <snitzer@redhat.com 
> <mailto:snitzer@redhat.com>> wrote:
> 
> 
>     These versions are for userspace's benefit (be it lvm2, cryptsetup,
>     multipath-tools, etc).  But yes, these versions are bogus even for
>     that -- primarily because it requires userspace to know when a
>     particular feature/fix it cares about was introduced.  In addition: if
>     fixes, that also bump version, are marked for stable@ then we're quickly
>     in versioning hell -- which is why I always try to decouple version
>     bumps from fixes.
> 
> 
> Yeah, I think the drm people used to have a version number too, and it's not 
> just fixes getting backported to stable - it's distro kernels taking changes 
> for new hardware without taking other parts etc.
> 
> So the versioning ends up not ever working reliably anyway - the same way that 
> you can't use the kernel version number to determine what system calls are 
> available.
> 
> So versions can not ever be anything more than informational, and it's usually 
> just very confusing to have multiple different version numbers (ie "I'm 
> running kernel v5.4, and my driver abc version is 1.4.2a" is *not* in the 
> least helpful).
> 
>     Others have suggested setting feature flags.  I expect you'd hate those
>     too.  I suspect I quickly would too given flag bits are finite and
>     really tedious to deal with.
> 
> 
> It also leads to some people then thinking it's ok to remove features (perhaps 
> to reimplement them differently) if they only clear the feature bit.
> 
> And no, it's not how kernel interfaces work. We keep the interfaces even if 
> the internals change.
> 
> So I've been suggesting that people just freeze the version, or remove the 
> interface entirely is possible.
> 
> Because otherwise it's just a source of problems, where user space might 
> refuse to do something that the kernel supports because of some silly version 
> check...

Hi

POV of lvm2 developer - there are 2 things to solve - 1st. is the introduction 
of a new 'features'. The 2nd. is usability/stability of certain version of dm 
targets - so when we later discover some combination of device stack are not 
safe to use (can lead to significant lose of user's data) lvm2 adds check for 
this.

The reason for complexity comes from fact - numerous distribution use version
of kernel X.Y.Z while they can have much new DM target version as it's much 
more simple to backport new DM into older version.

Nothing is clearly 'perfect', there is no ideal solution to cover all 
combination of all kernel backports - but current separate versioning stream
of DM targets added to kernel versioning, which i.e. lvm2 also is tracking, 
adds more hints for safe decision (as the safety of user's data is the most 
important here)  and allows various distributions to 'somehow reasonably' 
handle backporting of bugfixes.

So if there would be 'feature flag' list provided by DM target - there still 
should be visible which version of implemented flag is that - as when the new 
feature is added - it's not always 'perfect' - sometimes we discover q bug 
quite late in the process of new feature introduction - so the plain fact 
'featureXYZ' is present unfortunately doesn't always mean it's usable.
Sometimes even 'fixing' one bug may introduce a new problem we discover again 
later (testing combinations of device stacks is really madness of its own...)


Zdenek


  parent reply	other threads:[~2020-03-05  9:44 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-04 15:02 [git pull] device mapper fixes for 5.6-rc5 Mike Snitzer
2020-03-04 19:06 ` Linus Torvalds
2020-03-04 19:23   ` Mike Snitzer
2020-03-04 20:02     ` [dm-devel] " Theodore Y. Ts'o
     [not found]     ` <CAHk-=wjdzxSGRLVHheRd1WA_FhsAMEV5pOwy08x8NaMG7ty8DQ@mail.gmail.com>
2020-03-05  9:44       ` Zdenek Kabelac [this message]
2020-03-04 19:15 ` pr-tracker-bot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=7493a5fb-e267-6aaa-286b-16472ac8a5ca@redhat.com \
    --to=zkabelac@redhat.com \
    --cc=agk@redhat.com \
    --cc=dm-devel@redhat.com \
    --cc=houtao1@huawei.com \
    --cc=linux-block@vger.kernel.org \
    --cc=mpatocka@redhat.com \
    --cc=shinichiro.kawasaki@wdc.com \
    --cc=snitzer@redhat.com \
    --cc=torvalds@linux-foundation.org \
    --cc=tytso@mit.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).