We talked about this during Plumbers and it seems like there was pretty
minor feedback on the v1. I don't intend on committing this for the
current merge window, as it's only been through one round of review and
I don't see any reason to rush it. Like last time we're just violating
this as the status quo, so we can stick with that as we sort out the
wording.
Changes since v1 <https://lore.kernel.org/all/Yyn9FJ4iuzJTfO1T@spud/t/#mcc9b5e547a2ca2b25d7f78a4d2572f39ddc5593e>:
* Various minor wording changes.
* "UEFI forum specifications" instead of just "UEFI specifications".
* New patch 4 with implementor -> implementer
* Atish and Conor's Reviewed-by.
From: Palmer Dabbelt <[email protected]>
The patch acceptance policy forbids accepting support for non-standard
behavior. This policy was written in order to both steer implementers
towards the standards and to avoid coupling the upstream kernel too
tightly to vendor-specific features. Those were good goals, but in
practice the policy just isn't working: every RISC-V system we have
needs vendor-specific behavior in the kernel and we end up taking that
support which violates the policy. That's confusing for contributors,
which is the main reason we have a written policy in the first place.
So let's just start taking code for vendor-defined behavior.
Reviewed-by: Conor Dooley <[email protected]>
Signed-off-by: Palmer Dabbelt <[email protected]>
---
Documentation/riscv/patch-acceptance.rst | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/Documentation/riscv/patch-acceptance.rst b/Documentation/riscv/patch-acceptance.rst
index 5da6f9b273d6..0a6199233ede 100644
--- a/Documentation/riscv/patch-acceptance.rst
+++ b/Documentation/riscv/patch-acceptance.rst
@@ -29,7 +29,12 @@ their own custom extensions. These custom extensions aren't required
to go through any review or ratification process by the RISC-V
Foundation. To avoid the maintenance complexity and potential
performance impact of adding kernel code for implementor-specific
-RISC-V extensions, we'll only accept patches for extensions that
-have been officially frozen or ratified by the RISC-V Foundation.
-(Implementors, may, of course, maintain their own Linux kernel trees
-containing code for any custom extensions that they wish.)
+RISC-V extensions, we'll only accept patches for extensions that either:
+
+- Have been officially frozen or ratified by the RISC-V Foundation, or
+- Have been implemented in hardware that is either widely available or
+ for which a timeline for availability has been made public.
+
+Hardware that does not meet its published timelines may have support
+removed. (Implementors, may, of course, maintain their own Linux kernel
+trees containing code for any custom extensions that they wish.)
--
2.38.0
From: Palmer Dabbelt <[email protected]>
Implementor does appear to be a word, but it's not very common.
Suggested-by: Conor Dooley <[email protected]>
Signed-off-by: Palmer Dabbelt <[email protected]>
---
Documentation/riscv/patch-acceptance.rst | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Documentation/riscv/patch-acceptance.rst b/Documentation/riscv/patch-acceptance.rst
index 9fed6b318b49..89c7d8abd4bb 100644
--- a/Documentation/riscv/patch-acceptance.rst
+++ b/Documentation/riscv/patch-acceptance.rst
@@ -26,7 +26,7 @@ specifications from the RISC-V foundation this means "Frozen" or
ECR. (Developers may, of course, maintain their own Linux kernel trees
that contain code for any draft extensions that they wish.)
-Additionally, the RISC-V specification allows implementors to create
+Additionally, the RISC-V specification allows implementers to create
their own custom extensions. These custom extensions aren't required
to go through any review or ratification process by the RISC-V
Foundation. To avoid the maintenance complexity and potential
@@ -38,5 +38,5 @@ RISC-V extensions, we'll only accept patches for extensions that either:
for which a timeline for availability has been made public.
Hardware that does not meet its published timelines may have support
-removed. (Implementors, may, of course, maintain their own Linux kernel
+removed. (Implementers, may, of course, maintain their own Linux kernel
trees containing code for any custom extensions that they wish.)
--
2.38.0
From: Palmer Dabbelt <[email protected]>
I just stumbled on this when modifying the docs.
Signed-off-by: Palmer Dabbelt <[email protected]>
---
Documentation/riscv/patch-acceptance.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Documentation/riscv/patch-acceptance.rst b/Documentation/riscv/patch-acceptance.rst
index dfe0ac5624fb..5da6f9b273d6 100644
--- a/Documentation/riscv/patch-acceptance.rst
+++ b/Documentation/riscv/patch-acceptance.rst
@@ -29,7 +29,7 @@ their own custom extensions. These custom extensions aren't required
to go through any review or ratification process by the RISC-V
Foundation. To avoid the maintenance complexity and potential
performance impact of adding kernel code for implementor-specific
-RISC-V extensions, we'll only to accept patches for extensions that
+RISC-V extensions, we'll only accept patches for extensions that
have been officially frozen or ratified by the RISC-V Foundation.
(Implementors, may, of course, maintain their own Linux kernel trees
containing code for any custom extensions that they wish.)
--
2.38.0
On Thu, Oct 13, 2022 at 10:26 AM Palmer Dabbelt <[email protected]> wrote:
>
> From: Palmer Dabbelt <[email protected]>
>
> I just stumbled on this when modifying the docs.
>
> Signed-off-by: Palmer Dabbelt <[email protected]>
Looks good to me from a KVM RISC-V perspective.
Reviewed-by: Anup Patel <[email protected]>
Regards,
Anup
> ---
> Documentation/riscv/patch-acceptance.rst | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/Documentation/riscv/patch-acceptance.rst b/Documentation/riscv/patch-acceptance.rst
> index dfe0ac5624fb..5da6f9b273d6 100644
> --- a/Documentation/riscv/patch-acceptance.rst
> +++ b/Documentation/riscv/patch-acceptance.rst
> @@ -29,7 +29,7 @@ their own custom extensions. These custom extensions aren't required
> to go through any review or ratification process by the RISC-V
> Foundation. To avoid the maintenance complexity and potential
> performance impact of adding kernel code for implementor-specific
> -RISC-V extensions, we'll only to accept patches for extensions that
> +RISC-V extensions, we'll only accept patches for extensions that
> have been officially frozen or ratified by the RISC-V Foundation.
> (Implementors, may, of course, maintain their own Linux kernel trees
> containing code for any custom extensions that they wish.)
> --
> 2.38.0
>
>
> _______________________________________________
> linux-riscv mailing list
> [email protected]
> http://lists.infradead.org/mailman/listinfo/linux-riscv
On Thu, Oct 13, 2022 at 10:26 AM Palmer Dabbelt <[email protected]> wrote:
>
> From: Palmer Dabbelt <[email protected]>
>
> Implementor does appear to be a word, but it's not very common.
>
> Suggested-by: Conor Dooley <[email protected]>
> Signed-off-by: Palmer Dabbelt <[email protected]>
Looks good to me from a KVM RISC-V perspective.
Reviewed-by: Anup Patel <[email protected]>
Regards,
Anup
> ---
> Documentation/riscv/patch-acceptance.rst | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/Documentation/riscv/patch-acceptance.rst b/Documentation/riscv/patch-acceptance.rst
> index 9fed6b318b49..89c7d8abd4bb 100644
> --- a/Documentation/riscv/patch-acceptance.rst
> +++ b/Documentation/riscv/patch-acceptance.rst
> @@ -26,7 +26,7 @@ specifications from the RISC-V foundation this means "Frozen" or
> ECR. (Developers may, of course, maintain their own Linux kernel trees
> that contain code for any draft extensions that they wish.)
>
> -Additionally, the RISC-V specification allows implementors to create
> +Additionally, the RISC-V specification allows implementers to create
> their own custom extensions. These custom extensions aren't required
> to go through any review or ratification process by the RISC-V
> Foundation. To avoid the maintenance complexity and potential
> @@ -38,5 +38,5 @@ RISC-V extensions, we'll only accept patches for extensions that either:
> for which a timeline for availability has been made public.
>
> Hardware that does not meet its published timelines may have support
> -removed. (Implementors, may, of course, maintain their own Linux kernel
> +removed. (Implementers, may, of course, maintain their own Linux kernel
> trees containing code for any custom extensions that they wish.)
> --
> 2.38.0
>
>
> _______________________________________________
> linux-riscv mailing list
> [email protected]
> http://lists.infradead.org/mailman/listinfo/linux-riscv
From: Palmer Dabbelt <[email protected]>
The current patch acceptance policy requires that specifications are
approved by the RISC-V foundation, but we rely on external
specifications as well. This explicitly calls out the UEFI
specifications that we're starting to depend on.
Reviewed-by: Conor Dooley <[email protected]>
Reviewed-by: Atish Patra <[email protected]>
Signed-off-by: Palmer Dabbelt <[email protected]>
---
Documentation/riscv/patch-acceptance.rst | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/Documentation/riscv/patch-acceptance.rst b/Documentation/riscv/patch-acceptance.rst
index 0a6199233ede..9fed6b318b49 100644
--- a/Documentation/riscv/patch-acceptance.rst
+++ b/Documentation/riscv/patch-acceptance.rst
@@ -20,9 +20,11 @@ Submit Checklist Addendum
-------------------------
We'll only accept patches for new modules or extensions if the
specifications for those modules or extensions are listed as being
-"Frozen" or "Ratified" by the RISC-V Foundation. (Developers may, of
-course, maintain their own Linux kernel trees that contain code for
-any draft extensions that they wish.)
+unlikely to be incompatibly changed in the future. For
+specifications from the RISC-V foundation this means "Frozen" or
+"Ratified", for the UEFI forum specifications this means a published
+ECR. (Developers may, of course, maintain their own Linux kernel trees
+that contain code for any draft extensions that they wish.)
Additionally, the RISC-V specification allows implementors to create
their own custom extensions. These custom extensions aren't required
--
2.38.0
On Thu, Oct 13, 2022 at 10:26 AM Palmer Dabbelt <[email protected]> wrote:
>
> From: Palmer Dabbelt <[email protected]>
>
> The patch acceptance policy forbids accepting support for non-standard
> behavior. This policy was written in order to both steer implementers
> towards the standards and to avoid coupling the upstream kernel too
> tightly to vendor-specific features. Those were good goals, but in
> practice the policy just isn't working: every RISC-V system we have
> needs vendor-specific behavior in the kernel and we end up taking that
> support which violates the policy. That's confusing for contributors,
> which is the main reason we have a written policy in the first place.
>
> So let's just start taking code for vendor-defined behavior.
>
> Reviewed-by: Conor Dooley <[email protected]>
> Signed-off-by: Palmer Dabbelt <[email protected]>
Looks good to me from a KVM RISC-V perspective.
Reviewed-by: Anup Patel <[email protected]>
Regards,
Anup
> ---
> Documentation/riscv/patch-acceptance.rst | 13 +++++++++----
> 1 file changed, 9 insertions(+), 4 deletions(-)
>
> diff --git a/Documentation/riscv/patch-acceptance.rst b/Documentation/riscv/patch-acceptance.rst
> index 5da6f9b273d6..0a6199233ede 100644
> --- a/Documentation/riscv/patch-acceptance.rst
> +++ b/Documentation/riscv/patch-acceptance.rst
> @@ -29,7 +29,12 @@ their own custom extensions. These custom extensions aren't required
> to go through any review or ratification process by the RISC-V
> Foundation. To avoid the maintenance complexity and potential
> performance impact of adding kernel code for implementor-specific
> -RISC-V extensions, we'll only accept patches for extensions that
> -have been officially frozen or ratified by the RISC-V Foundation.
> -(Implementors, may, of course, maintain their own Linux kernel trees
> -containing code for any custom extensions that they wish.)
> +RISC-V extensions, we'll only accept patches for extensions that either:
> +
> +- Have been officially frozen or ratified by the RISC-V Foundation, or
> +- Have been implemented in hardware that is either widely available or
> + for which a timeline for availability has been made public.
> +
> +Hardware that does not meet its published timelines may have support
> +removed. (Implementors, may, of course, maintain their own Linux kernel
> +trees containing code for any custom extensions that they wish.)
> --
> 2.38.0
>
On Thu, Oct 13, 2022 at 10:26 AM Palmer Dabbelt <[email protected]> wrote:
>
> From: Palmer Dabbelt <[email protected]>
>
> The current patch acceptance policy requires that specifications are
> approved by the RISC-V foundation, but we rely on external
> specifications as well. This explicitly calls out the UEFI
> specifications that we're starting to depend on.
>
> Reviewed-by: Conor Dooley <[email protected]>
> Reviewed-by: Atish Patra <[email protected]>
> Signed-off-by: Palmer Dabbelt <[email protected]>
Looks good to me from a KVM RISC-V perspective.
Reviewed-by: Anup Patel <[email protected]>
Regards,
Anup
> ---
> Documentation/riscv/patch-acceptance.rst | 8 +++++---
> 1 file changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/Documentation/riscv/patch-acceptance.rst b/Documentation/riscv/patch-acceptance.rst
> index 0a6199233ede..9fed6b318b49 100644
> --- a/Documentation/riscv/patch-acceptance.rst
> +++ b/Documentation/riscv/patch-acceptance.rst
> @@ -20,9 +20,11 @@ Submit Checklist Addendum
> -------------------------
> We'll only accept patches for new modules or extensions if the
> specifications for those modules or extensions are listed as being
> -"Frozen" or "Ratified" by the RISC-V Foundation. (Developers may, of
> -course, maintain their own Linux kernel trees that contain code for
> -any draft extensions that they wish.)
> +unlikely to be incompatibly changed in the future. For
> +specifications from the RISC-V foundation this means "Frozen" or
> +"Ratified", for the UEFI forum specifications this means a published
> +ECR. (Developers may, of course, maintain their own Linux kernel trees
> +that contain code for any draft extensions that they wish.)
>
> Additionally, the RISC-V specification allows implementors to create
> their own custom extensions. These custom extensions aren't required
> --
> 2.38.0
>
>
> _______________________________________________
> linux-riscv mailing list
> [email protected]
> http://lists.infradead.org/mailman/listinfo/linux-riscv
On Wed, Oct 12, 2022 at 09:56:19PM -0700, Palmer Dabbelt wrote:
> From: Palmer Dabbelt <[email protected]>
>
> Implementor does appear to be a word, but it's not very common.
>
> Suggested-by: Conor Dooley <[email protected]>
The overlords would probably rather this email got the credit but
doesn't really matter for S-b tags.
Reviewed-by: Conor Dooley <[email protected]>
> Signed-off-by: Palmer Dabbelt <[email protected]>
> ---
> Documentation/riscv/patch-acceptance.rst | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/Documentation/riscv/patch-acceptance.rst b/Documentation/riscv/patch-acceptance.rst
> index 9fed6b318b49..89c7d8abd4bb 100644
> --- a/Documentation/riscv/patch-acceptance.rst
> +++ b/Documentation/riscv/patch-acceptance.rst
> @@ -26,7 +26,7 @@ specifications from the RISC-V foundation this means "Frozen" or
> ECR. (Developers may, of course, maintain their own Linux kernel trees
> that contain code for any draft extensions that they wish.)
>
> -Additionally, the RISC-V specification allows implementors to create
> +Additionally, the RISC-V specification allows implementers to create
> their own custom extensions. These custom extensions aren't required
> to go through any review or ratification process by the RISC-V
> Foundation. To avoid the maintenance complexity and potential
> @@ -38,5 +38,5 @@ RISC-V extensions, we'll only accept patches for extensions that either:
> for which a timeline for availability has been made public.
>
> Hardware that does not meet its published timelines may have support
> -removed. (Implementors, may, of course, maintain their own Linux kernel
> +removed. (Implementers, may, of course, maintain their own Linux kernel
> trees containing code for any custom extensions that they wish.)
> --
> 2.38.0
>
Hi,
On Wed, 12 Oct 2022, Palmer Dabbelt wrote:
> From: Palmer Dabbelt <[email protected]>
>
> The patch acceptance policy forbids accepting support for non-standard
> behavior. This policy was written in order to both steer implementers
> towards the standards and to avoid coupling the upstream kernel too
> tightly to vendor-specific features. Those were good goals, but in
> practice the policy just isn't working: every RISC-V system we have
> needs vendor-specific behavior in the kernel and we end up taking that
> support which violates the policy. That's confusing for contributors,
> which is the main reason we have a written policy in the first place.
>
> So let's just start taking code for vendor-defined behavior.
I think I understand the motivation behind this patch: to align the stated
patch acceptance policy with the actual maintenance practice for
arch/riscv. Along those lines, how about the following tweaks, based on
your original patch?
Probably the most significant proposed change from what you wrote is to
temporarily drop the section about accepting patches for hardware that
doesn't yet exist. I know arch/x86 does this, but my recollection is that
the maintainers there started doing that after the key x86 hardware
manufacturers established a track record of consistently releasing
mass-market hardware that implemented what they promised. Not sure we're
at that point with RISC-V yet. We'll get there at some point, but maybe
we can add that clause back in once that happens?
- Paul
From: Paul Walmsley <[email protected]>
Date: Fri, 18 Nov 2022 02:16:17 -0600
Subject: [PATCH] Documentation: RISC-V: Allow patches for widely available
hardware
This patch, based on an earlier patch from Palmer, updates the patch
acceptance policy to note that the maintainers may also accept patches
for RISC-V hardware that contains features that may not be strictly
RISC-V-compliant, but which is widely available. The intention here
is to align the stated policy with the de-facto upstream Linux policy.
Link: https://lore.kernel.org/linux-riscv/[email protected]/ # Palmer's original patch
Cc: Palmer Dabbelt <[email protected]>
Signed-off-by: Paul Walmsley <[email protected]>
---
Documentation/riscv/patch-acceptance.rst | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/Documentation/riscv/patch-acceptance.rst b/Documentation/riscv/patch-acceptance.rst
index 5da6f9b273d6..2e3f9ecdd977 100644
--- a/Documentation/riscv/patch-acceptance.rst
+++ b/Documentation/riscv/patch-acceptance.rst
@@ -29,7 +29,12 @@ their own custom extensions. These custom extensions aren't required
to go through any review or ratification process by the RISC-V
Foundation. To avoid the maintenance complexity and potential
performance impact of adding kernel code for implementor-specific
-RISC-V extensions, we'll only accept patches for extensions that
-have been officially frozen or ratified by the RISC-V Foundation.
-(Implementors, may, of course, maintain their own Linux kernel trees
-containing code for any custom extensions that they wish.)
+RISC-V extensions, we'll only consider patches for extensions that
+either:
+
+- Have been officially frozen or ratified by the RISC-V Foundation, or
+- Have been implemented in hardware that is widely available, per standard
+ Linux practice
+
+(Implementors, may, of course, maintain their own Linux kernel
+trees containing code for any custom extensions that they wish.)
--
2.38.1
Hey Paul,
I thought you'd got an answer but noticed today you'd not so...
On Fri, Nov 18, 2022 at 10:49:18AM +0000, Paul Walmsley wrote:
> Hi,
>
> On Wed, 12 Oct 2022, Palmer Dabbelt wrote:
>
> > From: Palmer Dabbelt <[email protected]>
> >
> > The patch acceptance policy forbids accepting support for non-standard
> > behavior. This policy was written in order to both steer implementers
> > towards the standards and to avoid coupling the upstream kernel too
> > tightly to vendor-specific features. Those were good goals, but in
> > practice the policy just isn't working: every RISC-V system we have
> > needs vendor-specific behavior in the kernel and we end up taking that
> > support which violates the policy. That's confusing for contributors,
> > which is the main reason we have a written policy in the first place.
> >
> > So let's just start taking code for vendor-defined behavior.
>
> I think I understand the motivation behind this patch: to align the stated
> patch acceptance policy with the actual maintenance practice for
> arch/riscv. Along those lines, how about the following tweaks, based on
> your original patch?
>
> Probably the most significant proposed change from what you wrote is to
> temporarily drop the section about accepting patches for hardware that
> doesn't yet exist.
> I know arch/x86 does this,
IIRC it was x86 that was cited as the example at LPC...
> but my recollection is that
> the maintainers there started doing that after the key x86 hardware
> manufacturers established a track record of consistently releasing
> mass-market hardware that implemented what they promised.
> Not sure we're at that point with RISC-V yet.
... and you're probably not wrong there either.
> We'll get there at some point, but maybe
> we can add that clause back in once that happens?
>
> From: Paul Walmsley <[email protected]>
> Date: Fri, 18 Nov 2022 02:16:17 -0600
> Subject: [PATCH] Documentation: RISC-V: Allow patches for widely available
> hardware
>
> This patch, based on an earlier patch from Palmer, updates the patch
> acceptance policy to note that the maintainers may also accept patches
> for RISC-V hardware that contains features that may not be strictly
> RISC-V-compliant, but which is widely available. The intention here
> is to align the stated policy with the de-facto upstream Linux policy.
NGL, this commit message is kinda confusing. If this version is used
instead of Palmer's, then any mention of the earlier patch should be
dropped IMO. In fact, his original commit message should apply here too,
no?
> Link: https://lore.kernel.org/linux-riscv/[email protected]/ # Palmer's original patch
> Cc: Palmer Dabbelt <[email protected]>
> Signed-off-by: Paul Walmsley <[email protected]>
> ---
> Documentation/riscv/patch-acceptance.rst | 13 +++++++++----
> 1 file changed, 9 insertions(+), 4 deletions(-)
>
> diff --git a/Documentation/riscv/patch-acceptance.rst b/Documentation/riscv/patch-acceptance.rst
> index 5da6f9b273d6..2e3f9ecdd977 100644
> --- a/Documentation/riscv/patch-acceptance.rst
> +++ b/Documentation/riscv/patch-acceptance.rst
> @@ -29,7 +29,12 @@ their own custom extensions. These custom extensions aren't required
> to go through any review or ratification process by the RISC-V
> Foundation. To avoid the maintenance complexity and potential
> performance impact of adding kernel code for implementor-specific
> +RISC-V extensions, we'll only consider patches for extensions that
> +either:
> +
> +- Have been officially frozen or ratified by the RISC-V Foundation, or
> +- Have been implemented in hardware that is widely available, per standard
> + Linux practice
> +
> +(Implementors, may, of course, maintain their own Linux kernel
> +trees containing code for any custom extensions that they wish.)
I have no preference for whichever version, but I think some of the
people at LPC did want to be able to add support for stuff that was not
publicly available who may have one ;)
Folded into the original, I guess this one also is:
Reviewed-by: Conor Dooley <[email protected]>
Certainly less headache potential this way,
Conor.