Performance Challenges Plague RISC-V Development in Fedora Linux

Over the past three months, significant efforts have been made to advance the RISC-V implementation of Fedora Linux, revealing both progress and substantial performance bottlenecks that continue to hinder the platform’s development.

Package Management and Bug Resolution

Extensive work has been conducted on the Fedora RISC-V tracking system, with most pending issues being addressed and resolved. Currently, only 17 entries remain in the NEW status, representing a significant reduction in the backlog of unresolved problems.

Development Workflow and Package Building

The standard development process involves retrieving Fedora package sources and building them using the fedora-43-riscv64 configuration. This methodical approach has resulted in 86 pull requests being submitted for various Fedora packages, ranging from complex software like LLVM15 to simpler applications such as gaming packages. The majority of these submissions have been successfully merged and built for Fedora 43, following the f43-updates tag in the Fedora build system.

Critical Performance Issues

The most significant challenge facing RISC-V development is the substantial performance deficit compared to other architectures. Current RISC-V hardware demonstrates notably slower execution speeds, resulting in dramatically extended build times. Analysis of the binutils 2.45.1-4.fc43 package compilation reveals stark differences across architectures:

  • ARM64 systems with 12 cores and 46GB RAM complete builds in 36 minutes
  • x86 32-bit systems with 8 cores and 29GB RAM finish in 25 minutes
  • PowerPC64 little-endian systems with 10 cores and 37GB RAM require 46 minutes
  • RISC-V systems with 8 cores and 16GB RAM need 143 minutes
  • IBM Z systems with 3 cores and 45GB RAM complete builds in 37 minutes
  • x86-64 systems with 8 cores and 29GB RAM finish in 29 minutes

To mitigate memory consumption and reduce compilation times, the current RISC-V Fedora implementation operates with Link Time Optimization disabled.

Hardware Limitations

Existing RISC-V build infrastructure consists of systems with four to eight cores and memory configurations ranging from 8GB to 32GB, depending on the specific board used. These processors are typically comparable to ARM Cortex-A55 cores, which represent the entry-level tier in contemporary ARM processor designs.

Emerging solutions include the UltraRISC UR-DP1000 system-on-chip found in the Milk-V Titan motherboard, which supports up to 64GB of RAM, and SpacemiT K3-based systems with 32GB memory capacity. While these represent improvements over current hardware, they do not provide the complete solution needed for optimal performance.

Emulation as a Workaround

The extended build times on physical hardware make QEMU emulation a viable alternative for certain tasks. With 80 emulated cores, complex packages like LLVM15 can be compiled in approximately 4 hours, compared to 10.5 hours on physical Banana Pi BPI-F3 hardware. This approach proves particularly effective for packages that efficiently utilize multiple cores and substantial memory resources.

Requirements for Production Readiness

For RISC-V to achieve status as an official primary architecture in Fedora Linux, the platform requires hardware capable of completing complex package builds in under one hour with full Link Time Optimization enabled. Additionally, this infrastructure must be suitable for rack mounting and enterprise-level management, matching the standards of conventional server hardware.

Development Roadmap

Plans are underway to begin Fedora Linux 44 development, with the goal of standardizing kernel images across all build systems, which currently operate on mixed kernel versions. Link Time Optimization will remain disabled for the immediate future. Efforts are also being made to introduce faster build hardware and allocate resource-intensive packages to higher-performance systems as they become available.

Leave a Reply

Your email address will not be published. Required fields are marked *