SlideShare a Scribd company logo
1 of 21
Download to read offline
Thu 6 March, 4:10pm, Victor Kamensky
LCA14-416: Big Endian - Where are
we?
• Mandatory read:
Big and Little Endian Inside Out – Ben Herrenschmidt, LPC12
• ARM CPU architecture is endian agnostic - can do either
• ARM Linux ecosystem traditionally is Little Endian
• Surge of interest in ARM Big Endian support
What is Big and Little Endian?
• Very big, 100M+ LOC, legacy code, Big Endian only
• Runs on MIPS and PPC CPUs, looking forward to ARM
CPU adoption
• Not because Big Endian is better for networking
applications
Why is Big Endian?
• Last few years ARM Linux runs in Little Endian mode
• XScale CPU runs in BE32 mode
• Big Endian BE32 ecosystem for XScale CPUs still exists
in distros like OpenWRT
• Some vendors offered very minimal V7 BE BSP support
ARM Big Endian Linux History
• Build reasonable, supported, Linux Big Endian
ecosystem for ARM V7 and V8 CPUs. Support as
“second class citizen” is good enough
• Mixed mode support where Little Endian and Big Endian
code could coexist on the same box
• Tools and methodologies that could help transition Big
Endian Only code to Endian Agnostic
LNG Endian Team was Set to Do
• Truly great open source effort
• Effort got help from many companies and individuals
• Few to mention, but not limited:
• Codethink
• ARM
• Linaro
• Thank you!
We Got Help … a Lot!
• V7 ARM BE8 gcc support existed for a while
• V8 ARM BE gcc support was verified/fixed by Linaro
toolchain group
• Linaro toolchain releases for gcc 4.8 include Big Endian
variants:
• V7 - armeb
• V8 - aarch64_be
• Some issues may remain for Neon vector intrinsics
ARM V7 & V8 Big Endian Toolchain
• Bootloader, u-boot or uefi, remains Little Endian
• All typical SoCs peripheral devices are Little Endian
ARM Big Endian Kernel Context
• BE8 ARM V7 core support was driven by Ben Dooks
from Codethink
• LNG Endian team collaborated with Ben: testing, fixes,
review
• BE8 V7 core support series appeared in 3.13
ARM V7 Big Endian Kernel Core Support
• Some just worked … with very minor changes
• TC2
• Mvebu
• Highbank
• LNG Endian team use TI Pandaboard and Samsung
Arndale as reference and development platform for Big
Endian work (a lot of regular driver fixes)
• TI Pandaboard changes are in process of being upstreamed
• Samsung Arndale changes no intention to upstream
• LNG Endian team helped, in different degrees, to enable
Big Endian support on
• TI Keystone
• LSI Amarillo
ARM V7 Big Endian Kernel BSP
• Supported through Linaro OE
• Changes are in meta-linaro/meta-bigendian
• Very few user-land packages are affected
• Few examples:
• strace
• python libffi
ARM V7 Big Endian User-land
• LNG Endian team tested and fixed different kernel
functional areas which could be affected by endianity
change
• Just to mention few:
• BE kexec/kdump - minor fixes
• BE kprobes - upstream pull request posted
• BE uprobes - folded into regular Linaro uprobes work
• BE KVM host support - patches posted for upstream review
ARM V7 Big Endian Kernel Advanced
Features
• Done by ARM folks: Matthew Leach, Will Deacon
• Was very nice surprise
• Included in 3.13
• Works/tested on fastmodels and real V8 h/w
ARM V8 Big Endian Kernel Core Support
• Big Endian V8 KVM host support patches posted for
upstream review
• We will test other advanced features on V8 as soon as
they are available on V8
ARM V8 Kernel Big Endian Advanced
Features
• Supported through Linaro OE
• aarch64_be target support was added to
openembedded-core with help of Linaro release team
• Ran into few minor issues
ARM V8 Big Endian User-land
• Java
• Valgrind
• Gcc neon vector intrinsics
Anything else? What did we miss?
Known Big Endian ARM Linux Features
that don’t Work
• “Special” Big Endian user-land process on top of Little
Endian Kernel along side with regular Little Endian
processes
• Byte-swaps on system call and ioctl level in kernel
• Cisco conducted some experiments in this area:
• converted around 30 system calls and 20 ioctls
• messy, big, intrusive change
• non-trivial code in futex area
• Byte-swaps before calling Little endian function:
• did not actually try
• but seems even more harder
• i.e how to debug process that may have Big Endian and Little Endian
code coexisting
Mixed Mode: Big and Little Endian
• Done by Marc Zyngier
• Looks nice and clean
• See Crossing the endianness bridge - Marc Zyngier KVM Forum '13
• Marc showed Big Endian guest running on top of Little
Endian KVM host
• Require changes in emulator - patches for kvmtool by
Marc are available
• Guest need to treat virtio config as LE; not committed
yet; may need to wait for virtio-2 support
• Once Big Endian KVM support appeared it could run
Little Endian guests (tested on V7 and V8)
• If we have time will make a demo of it
Mixed Mode: through KVM
• Cisco runs big project in this area, attempting to convert
100M+ Big Endian only LOC into Endian agnostic code
• Effort is much larger compared to anything LNG Endian
team did
• Approach outline:
• sparse with a lot of changes used to annotated code and detect
endian issues
• sparse tool was changed to do source to source transformation
• python plugin added that allows write external rules how to transform
code
• Considered very risky and big, may take long time
• Cisco most likely will be able to share and present
details about the effort by next Linaro Connect (tentative
agreement reached)
Big Endian to Endian Agnostic Tools
• ARM V7 and V8 Big Endian basic ecosystem looks good
• Mixed mode support should be addressed through KVM
virtualization
• Big Endian porting mainly will be based on Cisco internal
project experience
Summary
More about Linaro Connect: http://connect.linaro.org
More about Linaro: http://www.linaro.org/about/
More about Linaro engineering: http://www.linaro.org/engineering/
Linaro members: www.linaro.org/members

More Related Content

More from Linaro

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
 
HKG18-301 - Dramatically Accelerate 96Board Software via an FPGA with Integra...
HKG18-301 - Dramatically Accelerate 96Board Software via an FPGA with Integra...HKG18-301 - Dramatically Accelerate 96Board Software via an FPGA with Integra...
HKG18-301 - Dramatically Accelerate 96Board Software via an FPGA with Integra...Linaro
 
HKG18-300K2 - Keynote: Tomas Evensen - All Programmable SoCs? – Platforms to ...
HKG18-300K2 - Keynote: Tomas Evensen - All Programmable SoCs? – Platforms to ...HKG18-300K2 - Keynote: Tomas Evensen - All Programmable SoCs? – Platforms to ...
HKG18-300K2 - Keynote: Tomas Evensen - All Programmable SoCs? – Platforms to ...Linaro
 

More from Linaro (20)

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
 
HKG18-301 - Dramatically Accelerate 96Board Software via an FPGA with Integra...
HKG18-301 - Dramatically Accelerate 96Board Software via an FPGA with Integra...HKG18-301 - Dramatically Accelerate 96Board Software via an FPGA with Integra...
HKG18-301 - Dramatically Accelerate 96Board Software via an FPGA with Integra...
 
HKG18-300K2 - Keynote: Tomas Evensen - All Programmable SoCs? – Platforms to ...
HKG18-300K2 - Keynote: Tomas Evensen - All Programmable SoCs? – Platforms to ...HKG18-300K2 - Keynote: Tomas Evensen - All Programmable SoCs? – Platforms to ...
HKG18-300K2 - Keynote: Tomas Evensen - All Programmable SoCs? – Platforms to ...
 

Recently uploaded

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
🐬 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
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 

Recently uploaded (20)

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 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 🐘
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 

LCA14: LCA14-416: Big Endian - where are we?

  • 1. Thu 6 March, 4:10pm, Victor Kamensky LCA14-416: Big Endian - Where are we?
  • 2. • Mandatory read: Big and Little Endian Inside Out – Ben Herrenschmidt, LPC12 • ARM CPU architecture is endian agnostic - can do either • ARM Linux ecosystem traditionally is Little Endian • Surge of interest in ARM Big Endian support What is Big and Little Endian?
  • 3. • Very big, 100M+ LOC, legacy code, Big Endian only • Runs on MIPS and PPC CPUs, looking forward to ARM CPU adoption • Not because Big Endian is better for networking applications Why is Big Endian?
  • 4. • Last few years ARM Linux runs in Little Endian mode • XScale CPU runs in BE32 mode • Big Endian BE32 ecosystem for XScale CPUs still exists in distros like OpenWRT • Some vendors offered very minimal V7 BE BSP support ARM Big Endian Linux History
  • 5. • Build reasonable, supported, Linux Big Endian ecosystem for ARM V7 and V8 CPUs. Support as “second class citizen” is good enough • Mixed mode support where Little Endian and Big Endian code could coexist on the same box • Tools and methodologies that could help transition Big Endian Only code to Endian Agnostic LNG Endian Team was Set to Do
  • 6. • Truly great open source effort • Effort got help from many companies and individuals • Few to mention, but not limited: • Codethink • ARM • Linaro • Thank you! We Got Help … a Lot!
  • 7. • V7 ARM BE8 gcc support existed for a while • V8 ARM BE gcc support was verified/fixed by Linaro toolchain group • Linaro toolchain releases for gcc 4.8 include Big Endian variants: • V7 - armeb • V8 - aarch64_be • Some issues may remain for Neon vector intrinsics ARM V7 & V8 Big Endian Toolchain
  • 8. • Bootloader, u-boot or uefi, remains Little Endian • All typical SoCs peripheral devices are Little Endian ARM Big Endian Kernel Context
  • 9. • BE8 ARM V7 core support was driven by Ben Dooks from Codethink • LNG Endian team collaborated with Ben: testing, fixes, review • BE8 V7 core support series appeared in 3.13 ARM V7 Big Endian Kernel Core Support
  • 10. • Some just worked … with very minor changes • TC2 • Mvebu • Highbank • LNG Endian team use TI Pandaboard and Samsung Arndale as reference and development platform for Big Endian work (a lot of regular driver fixes) • TI Pandaboard changes are in process of being upstreamed • Samsung Arndale changes no intention to upstream • LNG Endian team helped, in different degrees, to enable Big Endian support on • TI Keystone • LSI Amarillo ARM V7 Big Endian Kernel BSP
  • 11. • Supported through Linaro OE • Changes are in meta-linaro/meta-bigendian • Very few user-land packages are affected • Few examples: • strace • python libffi ARM V7 Big Endian User-land
  • 12. • LNG Endian team tested and fixed different kernel functional areas which could be affected by endianity change • Just to mention few: • BE kexec/kdump - minor fixes • BE kprobes - upstream pull request posted • BE uprobes - folded into regular Linaro uprobes work • BE KVM host support - patches posted for upstream review ARM V7 Big Endian Kernel Advanced Features
  • 13. • Done by ARM folks: Matthew Leach, Will Deacon • Was very nice surprise • Included in 3.13 • Works/tested on fastmodels and real V8 h/w ARM V8 Big Endian Kernel Core Support
  • 14. • Big Endian V8 KVM host support patches posted for upstream review • We will test other advanced features on V8 as soon as they are available on V8 ARM V8 Kernel Big Endian Advanced Features
  • 15. • Supported through Linaro OE • aarch64_be target support was added to openembedded-core with help of Linaro release team • Ran into few minor issues ARM V8 Big Endian User-land
  • 16. • Java • Valgrind • Gcc neon vector intrinsics Anything else? What did we miss? Known Big Endian ARM Linux Features that don’t Work
  • 17. • “Special” Big Endian user-land process on top of Little Endian Kernel along side with regular Little Endian processes • Byte-swaps on system call and ioctl level in kernel • Cisco conducted some experiments in this area: • converted around 30 system calls and 20 ioctls • messy, big, intrusive change • non-trivial code in futex area • Byte-swaps before calling Little endian function: • did not actually try • but seems even more harder • i.e how to debug process that may have Big Endian and Little Endian code coexisting Mixed Mode: Big and Little Endian
  • 18. • Done by Marc Zyngier • Looks nice and clean • See Crossing the endianness bridge - Marc Zyngier KVM Forum '13 • Marc showed Big Endian guest running on top of Little Endian KVM host • Require changes in emulator - patches for kvmtool by Marc are available • Guest need to treat virtio config as LE; not committed yet; may need to wait for virtio-2 support • Once Big Endian KVM support appeared it could run Little Endian guests (tested on V7 and V8) • If we have time will make a demo of it Mixed Mode: through KVM
  • 19. • Cisco runs big project in this area, attempting to convert 100M+ Big Endian only LOC into Endian agnostic code • Effort is much larger compared to anything LNG Endian team did • Approach outline: • sparse with a lot of changes used to annotated code and detect endian issues • sparse tool was changed to do source to source transformation • python plugin added that allows write external rules how to transform code • Considered very risky and big, may take long time • Cisco most likely will be able to share and present details about the effort by next Linaro Connect (tentative agreement reached) Big Endian to Endian Agnostic Tools
  • 20. • ARM V7 and V8 Big Endian basic ecosystem looks good • Mixed mode support should be addressed through KVM virtualization • Big Endian porting mainly will be based on Cisco internal project experience Summary
  • 21. More about Linaro Connect: http://connect.linaro.org More about Linaro: http://www.linaro.org/about/ More about Linaro engineering: http://www.linaro.org/engineering/ Linaro members: www.linaro.org/members