SlideShare a Scribd company logo
1 of 24
Download to read offline
Innovation versus Maintenance
A Linux on ARM Dilemma
Christian “kiko” Reis
kiko@linaro.org
Linaro Connect Hong Kong Q2 2012
On Wed, Mar 30, 2011 at 6:31 PM, Nicolas Pitre wrote:
>
> But x86 is peanuts. Really.
Is x86 really peanuts?
● Many in-kernel features
– ACPI
– User-Mode Linux, KVM, Xen
– vDSO
– Suspend, resume, hibernate, cpufreq, cpuidle
– perf, kprobes, uprobes
– i386 to i7 to Medfield
● 25+ years of hardware
The x86 Platform
● Architecturally, x86 is pretty standardized:
– Boot interface
– PCI (including bus discoverability)
– BIOS
– VESA
– Northbridge & Southbridge
– Little-Endian
● Even x86 SoCs are quite similar to each other
The ARM Platform
●
We do have some standards.
However..
● ARM doesn't specify complete
systems
Instead, chip makers do
● ARM's ecosystem has inherent
variation
– One one side lies madness
– On the other trivialization
LOC per architecture in Linux 3.4
arm
powerpc
mips
x86
m68k
sparc
sh
blackfin
ia64
cris
s390
alpha
0 100000 200000 300000 400000 500000 600000
● 486,429 LOC in arch/arm this month
● But how did we get here?
Is It All Nokia's Doing?
● 2005: Nokia releases the 770 on kernel 2.6.12
● Support for the TI OMAP became a big deal
● OEM interest in Linux spurred upstreaming
Why upstreaming benefits OEMs
● Looking at it from their perspective:
1. A simpler software enablement story
2. The long-term ability to upgrade
3. Long-tail innovation
●
A standard kernel can make up for
the absence of a complete platform
– However, it's like eating healthy food..
They asked for it!
● SoC vendors and software integrators got the
message
● Major effort from 2008 onwards to upstream
●
Mixed functional results
– Many platforms have some support upstream
– For most of them, support is partial at best
● However, led to a very important change
2.6.0
2.6.2
2.6.4
2.6.6
2.6.8
2.6.10
2.6.12
2.6.14
2.6.16
2.6.18
2.6.20
2.6.22
2.6.24
2.6.26
2.6.28
2.6.30
2.6.32
2.6.34
2.6.36
2.6.38
0
50000
100000
150000
200000
250000
300000
350000
MIPS
x86
ARM
2.6.24: i386 & x86_64 consolidation
2.6.27: defconfig and marvell madness
2.6.35: defconfig genocide
Lines changed per architecture
for each kernel > 2.6.0
Linaro Founded (2010)
2.6.0
2.6.2
2.6.4
2.6.6
2.6.8
2.6.10
2.6.12
2.6.14
2.6.16
2.6.18
2.6.20
2.6.22
2.6.24
2.6.26
2.6.28
2.6.30
2.6.32
2.6.34
2.6.36
2.6.38
0
50000
100000
150000
200000
250000
300000
350000
MIPS
x86
ARM
Our collective
karma!
Lines changed per architecture
for each kernel > 2.6.0
Linaro Founded (2010)
Victims of our own success!
● So Linus doesn't like big diffstats? Not really..
● 3.4: 11086 files changed, 576155 insertions(+), 358368
deletions(-)
●
Linus is concerned with poor design
– Both on software and hardware platform level
● Certainly, the kernel wasn't designed to
accommodate SoC variation
– We know excessive variation is waste
● However, the answer isn't to reject variability
– We should understand and plan for it!
2.6.0
2.6.2
2.6.4
2.6.6
2.6.8
2.6.10
2.6.12
2.6.14
2.6.16
2.6.18
2.6.20
2.6.22
2.6.24
2.6.26
2.6.28
2.6.30
2.6.32
2.6.34
2.6.36
2.6.38
0
10
20
30
40
50
60
70
80
plat-*
mach-*
ARM platform and machine directories
MODIFIED for each kernel > 2.6.0
Linaro Founded
arm-soc established
Innovation vs. Maintenence
● Our ecosystem has a rich inherent diversity
● This diversity is our strength
– Each company developing new approaches to
power, performance and price
● Learn from upstream's design concerns
● Unchecked, this innovation is unsustainable
– We need to keep the platform healthy
– We need to do it together
●
We need good abstractions; let's
build them!
Interlude:
Have you ever submitted a patch
to the Linux Kernel?
What Maintainers Care About
diff --git a/arch/arm/common/clkdev.c b/arch/arm/common/clkdev.c
index dba4c1d..e2b2bb6 100644
--- a/arch/arm/common/clkdev.c
+++ b/arch/arm/common/clkdev.c
@@ -53,12 +53,13 @@ static struct clk *clk_find(const char *dev_id, const char *con_id)
continue;
match += 1;
}
- if (match == 0)
- continue;
if (match > best) {
clk = p->clk;
- best = match;
+ if (match != 3)
+ best = match;
+ else
+ break;
}
}
return clk;
What Maintainers Care About
Maintainability beats everything else!
●
Fact #1: Maintainers don't test your
code
– They couldn't, even if they wanted to!
●
Fact #2: What gets you in trouble is
breaking x86!
●
Fact #3: The code needs to look good
End of Interlude
It's time we took wider ownership
of the Linux
software platform
Tools for Ownership
● Figure out what needs to change to
accomodate YOUR new design
– Nobody else will do it for you
● Relevant areas:
1. Enablement
2. Optimization
3. Ecosystem
● This week's Connect is a great place to start
1. Enablement
●
Think about upstreaming early
● Get platform enablement right the first time
– Device Tree
– Pincontrol, regulators, common clock, dma-buf
– Power management frameworks
● cpuidle, cpufreq, runtime PM, device PM
● Don't miss Monday's training sessions in
Fountain
– Follow Deepak there
2. Optimization
● Optimize, but remember the upstream context!
● Power management
– big.LITTLE Switcher and MP
● v8 and the future of the architecture
● System-wide performance
– Zero-copy for GPU, CPU
● Code-level optimization
– The Linaro toolchain
– NEON in-kernel – and where else?
3. Ecosystem
● The boot architecture
– UEFI, ACPI and other evils
● Upgrades, enablement and the LTS Kernel
● Platforms
– Android
– Ubuntu
– And beyond
● Validation and Continuous Integration
Welcome
● Thank you for making the time to come
● Connect is not for innocent bystanders
– We expect YOU to help define the future
● I love this event, and I hope you will too

More Related Content

More from Linaro

Bud17 113: distribution ci using qemu and open qa
Bud17 113: distribution ci using qemu and open qaBud17 113: distribution ci using qemu and open qa
Bud17 113: distribution ci using qemu and open qaLinaro
 
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018Linaro
 
HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018Linaro
 
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...Linaro
 
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...Linaro
 
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...Linaro
 
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...Linaro
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineLinaro
 
HKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening KeynoteHKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening KeynoteLinaro
 
HKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP WorkshopHKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP WorkshopLinaro
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineLinaro
 
HKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18-315 - Why the ecosystem is a wonderful thing, warts and allHKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18-315 - Why the ecosystem is a wonderful thing, warts and allLinaro
 
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse HypervisorHKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse HypervisorLinaro
 
HKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMUHKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMULinaro
 
HKG18-113- Secure Data Path work with i.MX8M
HKG18-113- Secure Data Path work with i.MX8MHKG18-113- Secure Data Path work with i.MX8M
HKG18-113- Secure Data Path work with i.MX8MLinaro
 
HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation Linaro
 
HKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted bootHKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted bootLinaro
 
HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...
HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...
HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...Linaro
 
HKG18-317 - Arm Server Ready Program
HKG18-317 - Arm Server Ready ProgramHKG18-317 - Arm Server Ready Program
HKG18-317 - Arm Server Ready ProgramLinaro
 
HKG18-312 - CMSIS-NN
HKG18-312 - CMSIS-NNHKG18-312 - CMSIS-NN
HKG18-312 - CMSIS-NNLinaro
 

More from Linaro (20)

Bud17 113: distribution ci using qemu and open qa
Bud17 113: distribution ci using qemu and open qaBud17 113: distribution ci using qemu and open qa
Bud17 113: distribution ci using qemu and open qa
 
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
 
HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018
 
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
 
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
 
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
 
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
 
HKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening KeynoteHKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening Keynote
 
HKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP WorkshopHKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP Workshop
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
 
HKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18-315 - Why the ecosystem is a wonderful thing, warts and allHKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18-315 - Why the ecosystem is a wonderful thing, warts and all
 
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse HypervisorHKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
 
HKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMUHKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMU
 
HKG18-113- Secure Data Path work with i.MX8M
HKG18-113- Secure Data Path work with i.MX8MHKG18-113- Secure Data Path work with i.MX8M
HKG18-113- Secure Data Path work with i.MX8M
 
HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation
 
HKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted bootHKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted boot
 
HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...
HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...
HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...
 
HKG18-317 - Arm Server Ready Program
HKG18-317 - Arm Server Ready ProgramHKG18-317 - Arm Server Ready Program
HKG18-317 - Arm Server Ready Program
 
HKG18-312 - CMSIS-NN
HKG18-312 - CMSIS-NNHKG18-312 - CMSIS-NN
HKG18-312 - CMSIS-NN
 

Recently uploaded

TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 

Recently uploaded (20)

TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 

Q2.12: Linaro Connect Q2.12 Opening Plenary

  • 1. Innovation versus Maintenance A Linux on ARM Dilemma Christian “kiko” Reis kiko@linaro.org Linaro Connect Hong Kong Q2 2012
  • 2. On Wed, Mar 30, 2011 at 6:31 PM, Nicolas Pitre wrote: > > But x86 is peanuts. Really.
  • 3. Is x86 really peanuts? ● Many in-kernel features – ACPI – User-Mode Linux, KVM, Xen – vDSO – Suspend, resume, hibernate, cpufreq, cpuidle – perf, kprobes, uprobes – i386 to i7 to Medfield ● 25+ years of hardware
  • 4. The x86 Platform ● Architecturally, x86 is pretty standardized: – Boot interface – PCI (including bus discoverability) – BIOS – VESA – Northbridge & Southbridge – Little-Endian ● Even x86 SoCs are quite similar to each other
  • 5. The ARM Platform ● We do have some standards. However.. ● ARM doesn't specify complete systems Instead, chip makers do ● ARM's ecosystem has inherent variation – One one side lies madness – On the other trivialization
  • 6. LOC per architecture in Linux 3.4 arm powerpc mips x86 m68k sparc sh blackfin ia64 cris s390 alpha 0 100000 200000 300000 400000 500000 600000 ● 486,429 LOC in arch/arm this month ● But how did we get here?
  • 7. Is It All Nokia's Doing? ● 2005: Nokia releases the 770 on kernel 2.6.12 ● Support for the TI OMAP became a big deal ● OEM interest in Linux spurred upstreaming
  • 8. Why upstreaming benefits OEMs ● Looking at it from their perspective: 1. A simpler software enablement story 2. The long-term ability to upgrade 3. Long-tail innovation ● A standard kernel can make up for the absence of a complete platform – However, it's like eating healthy food..
  • 9. They asked for it! ● SoC vendors and software integrators got the message ● Major effort from 2008 onwards to upstream ● Mixed functional results – Many platforms have some support upstream – For most of them, support is partial at best ● However, led to a very important change
  • 10. 2.6.0 2.6.2 2.6.4 2.6.6 2.6.8 2.6.10 2.6.12 2.6.14 2.6.16 2.6.18 2.6.20 2.6.22 2.6.24 2.6.26 2.6.28 2.6.30 2.6.32 2.6.34 2.6.36 2.6.38 0 50000 100000 150000 200000 250000 300000 350000 MIPS x86 ARM 2.6.24: i386 & x86_64 consolidation 2.6.27: defconfig and marvell madness 2.6.35: defconfig genocide Lines changed per architecture for each kernel > 2.6.0 Linaro Founded (2010)
  • 12. Victims of our own success! ● So Linus doesn't like big diffstats? Not really.. ● 3.4: 11086 files changed, 576155 insertions(+), 358368 deletions(-) ● Linus is concerned with poor design – Both on software and hardware platform level ● Certainly, the kernel wasn't designed to accommodate SoC variation – We know excessive variation is waste ● However, the answer isn't to reject variability – We should understand and plan for it!
  • 14. Innovation vs. Maintenence ● Our ecosystem has a rich inherent diversity ● This diversity is our strength – Each company developing new approaches to power, performance and price ● Learn from upstream's design concerns ● Unchecked, this innovation is unsustainable – We need to keep the platform healthy – We need to do it together ● We need good abstractions; let's build them!
  • 15. Interlude: Have you ever submitted a patch to the Linux Kernel?
  • 16. What Maintainers Care About diff --git a/arch/arm/common/clkdev.c b/arch/arm/common/clkdev.c index dba4c1d..e2b2bb6 100644 --- a/arch/arm/common/clkdev.c +++ b/arch/arm/common/clkdev.c @@ -53,12 +53,13 @@ static struct clk *clk_find(const char *dev_id, const char *con_id) continue; match += 1; } - if (match == 0) - continue; if (match > best) { clk = p->clk; - best = match; + if (match != 3) + best = match; + else + break; } } return clk;
  • 17. What Maintainers Care About Maintainability beats everything else! ● Fact #1: Maintainers don't test your code – They couldn't, even if they wanted to! ● Fact #2: What gets you in trouble is breaking x86! ● Fact #3: The code needs to look good
  • 19. It's time we took wider ownership of the Linux software platform
  • 20. Tools for Ownership ● Figure out what needs to change to accomodate YOUR new design – Nobody else will do it for you ● Relevant areas: 1. Enablement 2. Optimization 3. Ecosystem ● This week's Connect is a great place to start
  • 21. 1. Enablement ● Think about upstreaming early ● Get platform enablement right the first time – Device Tree – Pincontrol, regulators, common clock, dma-buf – Power management frameworks ● cpuidle, cpufreq, runtime PM, device PM ● Don't miss Monday's training sessions in Fountain – Follow Deepak there
  • 22. 2. Optimization ● Optimize, but remember the upstream context! ● Power management – big.LITTLE Switcher and MP ● v8 and the future of the architecture ● System-wide performance – Zero-copy for GPU, CPU ● Code-level optimization – The Linaro toolchain – NEON in-kernel – and where else?
  • 23. 3. Ecosystem ● The boot architecture – UEFI, ACPI and other evils ● Upgrades, enablement and the LTS Kernel ● Platforms – Android – Ubuntu – And beyond ● Validation and Continuous Integration
  • 24. Welcome ● Thank you for making the time to come ● Connect is not for innocent bystanders – We expect YOU to help define the future ● I love this event, and I hope you will too