linux-api.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* It is correct to introduce new sys calls to stable versions?
@ 2024-08-20 13:19 Miao Wang
  2024-08-20 13:29 ` Cyril Hrubis
  2024-08-20 13:36 ` Greg Kroah-Hartman
  0 siblings, 2 replies; 10+ messages in thread
From: Miao Wang @ 2024-08-20 13:19 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Xi Ruoyao, Huacai Chen, loongarch, Sasha Levin, stable,
	WANG Xuerui, linux-api

Hi, Greg

I saw you have included commit 7697a0fe0154 ("LoongArch: Define
__ARCH_WANT_NEW_STAT in unistd.h") in your stable trees, which
actually introduced new sys calls newfstatat and fstat to Loongarch.

I wonder if it is correct to add new syscalls, which actually changes
the kernel features, in stable releases, as it might confuse downstream
developers because they may assume the existence of a certain feature
after a certain version.

Cheers,

Miao Wang

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

* Re: It is correct to introduce new sys calls to stable versions?
  2024-08-20 13:19 It is correct to introduce new sys calls to stable versions? Miao Wang
@ 2024-08-20 13:29 ` Cyril Hrubis
  2024-08-20 13:36 ` Greg Kroah-Hartman
  1 sibling, 0 replies; 10+ messages in thread
From: Cyril Hrubis @ 2024-08-20 13:29 UTC (permalink / raw)
  To: Miao Wang
  Cc: Greg Kroah-Hartman, Xi Ruoyao, Huacai Chen, loongarch,
	Sasha Levin, stable, WANG Xuerui, linux-api

Hi!
> I wonder if it is correct to add new syscalls, which actually changes
> the kernel features, in stable releases, as it might confuse downstream
> developers because they may assume the existence of a certain feature
> after a certain version.

Just a side note, one thing I've learned by maintaining the Linux Test
Project is that the kernel version is a lie. You should not use the
kernel version for anything, never. All distributions rutinely backport
various new functionalities to older kernels and only reliable way how
to make sure something is implemented is to call the syscall and check
the return value.

That being said I have no idea what rules apply to stable trees.

-- 
Cyril Hrubis
chrubis@suse.cz

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

* Re: It is correct to introduce new sys calls to stable versions?
  2024-08-20 13:19 It is correct to introduce new sys calls to stable versions? Miao Wang
  2024-08-20 13:29 ` Cyril Hrubis
@ 2024-08-20 13:36 ` Greg Kroah-Hartman
  2024-08-20 13:49   ` Miao Wang
  1 sibling, 1 reply; 10+ messages in thread
From: Greg Kroah-Hartman @ 2024-08-20 13:36 UTC (permalink / raw)
  To: Miao Wang
  Cc: Xi Ruoyao, Huacai Chen, loongarch, Sasha Levin, stable,
	WANG Xuerui, linux-api

On Tue, Aug 20, 2024 at 09:19:04PM +0800, Miao Wang wrote:
> Hi, Greg
> 
> I saw you have included commit 7697a0fe0154 ("LoongArch: Define
> __ARCH_WANT_NEW_STAT in unistd.h") in your stable trees, which
> actually introduced new sys calls newfstatat and fstat to Loongarch.

See the documentation in that commit for why it was done.

> I wonder if it is correct to add new syscalls, which actually changes
> the kernel features, in stable releases, as it might confuse downstream
> developers because they may assume the existence of a certain feature
> after a certain version.

Version numbers should never be used to be checked for anything as they
are only a "moment in time" stamp.  They do not reflect features or
capabilities or anything else.

Test for functionality if you want to check for something, that's the
only way it will ever work on all of the variants of different
"enterprise" kernels.

thanks,

greg k-h

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

* Re: It is correct to introduce new sys calls to stable versions?
  2024-08-20 13:36 ` Greg Kroah-Hartman
@ 2024-08-20 13:49   ` Miao Wang
  2024-08-20 14:00     ` Greg Kroah-Hartman
  2024-08-20 14:44     ` Theodore Ts'o
  0 siblings, 2 replies; 10+ messages in thread
From: Miao Wang @ 2024-08-20 13:49 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Xi Ruoyao, Huacai Chen, loongarch, Sasha Levin, stable,
	WANG Xuerui, linux-api

Hi,

> 2024年8月20日 21:36,Greg Kroah-Hartman <gregkh@linuxfoundation.org> 写道:
> 
> On Tue, Aug 20, 2024 at 09:19:04PM +0800, Miao Wang wrote:
>> Hi, Greg
>> 
>> I saw you have included commit 7697a0fe0154 ("LoongArch: Define
>> __ARCH_WANT_NEW_STAT in unistd.h") in your stable trees, which
>> actually introduced new sys calls newfstatat and fstat to Loongarch.
> 
> See the documentation in that commit for why it was done.

Thanks for your explanation. I totally understand the necessity of
re-introducing thees two syscalls. I just wonder whether there is any
limitation on what can be included in to the stable trees. If there
was no limitation, theoretically, I could also maintain a so-called
stable tree by applying all the patches from torvalds' tree, except
those that bumps the version number. Apparently such a "stable" tree
is far from stable.

> 
>> I wonder if it is correct to add new syscalls, which actually changes
>> the kernel features, in stable releases, as it might confuse downstream
>> developers because they may assume the existence of a certain feature
>> after a certain version.
> 
> Version numbers should never be used to be checked for anything as they
> are only a "moment in time" stamp.  They do not reflect features or
> capabilities or anything else.

I agree with you and Cyril on the version numbers, recalling that kernels
on RHEL numbered on 3.10 contains various new features.

> Test for functionality if you want to check for something, that's the
> only way it will ever work on all of the variants of different
> "enterprise" kernels.

Thanks again for your quick reply.

> 
> thanks,
> 
> greg k-h


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

* Re: It is correct to introduce new sys calls to stable versions?
  2024-08-20 13:49   ` Miao Wang
@ 2024-08-20 14:00     ` Greg Kroah-Hartman
  2024-08-20 15:05       ` Willy Tarreau
  2024-08-20 14:44     ` Theodore Ts'o
  1 sibling, 1 reply; 10+ messages in thread
From: Greg Kroah-Hartman @ 2024-08-20 14:00 UTC (permalink / raw)
  To: Miao Wang
  Cc: Xi Ruoyao, Huacai Chen, loongarch, Sasha Levin, stable,
	WANG Xuerui, linux-api

On Tue, Aug 20, 2024 at 09:49:59PM +0800, Miao Wang wrote:
> Hi,
> 
> > 2024年8月20日 21:36,Greg Kroah-Hartman <gregkh@linuxfoundation.org> 写道:
> > 
> > On Tue, Aug 20, 2024 at 09:19:04PM +0800, Miao Wang wrote:
> >> Hi, Greg
> >> 
> >> I saw you have included commit 7697a0fe0154 ("LoongArch: Define
> >> __ARCH_WANT_NEW_STAT in unistd.h") in your stable trees, which
> >> actually introduced new sys calls newfstatat and fstat to Loongarch.
> > 
> > See the documentation in that commit for why it was done.
> 
> Thanks for your explanation. I totally understand the necessity of
> re-introducing thees two syscalls. I just wonder whether there is any
> limitation on what can be included in to the stable trees. If there
> was no limitation, theoretically, I could also maintain a so-called
> stable tree by applying all the patches from torvalds' tree, except
> those that bumps the version number. Apparently such a "stable" tree
> is far from stable.

Or you could do the opposite, something that I have seen vendors do, and
just bump the kernel version number to try to "claim" they updated their
kernel to a more secure one (i.e. one that fixed loads of known issues),
but they really didn't.

Either way, it's your kernel, you are free to do whatever you want with
it, have fun!  :)

greg k-h

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

* Re: It is correct to introduce new sys calls to stable versions?
  2024-08-20 13:49   ` Miao Wang
  2024-08-20 14:00     ` Greg Kroah-Hartman
@ 2024-08-20 14:44     ` Theodore Ts'o
  1 sibling, 0 replies; 10+ messages in thread
From: Theodore Ts'o @ 2024-08-20 14:44 UTC (permalink / raw)
  To: Miao Wang
  Cc: Greg Kroah-Hartman, Xi Ruoyao, Huacai Chen, loongarch,
	Sasha Levin, stable, WANG Xuerui, linux-api

On Tue, Aug 20, 2024 at 09:49:59PM +0800, Miao Wang wrote:
> 
> I agree with you and Cyril on the version numbers, recalling that kernels
> on RHEL numbered on 3.10 contains various new features.

Some enterprise kernel versions have also been known to completely
take code whole from some subsystem (like, for example, a file system
like ext4 or xfs) from much newer upstream kernel version and backport
it into a very old "enterprise" kernel, with massive work to deal with
the dependencies that might be needed by the newer code, and
additional massive work so that structures and function signatures
stay the same so that binary out-of-tree kernel modules can continue
to load on that "stable" enterprise kernel.

That might take huge amounts of effort from a quality assurance
perspective, but that's might some enterprise customers are willing to
pay $$$$ for that frankenkernel and support for that frankenkernel....

This is also why when I get a bug report relating a distro kernel, I
tell bug reporters to go back to the distro for support.  Basically,
you can't really take anything for granted when you're dealing with a
non-upstream kernel, and that includes the version number.
Personally, I think this is a really bad idea, but distros and their
customers have the freedom to do what they want.  And this is why
those customers pay the distro the big bucks.  :-)

    	      	    	    	- Ted

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

* Re: It is correct to introduce new sys calls to stable versions?
  2024-08-20 14:00     ` Greg Kroah-Hartman
@ 2024-08-20 15:05       ` Willy Tarreau
  2024-08-20 16:09         ` Miao Wang
  0 siblings, 1 reply; 10+ messages in thread
From: Willy Tarreau @ 2024-08-20 15:05 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Miao Wang, Xi Ruoyao, Huacai Chen, loongarch, Sasha Levin, stable,
	WANG Xuerui, linux-api

On Tue, Aug 20, 2024 at 10:00:35PM +0800, Greg Kroah-Hartman wrote:
> On Tue, Aug 20, 2024 at 09:49:59PM +0800, Miao Wang wrote:
> > Hi,
> > 
> > > 2024?8?20? 21:36,Greg Kroah-Hartman <gregkh@linuxfoundation.org> ??:
> > > 
> > > On Tue, Aug 20, 2024 at 09:19:04PM +0800, Miao Wang wrote:
> > >> Hi, Greg
> > >> 
> > >> I saw you have included commit 7697a0fe0154 ("LoongArch: Define
> > >> __ARCH_WANT_NEW_STAT in unistd.h") in your stable trees, which
> > >> actually introduced new sys calls newfstatat and fstat to Loongarch.
> > > 
> > > See the documentation in that commit for why it was done.
> > 
> > Thanks for your explanation. I totally understand the necessity of
> > re-introducing thees two syscalls. I just wonder whether there is any
> > limitation on what can be included in to the stable trees. If there
> > was no limitation, theoretically, I could also maintain a so-called
> > stable tree by applying all the patches from torvalds' tree, except
> > those that bumps the version number. Apparently such a "stable" tree
> > is far from stable.
> 
> Or you could do the opposite, something that I have seen vendors do, and
> just bump the kernel version number to try to "claim" they updated their
> kernel to a more secure one (i.e. one that fixed loads of known issues),
> but they really didn't.

Some of those who do that don't even notice what they're missing. I've
seen some BSP kernels "forward-ported" by merging the next bunch of
stable versions, trying to fix rejects by hand with the usual ratio of
failures, but after that since that version is part of the history, it's
impossible to figure what's really missing or not. Some people don't seem
to realize that *merging* code can actually result in *removing* fixes.
So they don't even need cheat on their versions, they're genuinely
believing they're OK... which is worse!

Willy

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

* Re: It is correct to introduce new sys calls to stable versions?
  2024-08-20 15:05       ` Willy Tarreau
@ 2024-08-20 16:09         ` Miao Wang
  2024-08-20 18:30           ` Willy Tarreau
  0 siblings, 1 reply; 10+ messages in thread
From: Miao Wang @ 2024-08-20 16:09 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Willy Tarreau, Xi Ruoyao, Huacai Chen, loongarch, Sasha Levin,
	stable, WANG Xuerui, linux-api



> 2024年8月20日 23:05,Willy Tarreau <w@1wt.eu> 写道:
> 
> On Tue, Aug 20, 2024 at 10:00:35PM +0800, Greg Kroah-Hartman wrote:
>> On Tue, Aug 20, 2024 at 09:49:59PM +0800, Miao Wang wrote:
>>> Hi,
>>> 
>>>> 2024?8?20? 21:36,Greg Kroah-Hartman <gregkh@linuxfoundation.org> ??:
>>>> 
>>>> On Tue, Aug 20, 2024 at 09:19:04PM +0800, Miao Wang wrote:
>>>>> Hi, Greg
>>>>> 
>>>>> I saw you have included commit 7697a0fe0154 ("LoongArch: Define
>>>>> __ARCH_WANT_NEW_STAT in unistd.h") in your stable trees, which
>>>>> actually introduced new sys calls newfstatat and fstat to Loongarch.
>>>> 
>>>> See the documentation in that commit for why it was done.
>>> 
>>> Thanks for your explanation. I totally understand the necessity of
>>> re-introducing thees two syscalls. I just wonder whether there is any
>>> limitation on what can be included in to the stable trees. If there
>>> was no limitation, theoretically, I could also maintain a so-called
>>> stable tree by applying all the patches from torvalds' tree, except
>>> those that bumps the version number. Apparently such a "stable" tree
>>> is far from stable.
>> 
>> Or you could do the opposite, something that I have seen vendors do, and
>> just bump the kernel version number to try to "claim" they updated their
>> kernel to a more secure one (i.e. one that fixed loads of known issues),
>> but they really didn't.
> 
> Some of those who do that don't even notice what they're missing. I've
> seen some BSP kernels "forward-ported" by merging the next bunch of
> stable versions, trying to fix rejects by hand with the usual ratio of
> failures, but after that since that version is part of the history, it's
> impossible to figure what's really missing or not. Some people don't seem
> to realize that *merging* code can actually result in *removing* fixes.
> So they don't even need cheat on their versions, they're genuinely
> believing they're OK... which is worse!
> 
> Willy

Thank you all for sharing experiences with vendors messing up kernel
version numbers.

However, my original question is whether it is expected to include new
syscalls in kernel stable tree. According to the document "stable-kernel-
rules", if I'm interpreting it correctly, I expect only bug fixes and small
driver enhancements from stable releases. I understand the patch in question
is actually introducing new syscalls, which is beyond my expectation. So I
wonder the consideration of including this patch in stable releases.

Cheers,

Miao Wang


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

* Re: It is correct to introduce new sys calls to stable versions?
  2024-08-20 16:09         ` Miao Wang
@ 2024-08-20 18:30           ` Willy Tarreau
  2024-08-20 19:24             ` Miao Wang
  0 siblings, 1 reply; 10+ messages in thread
From: Willy Tarreau @ 2024-08-20 18:30 UTC (permalink / raw)
  To: Miao Wang
  Cc: Greg Kroah-Hartman, Xi Ruoyao, Huacai Chen, loongarch,
	Sasha Levin, stable, WANG Xuerui, linux-api

On Wed, Aug 21, 2024 at 12:09:41AM +0800, Miao Wang wrote:
> However, my original question is whether it is expected to include new
> syscalls in kernel stable tree. According to the document "stable-kernel-
> rules", if I'm interpreting it correctly, I expect only bug fixes and small
> driver enhancements from stable releases. I understand the patch in question
> is actually introducing new syscalls, which is beyond my expectation. So I
> wonder the consideration of including this patch in stable releases.

When you maintain stable software you quickly realize that everything
is not just pure white or black but a shade of gray and that if it can
be considered as a bug to miss a syscall in certain environments for
example, then it can become a valid fix to add it. I don't have any
opinion on this particular one, but since your question is broader I'm
trying to explain.

Different people have different expectations about what needs to be
fixed, that's even why some people will choose a distro over another
one (prefer to fix only critical bugs over fixing all bugs for example),
but there's no point restarting a philosophical on this topic which has
already been rehashed too many times in the past.

As a rule of thumb, just keep in mind that anything that needs to get
fix will eventually be fixed.

Thanks,
Willy

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

* Re: It is correct to introduce new sys calls to stable versions?
  2024-08-20 18:30           ` Willy Tarreau
@ 2024-08-20 19:24             ` Miao Wang
  0 siblings, 0 replies; 10+ messages in thread
From: Miao Wang @ 2024-08-20 19:24 UTC (permalink / raw)
  To: Willy Tarreau
  Cc: Greg Kroah-Hartman, Xi Ruoyao, Huacai Chen, loongarch,
	Sasha Levin, stable, WANG Xuerui, linux-api



> 2024年8月21日 02:30,Willy Tarreau <w@1wt.eu> 写道:
> 
> On Wed, Aug 21, 2024 at 12:09:41AM +0800, Miao Wang wrote:
>> However, my original question is whether it is expected to include new
>> syscalls in kernel stable tree. According to the document "stable-kernel-
>> rules", if I'm interpreting it correctly, I expect only bug fixes and small
>> driver enhancements from stable releases. I understand the patch in question
>> is actually introducing new syscalls, which is beyond my expectation. So I
>> wonder the consideration of including this patch in stable releases.
> 
> When you maintain stable software you quickly realize that everything
> is not just pure white or black but a shade of gray and that if it can
> be considered as a bug to miss a syscall in certain environments for
> example, then it can become a valid fix to add it. I don't have any
> opinion on this particular one, but since your question is broader I'm
> trying to explain.
> 
> Different people have different expectations about what needs to be
> fixed, that's even why some people will choose a distro over another
> one (prefer to fix only critical bugs over fixing all bugs for example),
> but there's no point restarting a philosophical on this topic which has
> already been rehashed too many times in the past.
> 
> As a rule of thumb, just keep in mind that anything that needs to get
> fix will eventually be fixed.

Many thanks for your explanation!

Cheers,

Miao Wang

> 
> Thanks,
> Willy


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

end of thread, other threads:[~2024-08-20 19:24 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-08-20 13:19 It is correct to introduce new sys calls to stable versions? Miao Wang
2024-08-20 13:29 ` Cyril Hrubis
2024-08-20 13:36 ` Greg Kroah-Hartman
2024-08-20 13:49   ` Miao Wang
2024-08-20 14:00     ` Greg Kroah-Hartman
2024-08-20 15:05       ` Willy Tarreau
2024-08-20 16:09         ` Miao Wang
2024-08-20 18:30           ` Willy Tarreau
2024-08-20 19:24             ` Miao Wang
2024-08-20 14:44     ` Theodore Ts'o

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