All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jeff McGee <jeff.mcgee@intel.com>
To: intel-gfx@lists.freedesktop.org
Cc: rodrigo.vivi@intel.com
Subject: Re: [RFC] GuC firmware versioning change
Date: Fri, 12 Oct 2018 13:41:35 -0700	[thread overview]
Message-ID: <20181012204135.GC21521@jeffdesk> (raw)
In-Reply-To: <20181012202430.GB21521@jeffdesk>

Forgot to add some people on CC.

On Fri, Oct 12, 2018 at 01:24:30PM -0700, Jeff McGee wrote:
> The GuC firmware team is proposing a change to the firmware versioning scheme.
> The goal is to more accurately track the firmware interface to help users
> manage dependencies on that interface. The proposed scheme is based on
> semver.org with some additions to handle branching.
> 
> The proposed version number would have 4 fields: BASE.MAJOR.MINOR.PATCH.
> Contrast this with the 2 fields in the current version number: MAJOR.MINOR.
> Side note, the current firmware encodes a BRANCH and CLIENT number as well, but
> they have not been needed by i915. So a firmware released with the proposed
> scheme would be named <platform>_guc_ver<base>_<major>_<minor>_<patch>.bin
> (ex: skl_guc_ver1_5_4_7.bin) instead of the current
> <platform>_guc_ver<major>_<minor>.bin (ex: skl_guc_ver9_33.bin).
> 
> The BASE number is an ID that is used to identify a set of releases in which
> the MAJOR.MINOR.PATCH semantics are consistent. In other words, two releases
> from the same BASE can be compared via their MAJOR.MINOR.PATCH to infer their
> relationship as described below. Two releases from a different BASE cannot be
> reliably compared. The BASE number facilitates arbitrary branching which can
> create duplicate and/or disconnected MAJOR.MINOR.PATCH versions. This type of
> branching is expected to be rare, and so BASE will rarely change. When a new
> BASE is created, the MAJOR.MINOR.PATCH reset to starting values.
> 
> The MAJOR number conforms to the major in semver.org. It increments on a
> backwards incompatible change of the interface. It resets to 1 on a change of
> BASE. The MAJOR number basically works the same between the current and
> proposed versioning schemes.
> 
> The MINOR number conforms to the minor in semver.org. It increments on a
> backwards compatible change of the interface (new interfaces that are optional
> to use). It will also increment on substantial new internal functionality that
> doesn't affect the interface but should be called out to the user. It resets to
> 0 on a change of MAJOR. The MINOR number in the current versioning scheme
> increments on any backwards compatible change. The proposed versioning scheme
> breaks this into the MINOR number just described and the PATCH number below.
> 
> The PATCH number conforms to the patch in semver.org. It increments on a
> backwards compatible internal change, usually a bug fix. It resets to 0 on a
> change of MINOR.
> 
> The MAJOR.MINOR collectively define the interface version. Because the MINOR
> may also increment on a substantial internal change, it doesn't always mark an
> interface change, e.g. 4.5 and 4.6 may have identical interfaces. But the
> determination of interface compatibility is unchanged, e.g. 4.6 is always
> backwards compatible with 4.5.
> 
> Each MAJOR.MINOR may continue to receive internal fixes along a branch even
> after the main branch for that BASE has moved on to another MAJOR.MINOR.
> Releases from these fix-only branches increment only the PATCH number on that
> MAJOR.MINOR, and therefore remain semantically consistent with the main branch.
> No change of BASE is therefore needed. Consider an example:
> 
> v1.1.0.0   v1.1.0.1   v1.1.0.2   v1.1.1.0   v1.1.1.1
> ----O----------O----------O----------O----------O    <-- main adopts v1.1.1.x
>                            \
>                             \
>                              \
>                               O----------O     <-- fixes for interface v1.1.0.x
>                           v1.1.0.3   v1.1.0.4
> 
> There is no need to change the BASE because the branching happened from the
> last fix (v1.1.0.2) on the main branch prior to the change of interface
> (v1.1.1.0). As long as only fixes are applied to v1.1.0.x, there is no risk of
> version number clash. All of these release versions remain semantically
> connected with one small caveat. If this set of release versions came
> sequentially along a single branch, one could infer that the exact fixes in
> v1.1.0.4 were inherited by v1.1.1.0. With this "hidden" branching, this may
> not be true as in this example. One would need to review the v1.1.1.0 release
> notes to check.
> 
> Please provide any feedback on the proposed change.
> 
> Thanks,
> Jeff
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

  reply	other threads:[~2018-10-12 20:40 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-12 20:24 [RFC] GuC firmware versioning change Jeff McGee
2018-10-12 20:41 ` Jeff McGee [this message]
2018-10-12 20:51 ` Rodrigo Vivi
2018-10-12 21:33   ` Jeff McGee
2018-10-12 21:46     ` Jeff McGee
2018-10-16 11:10       ` Joonas Lahtinen
2018-10-18  9:57       ` Daniel Vetter
2018-10-18 17:32         ` Jeff McGee
2018-10-18 18:12           ` Rodrigo Vivi
2018-10-18 22:48             ` Jeff McGee
2018-10-19  8:19               ` Daniel Vetter
2018-10-17 20:41     ` Srivatsa, Anusha

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20181012204135.GC21521@jeffdesk \
    --to=jeff.mcgee@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=rodrigo.vivi@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.