Re: [PATCH v18 00/18] KVM RISC-V Support

From: Paolo Bonzini
Date: Wed May 19 2021 - 09:29:35 EST


On 19/05/21 14:23, Greg Kroah-Hartman wrote:
- the code could be removed if there's no progress on either changing the
RISC-V acceptance policy or ratifying the spec

I really do not understand the issue here, why can this just not be
merged normally?

Because the RISC-V people only want to merge code for "frozen" or "ratified" processor extensions, and the RISC-V foundation is dragging their feet in ratifying the hypervisor extension.

It's totally a self-inflicted pain on part of the RISC-V maintainers; see Documentation/riscv/patch-acceptance.rst:

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

(Link: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/riscv/patch-acceptance.rst)

All staging drivers need a TODO list that shows what needs to be done in
order to get it out of staging. All I can tell so far is that the riscv
maintainers do not want to take this for "unknown reasons" so let's dump
it over here for now where we don't have to see it.

And that's not good for developers or users, so perhaps the riscv rules
are not very good?

I agree wholeheartedly.

I have heard contrasting opinions on conflict of interest where the employers of the maintainers benefit from slowing down the integration of code in Linus's tree. I find these allegations believable, but even if that weren't the case, the policy is (to put it kindly) showing its limits.

Of course there should have been a TODO file explaining the situation. But
if you think this is not the right place, I totally understand; if my
opinion had any weight in this, I would just place it in arch/riscv/kvm.

The RISC-V acceptance policy as is just doesn't work, and the fact that
people are trying to work around it is proving it. There are many ways to
improve it:

What is this magical acceptance policy that is preventing working code
from being merged? And why is it suddenly the rest of the kernel
developer's problems because of this?

It is my problem because I am trying to help Anup merging some perfectly good KVM code; when a new KVM port comes up, I coordinate merging the first arch/*/kvm bits with the arch/ maintainers and from that point on that directory becomes "mine" (or my submaintainers').

Paolo