[Intel-gfx] [PATCH] drm-intel.rst: Initial draft on rough consensus

Daniel Vetter daniel.vetter at ffwll.ch
Thu Apr 21 14:13:35 UTC 2016


Just trying to document how big stuff actually lands today.
---
 drm-intel.rst | 46 +++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 45 insertions(+), 1 deletion(-)

diff --git a/drm-intel.rst b/drm-intel.rst
index e9af1e516839..6771bed6654e 100644
--- a/drm-intel.rst
+++ b/drm-intel.rst
@@ -399,7 +399,8 @@ On Confidence, Complexity, and Transparency
   separate author, reviewer and committer. Make sure you have experienced
   reviewers. Involve the domain expert(s). Possibly involve people across
   team/group boundaries. Possibly involve the maintainers. Give people more time
-  to voice their concerns.
+  to voice their concerns. Aim for what's described below in more detail as
+  "rough consensus".
 
 * Most patches fall somewhere in between. You have to be the judge, and ensure
   you have involved enough people to feel comfortable if the justification for
@@ -407,6 +408,49 @@ On Confidence, Complexity, and Transparency
 
 * Make sure pre-merge testing is completed successfully.
 
+On Rough Consensus
+------------------
+
+For really big features with a lot of impact on the code, new cross-driver ABI
+(like new atomic properties), or features that will take a few patch series (and
+maybe a few kernel releases) aim for rough consensus among a wide group of
+stakeholders. There's three components for that:
+
+* Identify stakeholders beyond just the patch author and reviewers. This
+  includes contributors with experience in code ancillary to your feature,
+  domain experts, maybe maintainers. Also include maintainers and reviewers of
+  the userspace component for new ABI, which often means non-Intel people. In
+  case of doubt ask maintainers for a reasonable list of people. Make sure you
+  gather their input actively, don't expect them to deliver it on their on -
+  most are really busy.
+
+* Have agreement among all these stakeholders what the code should look like in
+  the end. Generally disagreement on the end state is considered a blocker, and
+  overruling such disagreement by maintainers is done only in exceptional cases.
+  Generally what happens is that maintainers instead do all the work of
+  soliciting input, which doesn't scale and should be the patch author's and
+  reviewer's duty. Try to document this consensus somewhere, either in a summary
+  email, interface patch to describe the data structures and vfuncs. Or maybe
+  even a more formal design spec, although in the past that didn't work out when
+  non-Intel people are involved, and the actually merged interface differed from
+  the spec a lot. Just assumed consensus on IRC tends to result in
+  misunderstandings.
+
+* Have a concrete plan how to get to the agreed end state in the codebase. Often
+  it makes sense to have an intermediate patch set merged first, and then polish
+  it in tree. Or merge new ABI in stages. Usually this means that a new feature
+  or ABI is disabled by default at first. For the actual plan some unhappiness
+  from stakeholders about the execution is acceptable, as long as the overall
+  stability and other ongoing work isn't negatively affected. As a rule of thumb
+  new ABI or features should never be in a partial/limbo stage for more than 2-3
+  kernel releases. If that seems unlikely, more work should happen pre-merge.
+
+
+Try to reach rough consensus before spending months writing code you might need
+to throw away or at least entirely rewrite again. Also make sure that all
+discussions happen in public forums, and make sure there's a searchable
+permanent record of any discussions for later references. This means that for
+most things internal meetings are not the most suitable venue.
 
 Pre-Merge Testing
 -----------------
-- 
2.8.0.rc3



More information about the Intel-gfx mailing list