From: Andy Walls <awalls@md.metrocast.net>
To: Devin Heitmueller <dheitmueller@kernellabs.com>
Cc: Stefan Richter <stefanr@s5r6.in-berlin.de>,
Mauro Carvalho Chehab <mchehab@infradead.org>,
Hans Verkuil <hverkuil@xs4all.nl>, Jesper Juhl <jj@chaosbits.net>,
LKML <linux-kernel@vger.kernel.org>,
trivial@kernel.org, linux-media@vger.kernel.org,
ceph-devel@vger.kernel.org, Sage Weil <sage@newdream.net>
Subject: Re: [RFC] Don't use linux/version.h anymore to indicate a per-driver version - Was: Re: [PATCH 03/37] Remove unneeded version.h includes from include/
Date: Fri, 24 Jun 2011 17:04:08 -0400 [thread overview]
Message-ID: <1308949448.2093.20.camel@morgan.silverblock.net> (raw)
In-Reply-To: <BANLkTimj-oEDvWxMao6zJ_sudUntEVjO1w@mail.gmail.com>
On Fri, 2011-06-24 at 14:48 -0400, Devin Heitmueller wrote:
> On Fri, Jun 24, 2011 at 2:34 PM, Stefan Richter
> <stefanr@s5r6.in-berlin.de> wrote:
> > If the "driver version" is in fact an ABI version, then the driver author
> > should really increase it only when ABI behavior is changed (and only if
> > the behavior change can only be communicated by version number --- e.g.
> > addition of an ioctl is not among such reasons). And the author should
> > commit behavior changing implementation and version number change in a
> > single changeset.
> >
> > And anybody who backmerges such an ABI behavior change into another kernel
> > branch (stable, longterm, distro...) must backmerge the associated version
> > number change too.
> >
> > Of course sometimes people realize this only after the fact. Or driver
> > authors don't have a clear understanding of ABI versioning to begin with.
> > I am saying so because I had to learn it too; I certainly wasn't born
> > with an instinct knowledge how to do it properly.
> >
> > (Disclaimer: I have no stake in drivers/media/ ABIs. But I am involved
> > in maintaining a userspace ABI elsewhere in drivers/firewire/, and one of
> > the userspace libraries that use this ABI.)
>
> Hi Stefan,
>
> To be clear, I don't think anyone is actually proposing that the
> driver version number really be used as any form of formal "ABI
> versioning" scheme. In almost all cases, it's so the application can
> know to *not* do something is the driver is older than X.
MythTV, for example, used to use the driver version to work around old
VBI bugs and MPEG encoder quirks that the older version of the driver
may not have known how to handle:
https://github.com/MythTV/mythtv/blob/b98d3a98e3187000ae652df5ffebe2beb5221ba7/mythtv/libs/libmythtv/mpegrecorder.cpp#L335
But for newer versions, MythTV could avoid using its own odd hacks.
The bleeding edge MythTV now has most of these removed.
> Given all the cases I've seen, it doesn't really hurt anything if the
> driver contains a fix from newer than X, aside from the fact that the
> application won't take advantage of whatever feature/functionality the
> fix made work. In other words, I think from a backport standpoint, it
> usually doesn't *hurt* anything if a fix is backported without the
> version being incremented, aside from applications not knowing that
> the feature/fix is present.
That seems to be the case to me.
> Really, this is all about applications being able to jam a hack into
> their code that translates to "don't call this ioctl() with some
> particular argument if it's driver W less than version X, because the
> driver had a bug that is likely to panic the guy's PC".
Well, not even panics per se, but some thing like the VBI is broken, or
the volume control doesn't work, IR blaster is works for this version,
or something else stupid that is very visible to the end user.
I also use the driver version for troubleshooting problem with users. I
roughly know what wasn't working in what version of the cx18 and ivtv
drivers. If the end user can tell me the driver version (using v4l2-ctl
--log-status) along with his symptoms, it makes my life easier. Being
able to efficiently help the end user is a win for both me and the end
user.
> Sure, it's a
> crummy solution, but at this point it's the best that we have got
Yup. We do have crummier solutions:
Telling the end user to read their kernel source code to figure out what
bugs their driver release has, and to then adjust their application
command line arguments accordingly. ;)
Regards,
Andy
next prev parent reply other threads:[~2011-06-24 21:10 UTC|newest]
Thread overview: 107+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-23 21:51 [PATCH 00/37] Remove unneeded version.h includes (and add where needed) Jesper Juhl
2011-06-23 21:54 ` [PATCH 01/37] Remove unneeded version.h includes from sound/ Jesper Juhl
2011-06-24 9:29 ` Takashi Iwai
2011-06-24 9:29 ` Takashi Iwai
2011-06-23 21:56 ` [PATCH 02/37] Remove unneeded version.h include from lib/ Jesper Juhl
2011-06-23 21:58 ` [PATCH 03/37] Remove unneeded version.h includes from include/ Jesper Juhl
2011-06-23 22:15 ` Sage Weil
2011-06-24 11:21 ` [RFC] Don't use linux/version.h anymore to indicate a per-driver version - Was: " Mauro Carvalho Chehab
2011-06-24 11:26 ` Hans Verkuil
2011-06-24 12:20 ` Devin Heitmueller
2011-06-24 12:20 ` Devin Heitmueller
2011-06-24 13:29 ` Mauro Carvalho Chehab
2011-06-24 13:45 ` Devin Heitmueller
2011-06-24 13:45 ` Devin Heitmueller
2011-06-24 13:54 ` Hans Verkuil
2011-06-24 14:37 ` Mauro Carvalho Chehab
2011-06-24 18:25 ` [PATCH] [media] Stop using linux/version.h on most drivers Mauro Carvalho Chehab
2011-06-25 10:09 ` Hans Verkuil
2011-06-25 12:14 ` Mauro Carvalho Chehab
2011-06-25 12:14 ` Mauro Carvalho Chehab
2011-06-27 0:59 ` Laurent Pinchart
2011-06-24 18:34 ` [RFC] Don't use linux/version.h anymore to indicate a per-driver version - Was: Re: [PATCH 03/37] Remove unneeded version.h includes from include/ Stefan Richter
2011-06-24 18:48 ` Devin Heitmueller
2011-06-24 18:48 ` Devin Heitmueller
2011-06-24 21:04 ` Andy Walls [this message]
2011-06-24 21:20 ` Stefan Richter
2011-06-24 21:22 ` Devin Heitmueller
2011-06-24 21:22 ` Devin Heitmueller
2011-06-24 21:49 ` Mauro Carvalho Chehab
2011-06-24 22:39 ` Stefan Richter
2011-06-24 22:39 ` Stefan Richter
2011-06-24 23:02 ` Mauro Carvalho Chehab
2011-06-24 22:16 ` Mauro Carvalho Chehab
2011-06-24 22:57 ` Andy Walls
2011-06-24 21:10 ` Stefan Richter
2011-06-24 21:10 ` Stefan Richter
2011-06-24 21:52 ` Mauro Carvalho Chehab
2011-06-24 21:52 ` Mauro Carvalho Chehab
2011-06-24 21:44 ` Mauro Carvalho Chehab
2011-06-29 21:54 ` Mauro Carvalho Chehab
2011-06-23 21:59 ` [PATCH 04/37] Remove unneeded version.h includes from fs/ Jesper Juhl
2011-06-23 21:59 ` Jesper Juhl
2011-06-24 13:26 ` Bob Copeland
2011-06-24 13:26 ` Bob Copeland
2011-06-23 22:00 ` [PATCH 05/37] Remove unneeded version.h include from arch/x86/ Jesper Juhl
2011-06-23 22:07 ` [PATCH 06/37] Remove unneeded version.h includes from arch/mips/ Jesper Juhl
2011-08-02 10:22 ` Ralf Baechle
2011-06-23 22:08 ` [PATCH 07/37] Remove unneeded version.h includes from arch/arm/ Jesper Juhl
2011-06-23 22:08 ` Jesper Juhl
2011-06-23 23:01 ` Jiandong Zheng
2011-06-23 23:01 ` Jiandong Zheng
2011-06-23 23:02 ` JD (Jiandong) Zheng
2011-06-23 23:02 ` JD (Jiandong) Zheng
2011-06-23 22:09 ` [Drbd-dev] [PATCH 08/37] Remove unneeded version.h includes from drivers/block/ Jesper Juhl
2011-06-23 22:09 ` Jesper Juhl
2011-06-23 22:10 ` [PATCH 09/37] Remove unneeded version.h includes from drivers/input/ Jesper Juhl
2011-06-23 22:10 ` Jesper Juhl
2011-06-23 22:50 ` Mike Frysinger
2011-06-23 22:50 ` Mike Frysinger
2011-06-27 7:10 ` Hennerich, Michael
2011-06-27 19:00 ` Dmitry Torokhov
2011-06-27 19:00 ` Dmitry Torokhov
2011-06-23 22:11 ` [PATCH 10/37] Remove unneeded version.h includes from drivers/media/dvb/ Jesper Juhl
2011-06-23 22:14 ` [PATCH 11/37] Remove unneeded version.h includes (and add where needed) for drivers/media/radio/ Jesper Juhl
2011-06-23 22:17 ` [PATCH 12/37] Remove unneeded version.h includes (and add where needed) for drivers/media/video/ Jesper Juhl
2011-06-24 8:52 ` Laurent Pinchart
2011-06-23 22:21 ` [PATCH 13/37] Remove unneeded version.h includes from drivers/net/ Jesper Juhl
2011-06-24 9:40 ` David Miller
2011-06-24 9:40 ` David Miller
[not found] ` <alpine.LNX.2.00.1106232344480.17688-h2p7t3/P30RzeRGmFJ5qR7ZzlVVXadcDXqFh9Ls21Oc@public.gmane.org>
2011-06-23 22:26 ` [PATCH 14/37] Remove unneeded version.h includes from drivers/scsi/ Jesper Juhl
2011-06-23 22:26 ` Jesper Juhl
2011-06-23 22:30 ` [PATCH 15/37] Remove unneeded version.h includes from drivers/target/ Jesper Juhl
2011-06-23 22:31 ` [PATCH 16/37] Remove unneeded version.h includes (and add where needed) for drivers/usb/ Jesper Juhl
2011-06-27 8:20 ` Felipe Balbi
2011-06-27 8:49 ` Laurent Pinchart
2011-06-23 22:32 ` [PATCH 17/37] Remove unneeded version.h include from drivers/uwb/ Jesper Juhl
2011-06-23 22:35 ` [PATCH 18/37] Remove unneeded version.h includes from Jesper Juhl
2011-06-23 22:35 ` [PATCH 18/37] Remove unneeded version.h includes from drivers/video/ Jesper Juhl
2011-06-23 22:51 ` Mike Frysinger
2011-06-23 22:51 ` Mike Frysinger
2011-06-24 8:17 ` Paul Mundt
2011-06-24 8:17 ` Paul Mundt
2011-06-23 22:40 ` [PATCH 19/37] Remove unneeded version.h includes from drivers/staging/rtl*/ Jesper Juhl
2011-06-23 23:57 ` Larry Finger
2011-06-23 22:41 ` [PATCH 20/37] Remove unneeded version.h includes from drivers/staging/gma500/ Jesper Juhl
2011-06-23 23:17 ` Alan Cox
2011-07-07 10:42 ` Alan Cox
2011-06-23 22:42 ` [PATCH 21/37] Remove unneeded version.h includes from drivers/staging/ath6kl/ Jesper Juhl
2011-06-23 22:43 ` [PATCH 22/37] Remove unneeded version.h include from drivers/staging/bcm/headers.h Jesper Juhl
2011-06-23 22:44 ` [PATCH 23/37] Remove unneeded version.h include from drivers/staging/cxd2099/cxd2099.c Jesper Juhl
2011-06-23 22:47 ` [PATCH 24/37] Remove unneeded version.h include from drivers/staging/cxt1e1/sbecom_inline_linux.h Jesper Juhl
2011-06-23 22:51 ` [PATCH 25/37] Remove unneeded version.h includes (and add where needed) for drivers/staging/easycap/ Jesper Juhl
2011-06-23 22:52 ` [PATCH 26/37] Remove unneeded version.h include from drivers/staging/hv/hv_timesource.c Jesper Juhl
2011-06-23 22:53 ` [PATCH 27/37] Remove unneeded version.h includes from drivers/staging/lirc/ Jesper Juhl
2011-06-23 22:54 ` [PATCH 28/37] Remove unneeded version.h include from drivers/staging/mei/main.c Jesper Juhl
2011-06-23 22:56 ` [PATCH 29/37] Remove unneeded version.h includes from drivers/staging/msm/ Jesper Juhl
2011-06-24 1:47 ` David Brown
2011-06-23 22:58 ` [PATCH 30/37] Remove unneeded version.h include from drivers/staging/panel/panel.c Jesper Juhl
2011-06-23 23:00 ` [PATCH 31/37] Remove unneeded version.h include from drivers/staging/rts_pstor/rtsx.h Jesper Juhl
2011-06-23 23:01 ` [PATCH 32/37] Remove unneeded version.h includes from drivers/staging/speakup/ Jesper Juhl
2011-06-23 23:02 ` [PATCH 33/37] Remove unneeded version.h include from drivers/staging/tidspbridge/include/dspbridge/host_os.h Jesper Juhl
2011-06-23 23:04 ` [PATCH 34/37] Remove unneeded version.h includes (and add where needed) for drivers/tm6000/ Jesper Juhl
2011-06-23 23:05 ` [PATCH 35/37] Remove unneeded version.h includes from drivers/staging/wlags49_h2/ Jesper Juhl
2011-06-23 23:06 ` [PATCH 36/37] Remove unneeded version.h include from drivers/staging/wlan-ng/prism2sta.c Jesper Juhl
2011-06-23 23:08 ` [PATCH 37/37] Remove unneeded version.h includes from drivers/staging/xgifb/ Jesper Juhl
2011-06-24 9:13 ` [PATCH 00/37] Remove unneeded version.h includes (and add where needed) Jiri Kosina
2011-06-24 10:48 ` Jesper Juhl
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=1308949448.2093.20.camel@morgan.silverblock.net \
--to=awalls@md.metrocast.net \
--cc=ceph-devel@vger.kernel.org \
--cc=dheitmueller@kernellabs.com \
--cc=hverkuil@xs4all.nl \
--cc=jj@chaosbits.net \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=mchehab@infradead.org \
--cc=sage@newdream.net \
--cc=stefanr@s5r6.in-berlin.de \
--cc=trivial@kernel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.