SlideShare una empresa de Scribd logo
1 de 14
Descargar para leer sin conexión
Group photograph at Linaro Connect in Copenhagen
Monday 29 Oct 2012
Why? What? How? Who? Where? When?
LCE-13
OpenJDK
www.linaro.org
Meet the team
• RedHat
o Andrew Haley (Template Interpreter & C1 Compiler)
o Andrew Dinn (C2 Compiler)
• Linaro
o Andrew Johnson (Test and Benchmarking)
o Ed Nevill (General dogsbody)
• With thanks to
o Riku Voipio (help with OpenEmbedded)
o Andrew McDermott (help with CI loop integration)
• Management
o Andrea Gallo (LEG Director)
o Ilias Biris (Project Manager)
www.linaro.org
Why Java
• Java is the most popular programming language!
– Or maybe 2nd most popular
– Depending who you talk to
• Java is used in servers – a lot
• Tends to be used in performance critical database apps.
• Tier 1 Java support is a requirement
Why Java
www.linaro.org
Java terminology
• J2ME – Java 2 Micro Edition
– Opensource implementation by phoneMe
• J2SE – Java 2 Standard Edition
– Opensource implementation by OpenJDK
• J2EE – Java 2 Enterprise Edition
– OpenJDK + Jboss
• OpenJDK
– Hotspot – The VM
– JDK – The Java runtime
– Other components (corba, jaxp, jaxws, nashorn)
www.linaro.org
Inside Hotspot
• Zero
– C++ bytecode interpreter – veerrrryy sloooowww
– Useful as a reference implementation only
• Template Interpreter
– Chunk of assembler (template) for each bytecode
– Templates copied and modified depending on entry
conditions (atos, itos, vtos, dtos)
– Computed goto at end of each loop removes loop
overhead.
– Performance improvement 3-5x over Zero
www.linaro.org
Inside Hotspot
• C1 (Client) Compiler
– Simple register allocator
– Simple straight line compilation
– Simple optimisation across bytecodes
– Assumed 32 bit!
– Performance ~10 x Template interpreter
• C2 (Server) Compiler
– Aggressive global optimisation
– Predictive optimisation / deoptimisation
– Performance ~2 X C1
www.linaro.org
Inside Hotspot
• Tiered compilation
– Start executing in Template interpreter
– Compile with C1 if method is hot
– Compile with C2 if method is still hot
– Tiered compilation good for dynamically changing loads
– If load is static, may as well just use C2
– But C2 will give very slow startup,
www.linaro.org
Current Status
• AARCH64 initial released pushed Monday
– Announcement on aarch64 mailing list
• Template Interpreter
– Code complete
– Fails 2 more Mauve tests compared to Zero
– “Pretty Rock Solid”
• C1 Compiler
– Compiling 100s of methods
– Not quite code complete – nearly
• C2 Compiler
– Work in progress
www.linaro.org
Next Steps
• Template Interpreter
– Continue testing with JTReg & fix faults
– Integrate build into OE & develop CI loop
• C1 Compiler
– Fix existing faults to get to code complete
– Once code complete move to testing
– Not yet stable enough to test
• C2 Compiler
– Under development adinn @ redhat
www.linaro.org
Resources
• Source mercurial
– http://hg.openjdk.java.net/aarch64-port/jdk8
• Mailing list
– aarch64-port-dev@openjdk.java.net
• IRC
– Server: irc.oftc.net Channel: #openjdk
Group photograph at Linaro Connect in Copenhagen
Monday 29 Oct 2012
Test and Benchmark Status
LCE-13
OpenJDK
www.linaro.org
Available Validation Tests
● Mauve
○ Developed for "clean room" implementations of Java
○ Maintained through Java 6
○ Uses a Java test harness
■ Tests can be run on the same Java that runs the harness or a
designated JVM
■ Over 5000 tests, covering both java and javax packages
○ Tests run on several ports
■ OpenJDK 7 Zero port
■ OpenJDK 8 Zero port
■ OpenJDK 8 Template interpreter
■ OpenJDK 8 Client compiler (C1)
● JTREG
○ Unit tests supplied with OpenJDK
○ Current with OpenJDK
○ Over 3000 tests in combined "core" and "default" suites
○ Same harness used to run JCK when available
www.linaro.org
Test Results
OpenJDK 7 x86-64 aarch64 Zero
Mauve Fail Total Tests Fail Total Tests
Totals 773 5267 800 5261
OpenJDK8 x86-64
Zero
aarch64
Zero
aarch64
Template
aarch64
Client
Mauve Fail Total Fail Total Fail Total Fail Total
Totals 554 5119 752 5114 570 5112 581 5112
OpenJDK 8 x86-64
Zero
aarch64
Zero
aarch64
Template
JTREG Pass Fail Pass Fail Pass Fail
Totals 2957 78 2638 381 2638 381
www.linaro.org
Benchmarks
● Embedded Caffeinemark
○ Developed for Java ME
○ Small enough to run on emulator
● SPECjvm2008
○ Freely available
○ Single subset run on emulator as proof of concept
○ More complete runs when hardware available
● SPECjbb2013
○ Newly released
○ Designed specifically for Java server performance
○ Available under license - will obtain when all components are
ready

Más contenido relacionado

Más de 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 2018
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
 
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 mainline
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 mainline
Linaro
 
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
Linaro
 
HKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMUHKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMU
Linaro
 
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 boot
Linaro
 
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 Program
Linaro
 
HKG18-312 - CMSIS-NN
HKG18-312 - CMSIS-NNHKG18-312 - CMSIS-NN
HKG18-312 - CMSIS-NN
Linaro
 
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
 

Más de Linaro (20)

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
 
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...
 

Último

+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...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Último (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
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 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
+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...
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
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 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
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 

LCE13: LEG - OpenJDK

  • 1. Group photograph at Linaro Connect in Copenhagen Monday 29 Oct 2012 Why? What? How? Who? Where? When? LCE-13 OpenJDK
  • 2. www.linaro.org Meet the team • RedHat o Andrew Haley (Template Interpreter & C1 Compiler) o Andrew Dinn (C2 Compiler) • Linaro o Andrew Johnson (Test and Benchmarking) o Ed Nevill (General dogsbody) • With thanks to o Riku Voipio (help with OpenEmbedded) o Andrew McDermott (help with CI loop integration) • Management o Andrea Gallo (LEG Director) o Ilias Biris (Project Manager)
  • 3. www.linaro.org Why Java • Java is the most popular programming language! – Or maybe 2nd most popular – Depending who you talk to • Java is used in servers – a lot • Tends to be used in performance critical database apps. • Tier 1 Java support is a requirement Why Java
  • 4. www.linaro.org Java terminology • J2ME – Java 2 Micro Edition – Opensource implementation by phoneMe • J2SE – Java 2 Standard Edition – Opensource implementation by OpenJDK • J2EE – Java 2 Enterprise Edition – OpenJDK + Jboss • OpenJDK – Hotspot – The VM – JDK – The Java runtime – Other components (corba, jaxp, jaxws, nashorn)
  • 5. www.linaro.org Inside Hotspot • Zero – C++ bytecode interpreter – veerrrryy sloooowww – Useful as a reference implementation only • Template Interpreter – Chunk of assembler (template) for each bytecode – Templates copied and modified depending on entry conditions (atos, itos, vtos, dtos) – Computed goto at end of each loop removes loop overhead. – Performance improvement 3-5x over Zero
  • 6. www.linaro.org Inside Hotspot • C1 (Client) Compiler – Simple register allocator – Simple straight line compilation – Simple optimisation across bytecodes – Assumed 32 bit! – Performance ~10 x Template interpreter • C2 (Server) Compiler – Aggressive global optimisation – Predictive optimisation / deoptimisation – Performance ~2 X C1
  • 7. www.linaro.org Inside Hotspot • Tiered compilation – Start executing in Template interpreter – Compile with C1 if method is hot – Compile with C2 if method is still hot – Tiered compilation good for dynamically changing loads – If load is static, may as well just use C2 – But C2 will give very slow startup,
  • 8. www.linaro.org Current Status • AARCH64 initial released pushed Monday – Announcement on aarch64 mailing list • Template Interpreter – Code complete – Fails 2 more Mauve tests compared to Zero – “Pretty Rock Solid” • C1 Compiler – Compiling 100s of methods – Not quite code complete – nearly • C2 Compiler – Work in progress
  • 9. www.linaro.org Next Steps • Template Interpreter – Continue testing with JTReg & fix faults – Integrate build into OE & develop CI loop • C1 Compiler – Fix existing faults to get to code complete – Once code complete move to testing – Not yet stable enough to test • C2 Compiler – Under development adinn @ redhat
  • 10. www.linaro.org Resources • Source mercurial – http://hg.openjdk.java.net/aarch64-port/jdk8 • Mailing list – aarch64-port-dev@openjdk.java.net • IRC – Server: irc.oftc.net Channel: #openjdk
  • 11. Group photograph at Linaro Connect in Copenhagen Monday 29 Oct 2012 Test and Benchmark Status LCE-13 OpenJDK
  • 12. www.linaro.org Available Validation Tests ● Mauve ○ Developed for "clean room" implementations of Java ○ Maintained through Java 6 ○ Uses a Java test harness ■ Tests can be run on the same Java that runs the harness or a designated JVM ■ Over 5000 tests, covering both java and javax packages ○ Tests run on several ports ■ OpenJDK 7 Zero port ■ OpenJDK 8 Zero port ■ OpenJDK 8 Template interpreter ■ OpenJDK 8 Client compiler (C1) ● JTREG ○ Unit tests supplied with OpenJDK ○ Current with OpenJDK ○ Over 3000 tests in combined "core" and "default" suites ○ Same harness used to run JCK when available
  • 13. www.linaro.org Test Results OpenJDK 7 x86-64 aarch64 Zero Mauve Fail Total Tests Fail Total Tests Totals 773 5267 800 5261 OpenJDK8 x86-64 Zero aarch64 Zero aarch64 Template aarch64 Client Mauve Fail Total Fail Total Fail Total Fail Total Totals 554 5119 752 5114 570 5112 581 5112 OpenJDK 8 x86-64 Zero aarch64 Zero aarch64 Template JTREG Pass Fail Pass Fail Pass Fail Totals 2957 78 2638 381 2638 381
  • 14. www.linaro.org Benchmarks ● Embedded Caffeinemark ○ Developed for Java ME ○ Small enough to run on emulator ● SPECjvm2008 ○ Freely available ○ Single subset run on emulator as proof of concept ○ More complete runs when hardware available ● SPECjbb2013 ○ Newly released ○ Designed specifically for Java server performance ○ Available under license - will obtain when all components are ready