linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Russell King - ARM Linux <linux@arm.linux.org.uk>
To: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
Cc: Richard Cochran <richardcochran@gmail.com>,
	Mark Rutland <mark.rutland@arm.com>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"ksummit-2013-discuss@lists.linuxfoundation.org" 
	<ksummit-2013-discuss@lists.linuxfoundation.org>,
	Samuel Ortiz <sameo@linux.intel.com>,
	Pawel Moll <Pawel.Moll@arm.com>,
	Stephen Warren <swarren@wwwdotorg.org>,
	Catalin Marinas <Catalin.Marinas@arm.com>,
	Domenico Andreoli <cavokz@gmail.com>,
	"rob.herring@calxeda.com" <rob.herring@calxeda.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Olof Johansson <olof@lixom.net>,
	Dave P Martin <Dave.Martin@arm.com>,
	"linux-arm-kernel@lists.infradead.org" 
	<linux-arm-kernel@lists.infradead.org>,
	Ian Campbell <ian.campbell@citrix.com>
Subject: Re: DT bindings as ABI [was: Do we have people interested in device tree janitoring / cleanup?]
Date: Mon, 29 Jul 2013 19:16:07 +0100	[thread overview]
Message-ID: <20130729181607.GM24642@n2100.arm.linux.org.uk> (raw)
In-Reply-To: <20130729175400.GB15861@obsidianresearch.com>

On Mon, Jul 29, 2013 at 11:54:00AM -0600, Jason Gunthorpe wrote:
> There is no way I can possibly ship a product with a DT that is
> finished. I can't tie my company's product release cycles to the whims
> of the kernel community.
> 
> So embedded people are going to ship with unfinished DT and upgrade
> later. They have to. There is no choice. Stable DT doesn't change
> anything unless you can create perfect stable bindings for a new SOC
> instantaneously.
> 
> This is where I see the whole disconnect in this
> discussion. General-purpose and embedded are *DIFFERENT* users, and
> they have different use-cases and different needs.

We have had for the last 20 odd years a stable kernel syscall ABI, in
that syscalls which were around 20 years ago are still around today,
and still function according to how they're meant to.

However, some syscalls were found to be insufficient for todays needs,
so they got augmented.  For example, the uid/gid IDs used to be 16-bit.
We now have 32-bit versions, but the 16-bit versions are still there.
(Since ARM started out from early 1.0 times, it too has the 16-bit
syscalls, and _still_ does.)

So, "stable" is possible.

What has to be realised to achieve that it requires nothing more than
a "keep existing stuff working" attitude towards it.  When you need to
change the interface, you supplement it, leaving the old version to
work in the same manner that it used to (yes, you should choose to
implement the old interfaces using the new stuff, just like we support
the 16-bit UID calls but internally deal with 32-bit UIDs.)

What does it take?  Good practice, care, thought and planning.  All
the qualities which should already be present for kernel _engineers_.
Not an "lets create something for me, I don't care about anyone else"
attitude.

We can draw the line at an interface becoming stable in exactly the
same way that we do every other "stable" interface like syscalls - if
it's in a -final kernel, then it has been released at that point as a
stable interface to the world.  That's how syscalls are dealt with -
if a syscall is supported by a -final kernel, then that interface
immediately becomes part of the userland ABI and can't be changed or
deleted without some really serious thought, a migration path, and
sufficient (which means many years) warning to users that it's obsolete.

If that is followed, then there is absolutely no reason why a "Stable
DT" is not possible - one which it's possible to write a DT file today,
and it should still work in 20 years time with updated kernels.  That's
what a stable interface _should_ allow, and this is what DT _should_ be.

It should be possible to say "I have a XYZ ethernet device, it is
hooked up like this, uses this interrupt" etc and that same way work
in 20 years time to describe exactly the same connections.

Sure, we can create a "staging" directory for stuff which we want to
merge but is not deemed to be properly fit for the kernel, and deem
_that_ stuff to be unstable - just like drivers/stable.  Maybe some
of it can live in drivers/stable too...

  reply	other threads:[~2013-07-29 18:18 UTC|newest]

Thread overview: 142+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-25 16:09 DT bindings as ABI [was: Do we have people interested in device tree janitoring / cleanup?] Olof Johansson
2013-07-25 17:57 ` Mark Rutland
2013-07-25 18:05   ` Stephen Warren
2013-07-25 18:25     ` Olof Johansson
2013-07-25 18:50       ` Stephen Warren
2013-07-25 19:30       ` [Ksummit-2013-discuss] " Mark Brown
2013-07-25 18:29     ` Mark Rutland
2013-07-25 18:48       ` Richard Cochran
2013-07-25 18:53         ` Stephen Warren
2013-07-25 21:41           ` Domenico Andreoli
2013-07-26  4:43           ` Richard Cochran
2013-07-25 21:37         ` Jason Gunthorpe
2013-07-26  4:54           ` Richard Cochran
2013-07-26 13:42             ` Rob Herring
2013-07-26 17:15             ` Jason Gunthorpe
2013-07-27  8:48               ` Richard Cochran
2013-07-27 10:40                 ` [Ksummit-2013-discuss] " Mark Brown
2013-07-27 17:37                   ` Richard Cochran
2013-07-27 17:57                     ` David Lang
2013-07-27 18:17                       ` Richard Cochran
2013-07-28 11:27                     ` Mark Brown
2013-07-29 17:54                 ` Jason Gunthorpe
2013-07-29 18:16                   ` Russell King - ARM Linux [this message]
2013-07-29 18:40                     ` Jason Gunthorpe
2013-07-27  8:53               ` Richard Cochran
2013-07-27 10:20                 ` Tomasz Figa
2013-07-27 11:36                 ` [Ksummit-2013-discuss] " Mark Brown
2013-07-27 18:07                   ` Richard Cochran
2013-07-28 12:10                     ` Mark Brown
2013-07-26  8:01           ` Richard Cochran
2013-07-26  9:42             ` [Ksummit-2013-discuss] " David Woodhouse
2013-07-26 13:09               ` Richard Cochran
2013-07-26 13:14                 ` Russell King - ARM Linux
2013-07-27 15:28                   ` David Gibson
2013-07-26 13:27                 ` Jason Cooper
2013-07-26 13:38                   ` Russell King - ARM Linux
2013-07-26 13:45                     ` Jason Cooper
2013-07-26 13:50                       ` David Woodhouse
2013-07-26 13:59                         ` Jason Cooper
2013-07-26 13:41                   ` David Woodhouse
2013-07-26 13:47                     ` Jason Cooper
2013-07-26 14:14                     ` jonsmirl
2013-07-26 14:16                       ` David Woodhouse
2013-07-26 14:21                       ` Russell King - ARM Linux
2013-07-26 14:39                         ` jonsmirl
2013-07-26 14:40                         ` Mark Brown
2013-07-29 15:32                           ` Matt Porter
2013-07-27 15:19                         ` David Gibson
2013-07-27 19:37                         ` Grant Likely
2013-07-27  9:16                       ` Ming Lei
2013-07-26 14:10                 ` Mark Brown
2013-07-26 15:49                   ` Olof Johansson
2013-07-26 16:36                     ` Rob Herring
2013-07-27  4:57                       ` Richard Cochran
2013-07-27  5:04                     ` Richard Cochran
2013-07-27  9:51                       ` Tomasz Figa
2013-07-27 10:24                         ` Arend van Spriel
2013-07-27 10:34                           ` Arend van Spriel
2013-07-27 11:09                             ` Russell King - ARM Linux
2013-07-27 10:36                           ` Tomasz Figa
2013-07-27 10:59                             ` Arend van Spriel
2013-07-27 19:45                               ` Grant Likely
2013-07-27 20:01                                 ` jonsmirl
2013-07-27 20:03                                   ` David Woodhouse
2013-07-27 20:25                                   ` Grant Likely
2013-07-28  3:28                                     ` Grant Likely
2013-07-28  5:11                                       ` James Bottomley
2013-07-28  5:13                                         ` Grant Likely
2013-07-30  1:44                                         ` David Gibson
2013-07-30  2:15                                           ` jonsmirl
2013-07-30  3:29                                             ` David Gibson
2013-07-30  4:35                                               ` Grant Likely
2013-07-30  8:39                                                 ` Maxime Ripard
2013-07-30 16:30                                             ` Stephen Warren
2013-07-30 17:27                                               ` John W. Linville
2013-07-30 16:40                                           ` Stephen Warren
2013-07-29  9:19                                   ` Arend van Spriel
2013-07-29 10:16                                     ` Arend van Spriel
2013-07-27 18:31                           ` Richard Cochran
2013-07-27 18:51                             ` Tomasz Figa
2013-07-27 19:22                               ` jonsmirl
2013-07-28  8:56                               ` Richard Cochran
2013-07-28  9:12                                 ` Tomasz Figa
2013-07-28 13:19                                   ` Richard Cochran
2013-07-28 13:39                                     ` Tomasz Figa
2013-07-28 14:09                                       ` jonsmirl
2013-07-28 15:35                                         ` Richard Cochran
2013-07-28 15:50                                           ` jonsmirl
2013-07-28 17:41                                             ` Mark Brown
2013-07-28 21:46                                           ` David Gibson
2013-07-28 15:30                                       ` Richard Cochran
2013-07-29  7:31                                     ` Maxime Ripard
2013-07-29 18:38                                       ` Richard Cochran
2013-07-29 18:51                                         ` Richard Cochran
2013-07-29 18:05                               ` Jason Gunthorpe
2013-07-29 18:27                                 ` Russell King - ARM Linux
2013-07-29 22:20                                 ` David Gibson
2013-07-29 23:14                                   ` Jason Gunthorpe
2013-07-29 23:49                                     ` David Gibson
2013-07-31 10:37                               ` Maxime Bizon
2013-07-31 10:59                                 ` Tomasz Figa
2013-07-31 15:07                                   ` Richard Cochran
2013-07-31 15:23                                     ` Tomasz Figa
2013-07-31 19:12                                       ` Richard Cochran
2013-07-31 19:29                                         ` Tomasz Figa
2013-07-31 20:00                                           ` Richard Cochran
2013-07-31 20:14                                             ` Russell King - ARM Linux
2013-07-31 20:37                                               ` jonsmirl
2013-07-31 20:48                                                 ` Russell King - ARM Linux
2013-07-31 21:26                                                   ` jonsmirl
2013-08-01  9:57                                                     ` Arend van Spriel
2013-08-01 10:09                                                       ` Mark Brown
2013-08-01 10:18                                                     ` David Woodhouse
2013-08-01 13:34                                                       ` jonsmirl
2013-08-01 13:43                                                         ` jonsmirl
2013-08-01 13:48                                                       ` Rob Herring
2013-08-02  3:50                                                     ` David Gibson
2013-08-13 23:32                                                       ` H. Peter Anvin
2013-08-14  1:49                                                         ` Guenter Roeck
2013-08-14 14:46                                                           ` H. Peter Anvin
2013-08-02  8:49                                               ` Tony Lindgren
2013-07-29 15:45                     ` Matt Porter
2013-07-31 12:58   ` Ian Campbell
2013-07-25 17:59 ` Stephen Warren
2013-07-25 19:11 ` Rob Herring
2013-07-25 19:31   ` Jason Cooper
2013-07-25 20:04     ` [Ksummit-2013-discuss] " Mark Brown
2013-07-25 20:08       ` Jason Cooper
2013-07-25 20:16     ` Rob Herring
2013-07-25 20:32       ` Jason Cooper
2013-07-25 21:53         ` [Ksummit-2013-discuss] " Ben Hutchings
2013-07-26  0:36           ` Stephen Warren
2013-07-26 12:14           ` Jason Cooper
2013-07-26  0:34       ` Stephen Warren
2013-07-26 22:11         ` Rob Herring
2013-07-25 23:18     ` Russell King - ARM Linux
2013-07-26  0:27       ` jonsmirl
2013-07-26 11:38         ` Jason Cooper
2013-07-26 14:08           ` [Ksummit-2013-discuss] " David Woodhouse
2013-07-26 13:57       ` Mark Brown
2013-07-26 10:55   ` Mark Brown
2013-07-28  4:39 ` Grant Likely

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=20130729181607.GM24642@n2100.arm.linux.org.uk \
    --to=linux@arm.linux.org.uk \
    --cc=Catalin.Marinas@arm.com \
    --cc=Dave.Martin@arm.com \
    --cc=Pawel.Moll@arm.com \
    --cc=cavokz@gmail.com \
    --cc=devicetree@vger.kernel.org \
    --cc=ian.campbell@citrix.com \
    --cc=jgunthorpe@obsidianresearch.com \
    --cc=ksummit-2013-discuss@lists.linuxfoundation.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=olof@lixom.net \
    --cc=richardcochran@gmail.com \
    --cc=rob.herring@calxeda.com \
    --cc=sameo@linux.intel.com \
    --cc=swarren@wwwdotorg.org \
    /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).