linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC] Summarizing deprecations
@ 2014-05-31  2:04 Sune Mølgaard
  2014-05-31  2:21 ` Greg KH
  2014-05-31  3:00 ` Steven Rostedt
  0 siblings, 2 replies; 7+ messages in thread
From: Sune Mølgaard @ 2014-05-31  2:04 UTC (permalink / raw)
  To: linux-kernel; +Cc: gregkh

Dear list,

In order to keep this non-code RFC brief, allow me to list a few
observations and then a proposal, that I shall be happy to engage in,
but for which I'd like a bit of guidance:

1) System calls get superseded and deprecated on a regular basis
2) Keeping track of deprecations can be difficult
3) HW vendors with out-of-tree drivers allocate too few resources to
handle 1) and 2)
4) Out-of-tree drivers usually fail to take deprecations into
consideration, and then breaking when deprecation leads to removal

A knee-jerk reaction to 3) might be that they all need to shape up, but
experience seems to relegate that reaction to the pile of wishful
thoughts that lead nowhere.

IIRC, Greg K-H once tried to extend an offer to HW vendors to the effect
of helping with opening their code base, with the reward of helping
write drivers. I don't know what came of it, but I imagine that I would
have heard, if it was a roaring success.

As a user first, and only secondly a developer, I'd like my HW to work,
and finding fully supported gear can still be hard if not impossible,
but I imagine that if we had a central place to list deprecations (and,
possibly, "victims" of them), a lot of grief could be avoided by simply
pointing vendors to that central resource and saying "here is what you
need to know for your driver to keep working - now get to it".

As said, I'm more of a user, so I may be unaware of practices already in
place to mark commits as causing deprecation, but if such practices
exist, I should be able to whip up some sort of script that periodically
does a "git log" and collates deprecations into some format that could
then be parsed by a bash script grepping various out-of-tree code bases
and notifies the relevant parties.

I'd be willing to have a go at such functionality as well as hosting the
info (at least until some vendor realizes the value and donates to it),
but I'd hate to go off into too many wrong directions, if those can be
avoided by feedback here.

Best regards,

Sune Mølgaard

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [RFC] Summarizing deprecations
  2014-05-31  2:04 [RFC] Summarizing deprecations Sune Mølgaard
@ 2014-05-31  2:21 ` Greg KH
  2014-05-31  2:56   ` Sune Mølgaard
  2014-05-31  3:00 ` Steven Rostedt
  1 sibling, 1 reply; 7+ messages in thread
From: Greg KH @ 2014-05-31  2:21 UTC (permalink / raw)
  To: Sune Mølgaard; +Cc: linux-kernel

On Sat, May 31, 2014 at 04:04:05AM +0200, Sune Mølgaard wrote:
> Dear list,
> 
> In order to keep this non-code RFC brief, allow me to list a few
> observations and then a proposal, that I shall be happy to engage in,
> but for which I'd like a bit of guidance:
> 
> 1) System calls get superseded and deprecated on a regular basis
> 2) Keeping track of deprecations can be difficult
> 3) HW vendors with out-of-tree drivers allocate too few resources to
> handle 1) and 2)
> 4) Out-of-tree drivers usually fail to take deprecations into
> consideration, and then breaking when deprecation leads to removal
> 
> A knee-jerk reaction to 3) might be that they all need to shape up, but
> experience seems to relegate that reaction to the pile of wishful
> thoughts that lead nowhere.

Not true at all.

> IIRC, Greg K-H once tried to extend an offer to HW vendors to the effect
> of helping with opening their code base, with the reward of helping
> write drivers. I don't know what came of it, but I imagine that I would
> have heard, if it was a roaring success.

It was a success.  Do you know of any hardware that Linux currently does
not support that a vendor wants a Linux driver for it?  I do not.

If you do, send them to me, I'll be glad to work on it, much like all of
the other drivers we have worked on in this program over the years.

Of course, if the vendor doesn't want a Linux driver for their hardware,
well, there's nothing anyone of us can do about that.

> As said, I'm more of a user, so I may be unaware of practices already in
> place to mark commits as causing deprecation, but if such practices
> exist, I should be able to whip up some sort of script that periodically
> does a "git log" and collates deprecations into some format that could
> then be parsed by a bash script grepping various out-of-tree code bases
> and notifies the relevant parties.

Have you looked at the kernel backport group and scripts?  They do much
of this already, automatically, backporting newer drivers to older
kernel versions for people stuck at those releases.  I think what you
want is already completed...

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [RFC] Summarizing deprecations
  2014-05-31  2:21 ` Greg KH
@ 2014-05-31  2:56   ` Sune Mølgaard
  2014-05-31  3:37     ` Greg KH
  0 siblings, 1 reply; 7+ messages in thread
From: Sune Mølgaard @ 2014-05-31  2:56 UTC (permalink / raw)
  To: Greg KH; +Cc: linux-kernel

Hi Greg, and thank you for correcting me!

Greg KH wrote:
[snip]
> Not true at all.

I trust you to know enough to be correct, but as we speak, I have at
least 3 pieces of hardware, whose (out-of-tree) drivers regularly fail
to compile come a new rc1. I usually manage to find or create a patch,
but the breakage is usually due to months-old deprecations of system
calls that finally (and understandably) where removed in those new rc1s.

My experience is that vendors are not only blissfully aware of such
changes until removal, but will generally only support final kernel
versions - even if the deprecation/removal was announced several
versions earlier.

[snip]
> It was a success.  Do you know of any hardware that Linux currently does
> not support that a vendor wants a Linux driver for it?  I do not.
> 
> If you do, send them to me, I'll be glad to work on it, much like all of
> the other drivers we have worked on in this program over the years.
> 
> Of course, if the vendor doesn't want a Linux driver for their hardware,
> well, there's nothing anyone of us can do about that.

My sincerest apologies for remembering the project incorrectly!

It was, as is apparent from your answer, about bringing Linux drivers
about for hardware that didn't have even an attempt at a Linux driver
beforehand, and I, mistakenly, remembered it as a completely different
offer.

Sorry for the confusion, and most well-deserved kudos for the success!

> Have you looked at the kernel backport group and scripts?  They do much
> of this already, automatically, backporting newer drivers to older
> kernel versions for people stuck at those releases.  I think what you
> want is already completed...

Whereas I thank you for those pointers, I now realize that I failed to
mention a few crucial details.

My "knee-jerk" comment above was based on a rather important point that
I failed to mention, namely that what I was talking about was drivers
employing closed binary blobs, obviously and naturally precluding them
from mainlining.

Based as this is upon my personal experience, even if a vendor that does
provide an out-of-tree driver would like to mainline and get rid of the
binary blob, some components of their board may preclude them from doing
so. Case in point would be HighPoint, who provides a driver for the
consumer-level board that I own, and have been rather forthcoming with
regards to listening and responding to my gripes about their driver
failing to compile or function with newer kernels, but excuse themselves
for not going full OSS by demands from sub-vendors of particular chips.

nVidia is a whole other kettle of fish with them referring to a failure
of their driver on certain laptop configurations being due to a kernel
bug, even though at least some systems, including my own, works if one
updates a number of system calls in the open part of their driver to the
"new" call.

Still, I imagine that you recommendation for the backport group and
scripts means that they actually "scan" for such changes, and I shall
contact them shortly, but I wanted to clarify what I meant, and also
apologize for my misremembering the scope of the project that I referred to.
> 
> thanks,
> 
> greg k-h

My thanks as well,

Sune Mølgaard

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [RFC] Summarizing deprecations
  2014-05-31  2:04 [RFC] Summarizing deprecations Sune Mølgaard
  2014-05-31  2:21 ` Greg KH
@ 2014-05-31  3:00 ` Steven Rostedt
  1 sibling, 0 replies; 7+ messages in thread
From: Steven Rostedt @ 2014-05-31  3:00 UTC (permalink / raw)
  To: Sune Mølgaard; +Cc: linux-kernel, gregkh

On Sat, May 31, 2014 at 04:04:05AM +0200, Sune Mølgaard wrote:
> 
> As a user first, and only secondly a developer, I'd like my HW to work,
> and finding fully supported gear can still be hard if not impossible,
> but I imagine that if we had a central place to list deprecations (and,
> possibly, "victims" of them), a lot of grief could be avoided by simply
> pointing vendors to that central resource and saying "here is what you
> need to know for your driver to keep working - now get to it".

We had that. It was in the Documentation directory called "feature-removal.txt".
But that was always out of date and caused lots of unnecessary conflicts
by the few that added stuff to it that it became more of a pain to have than
it was worth. And commit 9c0ece069b32e8e122aea71aa47181c10eb85ba7 nuked it.

-- Steve


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [RFC] Summarizing deprecations
  2014-05-31  2:56   ` Sune Mølgaard
@ 2014-05-31  3:37     ` Greg KH
  2014-06-02 23:12       ` Sune Mølgaard
  0 siblings, 1 reply; 7+ messages in thread
From: Greg KH @ 2014-05-31  3:37 UTC (permalink / raw)
  To: Sune Mølgaard; +Cc: linux-kernel

On Sat, May 31, 2014 at 04:56:34AM +0200, Sune Mølgaard wrote:
> Hi Greg, and thank you for correcting me!
> 
> Greg KH wrote:
> [snip]
> > Not true at all.
> 
> I trust you to know enough to be correct, but as we speak, I have at
> least 3 pieces of hardware, whose (out-of-tree) drivers regularly fail
> to compile come a new rc1. I usually manage to find or create a patch,
> but the breakage is usually due to months-old deprecations of system
> calls that finally (and understandably) where removed in those new rc1s.

What specific drivers are they?  Why are the drivers out of the tree?
I'll gladly add them to the drivers/staging/ directory as long as the
license of them allows me to do so.  That way api changes will happen
automatically for them.

> My experience is that vendors are not only blissfully aware of such
> changes until removal, but will generally only support final kernel
> versions - even if the deprecation/removal was announced several
> versions earlier.

In other words, no matter what we do, things outside of the kernel tree
will break.  This is on the vendor, not us now.  They know where to find
us, we have no idea who they are.

> > Have you looked at the kernel backport group and scripts?  They do much
> > of this already, automatically, backporting newer drivers to older
> > kernel versions for people stuck at those releases.  I think what you
> > want is already completed...
> 
> Whereas I thank you for those pointers, I now realize that I failed to
> mention a few crucial details.
> 
> My "knee-jerk" comment above was based on a rather important point that
> I failed to mention, namely that what I was talking about was drivers
> employing closed binary blobs, obviously and naturally precluding them
> from mainlining.

Then they are on their own as they are violating our license when
redistributing such a monstrosity.  They know the issues involved, and
are willing to pay the price to do such a thing.  There's nothing we can
do about them, sorry.  Go bug the vendor, not us.

And buy better hardware next time :)

greg k-h

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [RFC] Summarizing deprecations
  2014-05-31  3:37     ` Greg KH
@ 2014-06-02 23:12       ` Sune Mølgaard
  2014-06-03  0:15         ` Greg KH
  0 siblings, 1 reply; 7+ messages in thread
From: Sune Mølgaard @ 2014-06-02 23:12 UTC (permalink / raw)
  To: Greg KH; +Cc: linux-kernel

Hi again, and thank you still for interacting,

Greg KH wrote:
> What specific drivers are they?  Why are the drivers out of the tree?
> I'll gladly add them to the drivers/staging/ directory as long as the
> license of them allows me to do so.  That way api changes will happen
> automatically for them.

For at least one of the manufacturers, I have already pointed them in
your direction with regards to the previously mentioned project. They
lamented that they would love to take you up on your offer, but that
their legal department was less than enthusiastic, based on fear of
repercussions from their chip suppliers.

This particular company could be a candidate for positive nudging from
stronger entities than myself, as just one guy.

> In other words, no matter what we do, things outside of the kernel tree
> will break.  This is on the vendor, not us now.  They know where to find
> us, we have no idea who they are.

I do not propose to adopt backwards compatibility, but see below (as
well as my initial proposal, with a thought to my subsequent
clarifications).

> Then they are on their own as they are violating our license when
> redistributing such a monstrosity.  They know the issues involved, and
> are willing to pay the price to do such a thing.  There's nothing we can
> do about them, sorry.  Go bug the vendor, not us.

I wish it was so simple. My experience has been that they are, as you
say, on their own, but in a much more poignant sense that you suggested.

First of all, many *consumer* hardware vendors will be more than happy
to be "on their own" wrt to Linux and keep their focus on Windows. This
is their choice to make, but in certain circumstances, we do happen to
have a need for interaction (OpenCL support in graphics drivers, for
instance).

What I seem to have ascertained is, that those, major, players in the
field will, usually, assign a very low number of people to the task of
maintaining compatibility with newer kernels, with no corporate support
at all.

This, obviously, provides the raison d'etre for the reverse-engineered
open-source drivers, but as we stand in the here and now, those have a
lot of work to do to come up to speed.

We agree completely, that the way to go is for the vendors to engage
with the OSS driver hackers, but in the interim, some of us will still
need their closed drivers, and this is where my initial RFC came from:

Compilation of the closed drivers, as well as (as seen in a recent
nVidia case) functionality, will be impacted by system call changes.

You are fully correct that we shouldn't keep old and deprecated
functionality around for the sake of those who choose to distribute
closed drivers.

It stands to reason, though, that there may not only be legal obstacles
to supporting OSS drivers, but also that corporate resources allocated
to keeping their "monstrosity" current may be severely lacking.

As a pragmatic *interim* solution, I therefore stand by my initial
proposal - both as a sign of being reasonably, but also for that level
of reasonableness to be a fulcrum for expecting signs (and results) of
good will to come from them as well.

As it stands, I have authored a number of patches that I have posted to
the nVidia forums - most based on deeper analysis by people in the same
forums, but I happen to think that if my proposal gained traction,
nVidia could actually do that work themselves - facilitating ease of use
for those of us who rely on their drivers while we wait for the dawn of
the revolution...

At any rate, it should preclude a marketing drone from referring to an
unnamed engineer classifying a problem as a bug in the kernel, which is
obviously, in reality, caused by a failure to use a new form of ACPI call.

> 
> And buy better hardware next time :)

Sure - do you think a Kickstarter campaign to entice Danish resellers to
stock better hardware (and advertise it as having OSS Linux drivers)
against profit margins, possibly with a secondary goal of sending such
hardware my way, could get any traction, or did you just, unbecomingly,
get elitist on me?

Sincerely,

Sune Mølgaard

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [RFC] Summarizing deprecations
  2014-06-02 23:12       ` Sune Mølgaard
@ 2014-06-03  0:15         ` Greg KH
  0 siblings, 0 replies; 7+ messages in thread
From: Greg KH @ 2014-06-03  0:15 UTC (permalink / raw)
  To: Sune Mølgaard; +Cc: linux-kernel

On Tue, Jun 03, 2014 at 01:12:20AM +0200, Sune Mølgaard wrote:
> Hi again, and thank you still for interacting,
> 
> Greg KH wrote:
> > What specific drivers are they?  Why are the drivers out of the tree?
> > I'll gladly add them to the drivers/staging/ directory as long as the
> > license of them allows me to do so.  That way api changes will happen
> > automatically for them.
> 
> For at least one of the manufacturers, I have already pointed them in
> your direction with regards to the previously mentioned project. They
> lamented that they would love to take you up on your offer, but that
> their legal department was less than enthusiastic, based on fear of
> repercussions from their chip suppliers.
> 
> This particular company could be a candidate for positive nudging from
> stronger entities than myself, as just one guy.

Feel free to follow up with me about this company and contacts
privately, if you feel I can help out there.

> It stands to reason, though, that there may not only be legal obstacles
> to supporting OSS drivers, but also that corporate resources allocated
> to keeping their "monstrosity" current may be severely lacking.

Take away the legal issues (their side, not ours), and then merge the
driver into the kernel and then all of those maintenance issues go
away for the most part, allowing a single developer to just baby-sit the
driver to ensure nothing goes wrong on newer kernel releases.

That's the Linux kernel development model, it's worked really well for
the past 20+ years, creating something that works on more hardware than
any other operating system ever has, so we must be doing something right
here with the model :)

greg k-h

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2014-06-03  0:12 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-05-31  2:04 [RFC] Summarizing deprecations Sune Mølgaard
2014-05-31  2:21 ` Greg KH
2014-05-31  2:56   ` Sune Mølgaard
2014-05-31  3:37     ` Greg KH
2014-06-02 23:12       ` Sune Mølgaard
2014-06-03  0:15         ` Greg KH
2014-05-31  3:00 ` Steven Rostedt

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).