LAS16-106: GNU Toolchain Development Lifecycle
Speakers: Ryan Arnold
Date: September 26, 2016
★ Session Description ★
This presentation will examine the lifecycle of toolchain development from inception of the micro-architecture, to development of the ISA, to delivery of OS enablement in FOSS projects, to adoption in Linux Distributions. It will examine the behaviors of successful silicon vendors as well as behaviors of vendors that struggle to get their platform fully enabled in the GNU/Linux OS.
★ Resources ★
Etherpad: pad.linaro.org/p/las16-106
Presentations & Videos: http://connect.linaro.org/resource/las16/las16-106/
★ Event Details ★
Linaro Connect Las Vegas 2016 – #LAS16
September 26-30, 2016
http://www.linaro.org
http://connect.linaro.org
5. ENGINEERS AND DEVICES
WORKING TOGETHER
A man builds a fine house; and now he has a master,
and a task for life; he is to furnish, watch, show it, and
keep it in repair, the rest of his days
- Ralph Waldo Emerson
8. ENGINEERS AND DEVICES
WORKING TOGETHER
GNU/Linux Distribution : (Distro) is a formally
supported collection of interoperable programs.
These programs have been quality and integration
tested in order to guarantee that they are compatible.
12. ENGINEERS AND DEVICES
WORKING TOGETHER
https://access.redhat.com/articles/3078
https://access.redhat.com/support/policy/updates/errata/
RHEL6.0 GA 2010-11-09
RHEL6.8 - 2016-05-10
RHEL7.0 GA - 2014-06-09
RHEL7.2 - 2015-11-19 (AArch64)
19. ENGINEERS AND DEVICES
WORKING TOGETHER
Toolchain Lifecycle - Linear Progression
● Idea conception (micro-
architecture)
● ISA
● KABI (contract with user-space)
● Kernel enablement
● Platform identification
● KABI implementation
● Kernel upstreaming
● ABI (binary contract between
programs)
● GNU Toolchain Implementation
● Platform identification
● ASM Instruction support
● Codegen
● Optimization
● GNU Toolchain Upstreaming
● Linux Distribution Adoption
● Customer’s Hands
● Linux Distro updates.
27. ENGINEERS AND DEVICES
WORKING TOGETHER
Danger! If your legal dept is dragging their feet on
approving upstream contribution your schedule is in
jeopardy.
38. ENGINEERS AND DEVICES
WORKING TOGETHER
Danger! Sometimes early enablement might give
away details of the processor, such as information
about the pipeline bandwidth.
46. ENGINEERS AND DEVICES
WORKING TOGETHER
Danger! You implemented all required parts of the ISA
right? If not, you’ve defined a new ABI that you have
to implement.
47. ENGINEERS AND DEVICES
WORKING TOGETHER
Protip: Don’t use an ABI change as a way to squeeze
out more performance (unless it benefits all
microarch variants)
52. ENGINEERS AND DEVICES
WORKING TOGETHER
Listen to your patch reviewers and implement
changes requested or your update patches will be
ignored.
53. ENGINEERS AND DEVICES
WORKING TOGETHER
Danger! If you don’t respect the opinion of the person
who will be maintaining your software, then your
contribution isn’t going to be respected.
54. ENGINEERS AND DEVICES
WORKING TOGETHER
Protip: Drop what you’re doing and turn around a
patch re-spin as soon as possible after a maintainer
has reviewed your patch.
55. ENGINEERS AND DEVICES
WORKING TOGETHER
Protip: You might be asked to implement a generic
solution in place of a number of arch-specific
implementations. Do it!
63. ENGINEERS AND DEVICES
WORKING TOGETHER
A man builds a fine house; and now he has a master,
and a task for life; he is to furnish, watch, show it, and
keep it in repair, the rest of his days
- Ralph Waldo Emerson