RISE TSC Meeting Notes
March 20, 2025
Security Software WG Deep-Dive: Robin Randhawa
Timeline of Events (or the story thus far)
This is the first Security SW WG Deep Dive to the RISE TSC
This is a relatively new Working Group
Justification for the WG first pitched to the RISE TSC in June 2024
Generally unanimous support
Working Group created in August 2024
First WG Kick-off meeting in September 2024
Monthly meets since then
The story arc that has evolved since the WG’s inception
Initially: “Security is broad: What is it that we want to do ?”
Then: “Let’s look at all the security specific RVIA specs that are frozen/ratified”
Then: “Let’s focus on security for embedded first! No! Datacenter/enterprise first!”
Then: “Let’s find a common feature subset between embedded and the rest”
Then: “Let’s focus on embedded first but choose work that enables the rest too”
Finally: “Here’s a break-down of the work we need to do first, let’s talk”
Current Status: OP-TEE for RISC-V Work Definition in Progress
Next Steps
Complete OP-TEE/OpenSBI work definitions
Get reviews done by key stakeholders (Firmware/SecSW WGs)
Post review - translate to RISE WG work packages
Nominate work package owners
Produce RFPs for suitable work to rope in contractors
Bring in focus beyond embedded
Undergo a similar consensus driven work identification exercise
Areas
CoVE enablement
Qemu, OpenSBI, CoVE RDSM
Build work package definitions, get them reviewed
Nominate owners, produce RFPs
What has worked well
Good, gradual convergence of opinions towards common goals
Good cross WG collaboration!
Credits
Anup Patel (VentanaMicro)
Sunil VL (VentanaMicro)
Tim Ouyang (AndesTech)
Alvin Chang (AndesTech)
Ravi Sahita (Rivos)
Peter Lin (SiFive)
What has not worked well
Everyone is busy!
Hard to get timely responses generally speaking
Need to constantly push and prod folks…
More mailing list interactions needed
General tendency to leave discussions until WG monthly meets
Will try hard to change this!
More enthusiasm needed!
Not enough folks attending monthly WG meets
Security is a generally dry topic, yes, but it is super important!!!
Mar 13, 2025
RISE Developer Infrastructure Deep Dive- Paul Walmsley
Topics
Developer Infrastructure WG Introduction & Vision
Build Farm
Introduction
Value
2024Q4 Review
2025Q1 Review
Board Farm
Developer Tools
Looking Forward to 2025Q2
Credits
Developer Infrastructure WG Introduction
Charter
The Developer Infrastructure WG focuses on software and services to support open-source RISC-V developers - both RISE members and the broader open-source community.
Co-chairs
Barna Ibrahim (Rivos)
Paul Walmsley (SiFive)
TSC Chair Contact
Nathan Egge (Google)
Developer Infrastructure WG Vision
Three mutually-supporting projects
RISE Build Farm (Active)
RISE Board Farm (Inactive)
RISE Developer Tooling (Active)
Goal
Provide robust development infrastructure and tools to RISC-V developers
RISE Build Farm: Introduction
Objective
Cross-build and test (in simulation) RISC-V ports of key open source software
Running in Hetzner Cloud (new!)
Björn Töpel (Rivos) coordinating
Brian “Redbeard” Harrington (Red Hat): co-admin
Status
Eight active projects
~22 active large VM instances on Hetzner Cloud
Mostly acting as Github Runner performing cross-compilation/qemu-system-riscv{32,64} tests
Build Farm: Value
Thousands of builds, and millions of tests per month on key, foundational RISC-V open source projects
GCC, LLVM, Linux kernel, GLIBC, Python
> 150 toolchain bugs found via our fuzzer instances
Jeff Law/Ventana (and upstream GCC maintainer)
“We don’t commit anything into gcc for RISC-V that hasn’t passed the RISE gcc CI. Incredibly helpful!”
Build Farm: 2024Q4 Review
Eight existing projects running
RISE GCC pre-commit CI (Patrick O'Neill, Edwin Lu)
RISE GCC post-commit CI (Patrick O'Neill, Edwin Lu)
RISE GCC fuzzer CI (Patrick O'Neill, Edwin Lu)
RISE GCC microcontroller CI (Patrick O'Neill, Edwin Lu)
RISE GLIBC pre-commit CI (Patrick O'Neill, Edwin Lu)
RISE LLVM fuzzer CI (Patrick O'Neill, Edwin Lu)
RISE Linux Kernel CI (Björn Töpel)
RISE Python Wheels (Mark Ryan)
Two existing projects temporarily expanded
RISE GCC fuzzer CI (Patrick O'Neill, Edwin Lu)
RISE LLVM fuzzer CI (Patrick O'Neill, Edwin Lu)
Remaining GCP credits leveraged to greatly expand the number of fuzzer instances running (and thus the number of bugs we could find)
Thanks to Patrick, Edwin, and Björn for putting in extra work to make this possible!
One existing project shut down
RISE QEMU Aarch64 test system (Paul Walmsley, Max Chou)
No longer needed by RP005
Considerable volunteer time spent preparing for the Hetzner transition and monitoring LF/Hetzner progress
Google Cloud account closed out with ~$10,000 USD of credits unused (preserved as a safety margin)
All credits expired December 31, 2024
Thanks again to Google for the donation
Hetzner account was not set up in time to complete the server transition before the end of the year
RISE incurred some direct budget costs in 2025Q1
Discussed in following slides
Ran on GCP throughout January as we waited for the Hetzner account to be set up
Toolchain fuzzer instances temporarily shut down to reduce costs (non-critical services)
Required direct payment from RISE budget, as GCP credits expired EOY 2024
Migrated to new Hetzner infrastructure at the end of January
Fast execution saved RISE money
Credits
Björn Töpel (Rivos), Patrick O’Neill (Rivos), Edwin Lu (Rivos), Mark Ryan (Rivos)
Brian “Redbeard” Harrington (Red Hat)
Some challenges with the Google Cloud->Hetzner transition
Hetzner account not available for our use until end of January
Two month latency from when we requested it
Unplanned 30 hour outage at the end of February
Caused by a billing dispute
Adding external monitoring to catch outages sooner
Hetzner account migration at the beginning of March
Original Hetzner account not set up to bill in Euros
New account had to be created and instances migrated
No ability for RISE to directly track expenditures on Hetzner
Our accounts do not have these permissions
Going forward, these deep dives will not include budget reports
Two existing projects temporarily paused in January
RISE GCC fuzzer CI (Patrick O'Neill, Edwin Lu)
RISE LLVM fuzzer CI (Patrick O'Neill, Edwin Lu)
One existing project expanded (as planned)
RISE Linux Kernel CI (Björn Töpel)
Doubled the number of servers to provide additional test coverage
RISE Board Farm
Objective
Provide a range of Linux-capable RISC-V boards to run functionality and performance tests on CI-generated code
Investigate feasibility of providing developer access to boards
Status
No significant progress in 2024Q4 or 2025Q1
Build Farm relocation and emergency response taking up all available management bandwidth
Planning to ramp up in 2025Q2
Volunteers solicited!
RISE Developer Tools
Objective
Provide a full Linux system image build, boot, and development environment for use on both simulators (QEMU) and RISC-V hardware
Ideally combines cross and native development environment and native system software and userspace
Status
Nathan’s Gentoo build available for general use with cutting-edge software included
Luca Barbedo putting in a lot of effort here
How to productize/test?
Credits
Barna Ibrahim (Rivos): Co-chair
Björn Töpel (Rivos): Kernel CI Build Farm Project Admin, Build Farm Lead
Brian ‘redbeard’ Harrington (Redhat): Build Farm Administrator
Edwin Lu (Rivos): Toolchain Build Farm Project Admin
Mark Ryan (Rivos): Python Build Farm Project Admin
Nathan Egge (Google): TSC contact, Developer Tools Lead
Patrick O’Neill (Rivos): Toolchain Build Farm Project Admin
Paul Walmsley (SiFive): Co-chair
Mar 6, 2025
Deep Dive Language Runtimes - Ludovic HENRY
Status Update: Java
Support for Vector extension: continual work
Support for FP16, more compiler optimizations
Matching RVA23:
Added: Zicond, Zfa, Zvkt, Zvbb
Only missing: Zimop, Zcmop, Zcb, and Zawrs
Status Update: Go
Matching RVA23:
It’s a work-in-progress
Adding C, V, B, Zicond, Zfa, Zihintpause, Zihintntl, Zcb, Zvbb, Zawrs
RP001
Wiki is up-to-date to track work to be done
Status Update: Python
RP011: Python Package Support for RISC-V
Signed, work is ongoing
Official documentation: https://riseproject.gitlab.io/python/wheel_builder/
Status Update: Python
Upstream projects can distribute on RISC-V:
No clear date for AlmaLinux availability on RISC-V
RockyLinux should be available in May 2025 on RISC-V
Viable alternative to AlmaLinux
Work Prioritization
Wiki is up-to-date
Java: https://wiki.riseproject.dev/display/HOME/LR_00%3A+Java
Python: https://wiki.riseproject.dev/display/HOME/LR_01%3A+Python
Javascript: https://wiki.riseproject.dev/display/HOME/LR_06%3A+Javascript
Rust: https://wiki.riseproject.dev/display/HOME/LR_07%3A+Rust
WASM: https://wiki.riseproject.dev/display/HOME/LR_08%3A+WebAssembly
Please comment on mailing list for prioritization
Anything not listed you’d like to see?
Anything not as high on the priority list as you expected?
Deep Dive Compilers/Toolchains – Jeff Law
Apologies for last week, customer meeting I couldn’t miss
RP007
Hoping to see upstream engagement on what they’re finding/fixing
RP008
making great progress on finding real issues and either fixing them or getting them recorded for future work
Not sure if anyone has put their name in the hopper for leading the group. I expect my bandwidth to be limited going forward, though could probably help cover GCC if absolutely necessary
GCC– GCC 15 release cycle in progress, ETA May 1
Still fixing bugs, but nothing RISC-V specific that is particularly worrisome
Many optimizations across scalar and vector domains
CRC work was finally integrated
Cactu optimization work
Vector, emphasis on x264 perf and zvl128..zvl512
Function multi-versioning
Stack-clash mitigation
Items for 2025
Xz vectorization. POC shows ~12% on spec.
Another round of Zbs & extension removal improvements,
Fusion work (significant fixes, new cases, discovery)
Uarch support for vector costing/tuning
LLVM – LLVM 20 release imminent
No major RISC-V specific concerns for release according to Philip & Craig
Stack clash mitigations have been integrated
Function Multi-versioning
Vectorize xz search loop
Items for 1H2025
Folding “addi” into loads/stores more aggressively (done)
Shrink wrapping development done, just working through review comments
Landing pads for CFI (in flight)
Improvements for x264 vectorization, more work to be done
Feb 20, 2025
Deep Dive Simulator Emulator- Daniel Barboza
SE_02_004 (RP005) - QEMU RVV performance enhancements
Development completed, reviews ongoing in the ML. Performance enhancement up to 500% depending on vector configuration and workload
SE_01_021 - QEMU RVA23 profile support
Queued in the maintainer’s tree
Prerequisite of other items such as “RISC-V Server SoC Reference Board”
E-trace items (SE_01_024, SE_01_025, SE_01_026, SE_01_027)
New in 2025. Implementation of RISC-V Efficient Trace spec. Owner: Daniel Barboza (Ventana Micro)
Development ongoing
Other items under review in the QEMU mailing list:
SE_01_003 - QEMU WorldGuard support
SE_01_004 - QEMU IOPMP support
SE_01_022 - RISC-V Server SoC Reference Board
SE_01_005 - QEMU PCIe passthru on x86 hosts
SE_01_023 - QEMU RISC-V IOMMU Enhancements
Not yet sent for review
SE_01_022 - QEMU P Extension support
Items completed
SE_01_017 - QEMU ACPI SPCR Support for RISC-Vc
Feb 6, 2025
Kernel and Virtualization Deepdive- Anup Patel
What’s merged for Linux-6.14 ?
Linux-6.14-rc1 was released on 2nd February 2025
Noteworthy stuff merged for Linux-6.14:
Linux RISC-V
T-Head vector extensions support
KVM RISC-V
Svvptc, Zabha, and Ziccrse extension support for Guest/VM
Virtualize SBI system suspend extension for Guest/VM
Trap related exit statistics as SBI PMU firmware counters for Guest/VM
RVA23 profile: Discovery updates
HWPROBE additions in Linux-6.14
No updates
KVM ONE_REG additions in Linux-6.14
Zabha, Svvptc, and Ziccrse
Kernel HWPROBE (27-01-2024, wiki)
TBD - 7 (7.45%), NA - 47 (50%), COMPLETED - 40 (42.55%), TOTAL - 94
KVM ONE_REG (27-01-2024, wiki)
TBD - 24 (25.53%), NA - 13 (13.83%), COMPLETED - 57 (60.64%), TOTAL - 94
2024-1H: Project updates
2024-1H: Recently upstreamed projects
LK_03_023 - QEMU-KVM Zawrs support
LK_02_025 - KVM System Suspend Virtualization
LK_03_008 - QEMU-KVM AIA user-space irqchip_split support
2024-1H: Development status (27-01-2025, wiki)
TBD - 2 (4.08%), ONGOING - 1 (2.04%), COMPLETED - 46 (93.88%), TOTAL - 49
2024-1H: Upstreaming status (27-01-2025, wiki)
TBD - 3 (6.12%), ONGOING - 5 (10.21%), COMPLETED - 41 (83.67%), TOTAL - 49
2024-2H: Project updates
2024-2H: Recently development complete projects
LK_01_024 - Supervisor Counter delegation (Smcdeleg and Ssccfg) based perf
LK_01_025 - Control Transfer Record (Smctr and Ssctr) support in perf driver
LK_01_044 - Firmware Feature support
LK_01_045 - Message Proxy support
LK_01_046 - RPMI Clock driver using SBI MPXY
LK_02_028 - KVM Firmware Feature virtualization
LK_03_026 - KVMTOOL Svadu support
LK_03_034 - KVMTOOL Smnpm and Ssnpm support
2024-2H: Recently upstreamed projects
LK_02_027 - KVM Svvptc virtualization
2024-2H: Development status (27-01-2025, wiki)
TBD - 13 (35.14%), ONGOING - 1 (2.70%), COMPLETED - 23 (62.16%), TOTAL - 37
2024-2H: Upstreaming status (27-01-2025, wiki)
TBD - 18 (48.64%), ONGOING - 13 (35.14%), COMPLETED - 6 (16.22%), TOTAL - 37
Jan 30, 2025
Distro and Integration- Brian Harrington
The most recent discussion revolved around the development of a unified database for RISC-V processors and related tools, aiming to streamline information access and collaboration within the community. Additionally we discussed some needs/desired with regards to automated builders (specifically hosted by GitHub/GitLab). Here's a structured summary of the key points:
RISC-V Unified Database:
Hosted on GitHub at https://github.com/riscv-software-src/riscv-unified-db
Purpose: To compile comprehensive details about RISC-V processors, platforms, and associated tools, facilitating easier access for developers.
Related Items:
Reminder of https://riscv.builders , building / compiling software for RISC-V, though called out that it’s still insufficient for the u-boot development desired by members.
Nathan Egge provided a PDF about LLVM-Mingw, detailing its use for cross-compiling RISC-V applications on Windows, which is crucial for developers in Windows environments.
Jan 23, 2025
System Libraries Deep Dive- Nathan Egge
Multimedia (and other) RVI extensions
Feedback from VideoLAN community fed into RVI proposals
dot prod, vector abs-diff (SAD), zip/unzip
Continued collaboration after VDD 2024
Got feedback on signed variants of SAD extension proposal
Plan to set up meeting across RISE, RVI Vector SIG and VideoLAN / FFmpeg
Goal: early feedback on algorithms instructions would be used in
May guide instruction coding (params) and find edge cases *before* ratification
RISE presence at FOSDEM 2025
Attend RISC-V devroom (thanks Bjorn)
Concurrent open-media devroom for in person collaboration
Community still asking for more diverse hardware
Larger VLEN, OOO cores, different IP to cross validate algorithms
Software Optimization Progress
XNNPACK still a priority
Ken Unger (Microchip) patches in flight quantized kernel optimizations for RVV
PyTorch progress
Philip Reams (Rivos) open to collaborating and providing public RISC-V packages
Build system issues discussed
sleef build issues
Currently broken for cross-compilation, not an easy fix
New project hosted on RISE gitlab for Mbed-TLS
Developer Images
Luca Barbato (Gentoo) sent a ROMA II laptop for testing
Working to get this booting to check status of graphics stack
clang-20 released, contains some fixes for auto-vectorization
Need to check if this allows zvl256b
gcc progress made fixing issues raised by Luca, but not ready yet
Minor issues with rustc ebuild on RISC-V addressed by Luca
System Libraries Priorities - H1 2025
High profile, in-demand projects, e.g., Tensorflow, Chromium, etc.
Planning to finalize this in next System Libraries meeting Dec 10, 2024
Instructio timings for optimization guide
Potential to use llvm-exegesis to extract these for help with RVV optimizations
Capture missing vector instructions from multimedia projects [1]
Key Idea: Collect gaps in extension opcodes preventing efficient multimedia DSP functions, e.g., no transpose op, no dotprods, missing sign-unsign mults, etc.
Work with multimedia developers
Testing framework for upstream projects
Issues raised by vendors and OSS contributors about inconsistent benchmarking
Example project + source code with best practices for statistically significant data
More guest speakers!
2025
Dec 5, 2024
System Libraries Deep Dive
System Libraries Priorities - H1 2024
SL_00_001 bionic (Done)
SL_00_006 chromium-zlib (Done)
SL_01_002 dav1d (In progress)
Landed 16bpc blend functions, presented how to contribute RVV to dav1d at VDD https://people.videolan.org/~negge/vdd24.pdf
Andes patch pending https://code.videolan.org/videolan/dav1d/-/merge_requests/1735
SL_01_003 x264 (In progress)
Bytedance added RISC-V support to build system, patches in review
https://code.videolan.org/videolan/x264/-/merge_requests/155
SL_01_004 Pixman (In progress)
Samsung added optimized pixel format conversion and blending
SL_00_006 DPDK (In progress)
14x speed up on CRC operations from Bytedance
Developer Images
Latest image based on Bianbu 2.0 and can be found here [1]
Boots Banana Pi BPI-F3 and possibly other k1/m1 based boards
Clang-19.1.2
Past experiments results
clang-20 snapshots fail to build [2]
gcc-15 still has problems, but it is reported that gcc-trunk has the alignment problems fixed.
The rust build system seems to fail to pick the Gentoo cross compiler put in config.toml (I'll investigate further why)
Presented these images at the RISC-V 101 session and RVI devboard sig [3]
[1] https://dev.gentoo.org/~lu_zero/riscv/gentoo-linux-k1_dev-sdcard-2.0.img.xz
[2] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115789
[3] https://people.videolan.org/~negge/riscv101.pdf
Proposed RVV instructions for Multimedia
Initially discussed at RISC-V Summit EU 2024
Key Idea: Many implementers noticed the same ISA gaps porting multimedia libraries
Bytedance created a wiki page to track these instructions:
https://lf-rise.atlassian.net/wiki/spaces/HOME/pages/8588516/RISCV64+new+vector+instructions+requirements+for+video+multimediaVector transpose
Absolute difference
Zero-extended vmv.x.s
Rounded Shift Right Narrow,
Signed saturate and Narrow to Unsigned
Did a call for RISC-V Multimedia Instruction Wishlist at VDD 2024:
https://docs.google.com/presentation/d/16r4pT3YfI1UL5nX3na5SAnZ1DtHglbVPy64oPexwoN8/Collected 3 pages of notes, many overlap above
Signed to unsigned, e.g. vnclipsu
Changing SEW while preserving the ratio of LMUL
Changing rounding mode is slow on Kendryte K230 and SpacemiT K1
Missing integer absolute difference instruction, e.g., vabs (equiv. of vfabs)
Limited usage of register based vsetvl is OK
Optimization guide cautions against using vsetvl
Long discussion with hardware engineers at LLVM Dev Meeting Santa Clara
Under some circumstances it is OK to use vsetvl, e.g., as in dav1d
May be possible to use this in auto-vectorization loop unrolling to “fold” the tail so it shares the same code as main body, potentially reducing cost of enabling RVV
Register Pressure Example - 16bpc blend
Recall…
vwmulu.vv v24, v8, v16
vwmulu.vv v8, v12, v20
Section 5.2 Vector Operands
System Libraries Priorities - H1 2025
High profile, in-demand projects, e.g., Tensorflow, Chromium, etc.
Planning to finalize this in next System Libraries meeting Dec 10, 2024
Instruction timings for optimization guide
Potential to use llvm-exegesis to extract these for help with RVV optimizations
Capture missing vector instructions from multimedia projects [1]
Key Idea: Collect gaps in extension opcodes preventing efficient multimedia DSP functions, e.g., no transpose op, no dotprods, missing sign-unsign mults, etc.
Testing framework for upstream projects
Issues raised by vendors and OSS contributors about inconsistent benchmarking
Example project + source code with best practices for statistically significant data
More guest speakers!
Nov 7, 2024
Compilers and Toolchains Deep Dive (GCC)
Good progress on Cactu optimization for spec. Parts of this work will likely land upstream in the next week or two
“Bf16” support complete & integrated
Tons of work on saturating arithmetic done & integrated
Various codegen adjustments in the vector space have been integrated
Many more coming from Robin & myself
Glibc has accepted first vector ifunc’d mem* routine. Can adjust SiFive & Rivos implementations trivially and integrate
CRC work – still not integrated. Engineers chasing down one final issue before integration
Function multi-versioning submitted, going through review
GCC 15 feature freeze next week!
Compilers and Toolchains Deep Dive (LLVM)
Full register move instructions depend on vtype
Kernel setting v-ill at syscall points
Some concern that designs behave differently
Code generation implications, though perhaps not that bad?
Function Multi-versioning complete & integrated
Separate shrink wrapping ready for external review
Moves prologue/epilogue code to lesser executed positions within a function
Behavior looks good, particularly on perlbench & gcc in spec
Stack-clash – engineer busy, Craig recommends posting for review anyway
No updates on CRC, autovect (multiple), landing pads, openmp
Distro and Integration Deep Dive
Active group discussions
Ubuntu will be shipping RVA23 for all forthcoming releases
Fedora is currently at RVA20 “due to lack of hardware” (This is being taken back to the Fedora Council for discussion)
Baseline profile for distros
Actively recruiting members from Alma Linux for coordination of Python packagin
Oct 31, 2024
Kernel and Virtualization Working Group Deepdive 31/10/2024
What’s merged for Linux-6.13 ?
Linux-6.13-rc1 will be available 1st week of December 2024
Noteworthy stuff merged for Linux-6.13:
Linux RISC-V
RISC-V IOMMU driver using device-tree
Userspace pointer masking and tagged address ABI
Support for Smnpm, Ssnpm, and Supm extensions
Support for Svade and Svadu extensions
KVM RISC-V
Host nested acceleration using SBI NACL
Perf support to collect KVM guest statistics
Virtualize Smnpm and Ssnpm extensions
Virtualize Svade and Svadu extensions
RVA23 profile: Discovery updates
HWPROBE additions in Linux-6.13
Supm
KVM ONE_REG additions in Linux-6.13
Smnpm, Ssnpm, Svade, and Svadu
Kernel HWPROBE (31-10-2024, wiki)
NA - 47 (50%), TBD - 7 (7.45%), COMPLETED - 40 (42.55%), TOTAL - 94
KVM ONE_REG (31-10-2024, wiki)
NA - 17 (18.08%), TBD - 23 (24.47%), COMPLETED - 54 (57.45%), TOTAL - 94
2023-2H: Project updates
2023-2H: Recently upstreamed projects
LK_01_007 - IOMMU driver with DT support
2023-2H: Development status (31-10-2024, wiki)
COMPLETED - 25 (100%), TOTAL - 25
2023-2H: Upstreaming status (31-10-2024, wiki)
TBD - 1 (4%), COMPLETED - 24 (96%), TOTAL - 25
2024-1H: Recently development completed projects
LK_02_025 - KVM System Suspend virtualization
LK_03_008 - QEMU-KVM AIA userspace irqchip_split support
LK_03_032 - KVMTOOL System Suspend support
LK_03_033 - QEMU-KVM System Suspend support
2024-1H: Recently upstreamed projects
LK_02_008 - KVM Nested acceleration
LK_03_022 - KVMTOOL Zawrs support
2024-1H: Development status (31-10-2024, wiki)
TBD - 2 (4.08%), ONGOING - 1 (2.04%), COMPLETED - 46 (93.88%), TOTAL - 49
2024-1H: Upstreaming status (31-10-2024, wiki)
TBD - 3 (6.12%), ONGOING - 8 (16.33%), COMPLETED - 38 (77.55%), TOTAL - 49
2024-2H: Project updates
2024-2H: Recently upstreamed projects
LK_01_021 - Svadu support in kernel
LK_01_037 - Userspace Pointer Masking and tagged address ABI
LK_01_042 - Optimize memory fences using Svvptc extension
LK_02_017 - KVM Svadu virtualization
LK_02_026 - KVM Pointer Masking virtualization
2024-2H: Development status (31-10-2024, wiki)
TBD - 21 (58.33%), ONGOING - 2 (5.55%), COMPLETED - 13 (36.12%), TOTAL - 36
2024-2H: Upstreaming status (31-10-2024, wiki)
TBD - 29 (80.56%), ONGOING - 2 (5.55%), COMPLETED - 5 (13.89%), TOTAL - 36
Oct 17, 2024
Firmware Deep Dive
8 Projects in 2024 2H.
5 Projects moved from 2024 1H due to spec dependencies
3 new MPXY/RPMI related projects added.
OP-TEE repos created under RISE gitlab.
Discussion with security WG to move overall charter to it.
RP010 - EFI IOMMU DXE Driver for RISC-V EDK2
Bidding closed.
Challenges:
Spec dependencies to upstream
Project pipelin
Oct 10, 2024
Debug and Profiling Deep Dive
Valgrind
ISCAS start working on B-ext supportRVV upstreaming requires a unified scalable vector IR design, accommodating both ARM SVE and RVV, POC planned
Long-term goal is to enable RVA23 and used in OpenEuler riscv port
GDB
GDB support for new data types (vector, FP16, BF16), dev is done, upstreaming not started
LLDB
Support for optional FP reg dump is merged, used in target CPU such as: RV64IMA
DynamoRIO
Support for 2 tracing features get (drcachesim, drcov) merged
DynamoRIO test & doc enhancement for riscv, merged
DynamoRIO RVV mem tracing support (dev WIP)
Perf profiling
Add perf counter for control transfer record (RFC patch sent)
Open/Challenges
lack of active patch review on the RFC patches for advanced PMU features
RISE Developer Infrastructure Update For the October 2024 TSC Deep Dive October 10, 2024
Topics
Developer Infrastructure WG Introduction & Vision
Build Farm
2024Q3 Review
Kernel CI Brief Review
2024Q4 Projection
Hosting Provider Migration
Board Farm
Developer Tools
Developer Infrastructure WG Introduction
Charter
The Developer Infrastructure WG focuses on software and services to support open-source RISC-V developers - both RISE members and the broader open-source community.
Co-chairs
Barna Ibrahim (Rivos)
Paul Walmsley (SiFive)
TSC Contact
Nathan Egge (Google)
Developer Infrastructure WG Vision
Three mutually-supporting projects
RISE Build Farm (Active)
RISE Board Farm (Inactive)
RISE Developer Tooling (Active)
Goal
Provide robust development infrastructure and tools to RISC-V developers
RISE Build Farm: Introduction
Objective
Cross-build and test (in simulation) RISC-V ports of key open source software
Running in Google Cloud
Björn Töpel (Rivos) coordinating
Brian “Redbeard” Harrington (Red Hat): co-admin
Status
Nine active projects
~18 active large VM instances on GCP
Mostly acting as Github Runner performing cross-compilation/qemu-system-riscv{32,64} tests
Build Farm: 2024Q3 Review (1 of 2)
Eight existing projects running
RISE GCC pre-commit CI (Patrick O'Neill, Edwin Lu)
RISE GCC post-commit CI (Patrick O'Neill, Edwin Lu)
RISE GCC fuzzer CI (Patrick O'Neill, Edwin Lu)
RISE GCC microcontroller CI (Patrick O'Neill, Edwin Lu)
RISE GLIBC pre-commit CI (Patrick O'Neill, Edwin Lu)
RISE LLVM fuzzer CI (Patrick O'Neill, Edwin Lu)
RISE Linux Kernel CI (Björn Töpel)
RISE Python Wheels (Mark Ryan)
Build Farm: 2024Q3 Review (2 of 2)
One existing project shut down
Caused by technical issues that no one had the time to debug
RISE GLIBC post-commit runner (Edwin Lu, Patrick O’Neill)
One new project added
RISE QEMU Aarch64 test system (Paul Walmsley, Max Chou)
Build Farm: Value
Thousands of builds, and millions of tests per month on key, foundational RISC-V open source projects
GCC, LLVM, Linux kernel, GLIBC, Python
> 150 toolchain bugs found via our fuzzer instances
Build Farm: Linux Kernel CI
Managed by Björn Töpel
Two flavors
Pre-commit (patchwork/mailing lists)
Post-commit (important branches, build/boot/test multiple configurations)
More configurations added: ACPI
More tests added: LTP, kselftest
RISE Board Farm
Objective
Many use cases: OpenJDK, Linux distributions, kernel, Go(?) …
Provide a range of Linux-capable RISC-V boards to run functionality and performance tests on CI-generated code
Investigate future feasibility of providing developer access to boards
Status
No significant progress in 2024Q3
Build Farm efficiency work and relocation planning taking up all available management bandwidth
Volunteers solicited!
RISE Developer Tools
Objective
Ideally combines cross and native development environment and native system software and userspace
Provide a full Linux system image build, boot, and development environment for use on both simulators (QEMU) and RISC-V hardware
Status
Luca Barbedo putting in a lot of effort here
Nathan’s Gentoo build available for general use with cutting-edge software included
How to productize/test?
Credits
Barna Ibrahim (Rivos): Co-chair
Björn Töpel (Rivos): Kernel CI Build Farm Project Admin, Build Farm Lead
Brian ‘redbeard’ Harrington (Red Hat): Build Farm Administrator
Edwin Lu (Rivos): Toolchain Build Farm Project Admin
Nathan Egge (Google): TSC contact, Developer Tools Lead
Patrick O’Neill (Rivos): Toolchain Build Farm Project Admin
Paul Walmsley (SiFive): Co-chai
Sep 26, 2024
System Libraries Priorities - H1 2024
SL_00_001 bionic (Done)
SL_00_006 chromium-zlib (Done)
SL_01_002 dav1d (In progress)
GSoC student optimized 115 functions w/ RVV 1.0 - 17% reduction in decode time
Fixed several RISC-V specific checkasm issues
SL_01_003 x264 (In progress)
Bytedance added RISC-V support to build system, optimizations in progress
SL_01_004 Pixman (In progress)
Samsung added optimized pixel format conversion and blending
SL_00_006 DPDK (In progress)
14x speed up on CRC operations from Bytedance
SL_00_004 BoringSSL (In progress)
Google developer working on porting OpenSSL routines to BoringSSL
RFP Update
RP002 - Optimize H.264 Decoding in FFmpeg
Commit fa5a605 avcodec/riscv: add h264 dc idct rvv
Commit 8280ec7 lavu/riscv: fall back on clock_gettime()
Commit e758b24 checkasm: add wildcompares for test & functions
Landed iDCT functions using RVV (8-, 9-, 10-, 12- and 14-bit)
Landed improvements to checkasm framework
RP005 - Add QEMU TCG support for V and Zvk
Have micro benchmarks and analyzing via profiler on qemu x86_64 binary
Patches in flight
https://lists.gnu.org/archive/html/qemu-devel/2024-09/msg03570.html
AOSP boot time now in line with scalar, enables vector code in CI / CD
Focused on RISC-V Vector v ARM SVE comparison for mem* and str* operations
Separately, Max Chou (SiFive) posted updated v6 QEMU patch to the mailing list
Unmodified QEMU, scalar: ~10 minutes
Unmodified QEMU, vector: ~20 minutes
Modified QEMU, scalar: ~10 minutes
Modified QEMU, vector: ~10 minutes
Gentoo Developer Images
Abstract to RISC-V NA Summit rejected [1]
Presented at Bay Area RISC-V Meetup on Aug-15 [2]
Key Idea: Automate developer image building
Now takes only ~300 minutes (!) to cross compile bootable image
U-Boot + Kernel + ~330 software packages
Bespoke CFLAGS possible, testing surfaced several gcc autovector issues [3]
Partnered with Luca Barbato, RISC-V Gentoo developer
Fixed multiple issues unblocking full cross compilation <-- no other distro has this
Luca presented this work at the Sept-17 System Libraries WG meeting [4]
Joint blog post in-progress to post on RISE website
[1] https://people.videolan.org/~negge/rvi2024na.pdf
[2] https://people.videolan.org/~negge/riscv_meetup.pdf
[3] GCC Bug 116242 - [meta-bug] Tracker for zvl issues in RISC-V
System Libraries Priorities - H2 2024
SL_03_002 Tensorflow
Bytedance fixed RISC-V build issues using bazel, effort to optimize more routines
Instruction timings for optimization guide
Potential to use llvm-exegesis to extract these for help with RVV optimizations
Capture missing vector instructions from multimedia projects [1]
Key Idea: Collect gaps in extension opcodes preventing efficient multimedia DSP functions, e.g., no transpose op, no dotprods, missing sign-unsign mults, etc.
Testing framework for upstream projects
Issues raised by vendors and OSS contributors about inconsistent benchmarking
Example project + source code with best practices for statistically significant data
More guest speakers!
[1] https://wiki.riseproject.dev/spaces/HOME/pages/8588516/
RISCV64+new+vector+instructions+requirements+for+video+multimedia
Sep 19, 2024
Attendees:
Michelle Martineau, The Linux Foundation
Terje Bergstrom, NVIDIA
Kumar Sankaran, Ventana
Alexey Bataev, SiFive
Jian Xiong, Alibaba
David Weaver, Akeana
Robin Randhawa, SiFive
Brian Harrington, RedHat
Simon Harvey, Imagination
Barna Ibrahim, Rivos
Gordan Markus, Cannonical
Ming-yu Hung, Mediatek
Ludovic Henry, Rivos
Robin Randhawa, SiFiive
Tim Ouyang, Andes
Agenda:
Language Runtimes Deep Dive led by Ludovic Henry
Status Update: Java
Java 17, 21, 22, 23, and tip are available
Java 11 still doesn’t pass public CI yet
More and more vectorized intrinsics: base64, crc32, chacha20, adler32
Better code lowering: rounding, reverse bytes, rotate left/right, unsigned comparisons, shift left/right, vector-scalar/vector-immediate bitwise logic, count leading/trailing zeros, popcount, casting
Status Update: Go
Depends on availability of RVV 1.0 hardware on Scaleway
LR_02_007: Accelerate crypto/sha256 and crypto/sha512 with hand-written assembly [RFP001] - Done
LR_02_024: Use Bitmanip instruction in compiler where optimal [RFP001] - Done
LR_02_005: Accelerate math/big with hand-written assembly [RFP001] - 95% Done
LR_02_002: Support for Vector extension in Go Assembler [RFP001] - WIP
LR_02_027: Support for Vector Crypto extensions in Go Assembler [RFP001] - WIP
Status Update: Python
pandas, ninja, numpy, scipy, MarkupSafe, optree, psutil, msgpack, cibuildwheel, auditwheel, cmake, PyYAML, pillow, maturin, lintrunner, tlparse, nh3, lxml, cffi, cryptography
Registry: https://gitlab.com/groups/riseproject/python/-/packages
Based on Ubuntu 22.04
Working with them to provide AlmaLinux 10 in RISC-V
Distributing packages for RISC-V
Dependency on AlmaLinux
Status Update: Javascript
No changes since last update
Status Update: Rust
Bring Linux-RISC-V to tier1 platform
Newly supported since last update
LR_07_001: Gap Analysis - WIP
Status Update: WebAssembly
WASM SIMD: VLS (128bits vectors)
WASM Flexible Vector: VLA, largely inspired by RVV/SVE
Newly supported since last update
Work Prioritization
Java: https://wiki.riseproject.dev/display/HOME/LR_00%3A+Java
Python: https://wiki.riseproject.dev/display/HOME/LR_01%3A+Python
Javascript: https://wiki.riseproject.dev/display/HOME/LR_06%3A+Javascript
Rust: https://wiki.riseproject.dev/display/HOME/LR_07%3A+Rust
WASM: https://wiki.riseproject.dev/display/HOME/LR_08%3A+WebAssembly
Wiki is up-to-date
Please comment on mailing list for prioritization
Anything not listed you’d like to see?
Anything not as high on the priority list as you expected?
Scaleway Board Farm
Adoptium/Java: 14
Go: 1 (waiting on RVV 1.0 hardware)
RockyLinux: 5
AlmaLinux: 1 (working with RVI for their own boards)
Rust: 2
WASM: 1
24 machines allocated:
Eagerly waiting for RVV 1.0 hardware
Discussed in previous TSC; next steps?
Sep 5, 2024
Attendees:
Michelle Martineau, The Linux Foundation
Terje Bergstrom, NVIDIA
Anup Patel, Ventana
Alexey Bataev, SiFive
Jian Xiong, Alibaba
Mark Zhuang, Spacemt
Paul Walmsley, SiFive
Daniel Barboza, Ventana
David Weaver, Akeana
Robin Randhawa, SiFive
Brian Harrington, RedHat
Simon Harvey, Imagination
Barna Ibrahim, Rivos
Gotdan Markus, Cannonical
Nathan Egge, Google
Ming-yu Hung, Mediatek
Zhu Yuan, Bytedance
Tim Ouyang, Andes
Agenda:
Overall status
2024 projects - not yet sent for review
2024 projects - upstream process ongoing
2024 projects - upstream completed
Projects not sent yet for review:
SE_01_018 - QEMU ACPI PPTT support for RISC-V
Community project (Starfive)
SE_02_004 - QEMU RVV performance enhancements (Vendor patches)
RP005 RISE wiki page, weekly status: github link
Latest version from Max Chou: RFCv5
SE_01_003 - QEMU WorldGuard support
Latest version: v1
SE_01_004 - QEMU IOPMP support
Latest version: v8
SE_01_015 - QEMU RISC-V IOMMU support
Latest version: v7
SE_01_017 - QEMU ACPI SPCR support for RISC-V (no change)
Latest version: v2
Community project (Starfive)
SE_01_021 - QEMU RVA23 profile support (no change)
List of missing extensions: sig-qemu message
Some of them already landed for review
SE_01_022 - RISC-V Server SoC Reference Board (no change)
New project
Latest version: v2
SE_01_005 - QEMU PCIe passthru on x86 hosts (no change)
Latest version: v1
SE_01_019 - QEMU ACPI SRAT/SLIT(NUMA) support for RISC-V
Available in QEMU 9.0
SE_01_020 - QEMU SMBIOS support for RISC-V
Available in QEMU 9.0
Aug 22, 2024
Attendance
Alexey Bataev, SiFive
Evan Harrison, The Linux Foundation
Nathan Egge, Google
Anup Patel, Ventana
Brian Harrington (Redbeard), Redhat
Daniel Barboza, Ventana
David Weaver, Akeana
Erich Hanke, AMD
Gordon Markus,
Jian Xiong, Alibaba
Kumar Sankaran, Ventana
Ludovic Henry, Rivos
Mark Zhuang, SpaceMIT
Ming-Yu, MTK
Paul Walmsley, SiFive
Simon Harvey, Img Tech
Sunil V L, Ventana
Tim Ouyang, Andes
Tomas Evensen, AMD
Zhu Yuan, Bytedance
Victor Costan, Google
Agenda
Kernel and Virtualization Deep Dive led by Anup Patel
WG Opens
Future topics: WG Opens/challenges
AIs from last week
Kernel and Virtualization Deep Dive
Latest Linux release updates
Linux-6.11-rc4 available this week on kernel.org and final Linux-6.11 will be available in September 2024
Noteworthy stuff already merged for Linux-6.11:
Linux RISC-V
Memory Hot(Un)plug
ACPI SMBIOS/DMI, SPCR, PPTT, and NUMA support
Performance improvements and cleanups for text patching
Support Zve32[xf] and Zve64[xfd] Vector sub-extensions
Use Zawrs for spinlocks when available
HWPROBE support for time CSR frequency
HWPROBE support for highest user-space virtual address
HWPROBE support for Zimop, Zcmop, Zca, Zcf, Zcd, Zcb, and Zawrs extensions
KVM RISC-V
AIA IMSIC HW guest file support
Perf KVM stat support
Virtualize Zawrs for guest
ONE_REG support for Zimop, Zcmop, Zca, Zcf, Zcd, Zcb, and Zawrs extensions
RVA23 profile: Discovery updates
HWPROBE additions in Linux-6.11
Zimop, Zcmop, Zcb, Zawrs
Highest virtual address for user-space
KVM ONE_REG additions in Linux-6.11
Zimop, Zcmop, Zcb, Zawrs
Kernel HWPROBE (22-08-2024, wiki)
NA - 33 (39.76%), TBD - 7 (8.43%), COMPLETED - 43 (51.81%), TOTAL - 83
KVM ONE_REG (22-08-2024, wiki)
NA - 10 (12.05%), TBD - 20 (24.10%), COMPLETED - 53 (63.85%), TOTAL - 83
2023-2H: Project updates
2023-2H: Projects moved to 2024-2H due to SBI v3.0 dependency
LK_01_005 - Native/hosted debug support
LK_02_011 - KVM Native/hosted debug virtualization
2023-2H: Recently upstreamed projects
LK_00_005 - Memory Hot(Un)plug
LK_02_003 - KVM AIA IMSIC guest file support
2023-2H: Development status (22-08-2024, wiki)
COMPLETED - 25 (100%), TOTAL - 25
2023-2H: Upstreaming status (22-08-2024, wiki)
TBD - 1 (4%), ONGOING - 3 (12%), COMPLETED - 21 (84%), TOTAL - 25
2024-1H: Project updates
2024-1H: Recently upstreamed projects
LK_01_015 - PMU snapshot support
LK_01_019 - Zawrs support
LK_01_029 - ACPI NUMA support
LK_01_030 - ACPI PPTT support
LK_01_035 - ACPI SPCR support
LK_01_036 - ACPI SMBIOS support
LK_01_040 - CRC API optimization using Zbc extension
LK_02_010 - KVM PMU snapshot virtualization
LK_02_015 - KVM Zawrs virtualization
LK_02_022 - KVM Perf sampling support for guest
LK_03_009 - QEMU-KVM debug console support
LK_03_028 - KVMTOOL Zacas support
LK_03_029 - QEMU-KVM Zacas support
2024-1H: Development status (22-08-2024, wiki)
TBD - 4 (8.7%), ONGOING - 1 (2.17%), COMPLETED - 41 (89.13%), TOTAL - 46
2024-1H: Upstreaming status (22-08-2024, wiki
TBD - 6 (13.04%), ONGOING - 4 (8.7%), COMPLETED - 36 (78.26%), TOTAL - 46
2024-2H: Priorities
Kernel
ISA Extensions
Supervisor Counter delegation (Ssccfg) based perf driver
Control Transfer Record (Ssctr) support in perf driver
Pointer Masking (Ssnpm) support
Quality of Service (CBQRI and Ssqosid) support
ACPI improvements
ACPI RISC-V IOMMU Table (RIMT) support
ACPI support for IOMMU driver
ACPI RAS support (incl. APEI and SBI SSE notifications)
SBI v3.0
Firmware feature (FWFT) support
Supervisor software events (SSE) support
Debug Triggers (DBTR) (aka native/hosted debug) support
Message Proxy (MPXY) support
Perf event discovery using SBI PMU extension
KVM
ISA Extensions
Virtualize Control Transfer Record (Ssctr) for Guest
Virtualize Pointer Masking (Ssnpm) for Guest
Virtualize Quality of Service (CBQRI and Ssqosid) for Guest
Nested virtualization (trap-n-emulate H-extension)
Virtualize SBI v3.0
Firmware feature (FWFT) support for Guest
Supervisor software events (SSE) support for Guest
Debug Triggers (DBTR) (aka native/hosted debug) support for Guest
Message Proxy (MPXY) support for Guest
Virtualize perf event discovery using SBI PMU extension for Guest
Aug 1, 2024
Attendees:
Michelle Martineau, The Linux Foundation
Terje Bergstrom, NVIDIA
Alexey Bataev, SiFive
Keeran Rothenfusser, Rivos
Barna Ibrahim, Rivos
Kumar Sankaran, Ventana
Tim Ouyang, Andes
Zhu Yuan, Bytedance
Paul Walmsley, SiFive
Brian Herrington, Red Hat
Victor Costan, Google
Agenda:
System Libraries Deep Dive led by Nathan Egge
Developer Infrastructure Deep Dive led by Paul Walmsley
WG Opens
RFPs
Future topics: WG Opens/challenges
AIs from last week
System Libraries Deep Dive- Keeran RothenFusser
System Libraries WG Charter
Accelerate adoption of RISC-V in open source system libraries by focusing on high-leverage initiatives that unblock upstream projects and bring RISC-V to the same level of functionality and performance as the rest of the OSS ecosystem.
In scope:
Open source tooling
Best practice guides
Case studies
Writing software optimizations
Performance benchmarking
Dependency analysis
System Libraries contain potentially 1000’s of OSS projects
RISE cannot write all the code to enable entire ecosystem
System Libraries Priorities
SL_00_004 BoringSSL (In progress)
Google developer working on porting OpenSSL routines to BoringSSL
SL_01_001 libflac (In Progress)
Pull request got a nudge, now that more hardware available
SL_01_002 dav1d (In progress)
GSoC student currently adding more RVV 1.0 optimizations
SL_01_003 x264 (In progress)
Bytedance working on adding RVV 1.0 optimized routines
SL_03_001 XNNPACK (In progress)
Imagination working on adding RVV 1.0 optimized routines
Trial run the upstream developer story
Examples include
Regression: GCC emitting illegal unaligned loads
Check that vendor kernels support needed tooling
Backported perf for K230
SpacemiT missing PMU counters
Assume the role of early adopter and find issues before they hit community
Continue to test hardware when it comes out for suitability
Run experiments verify software optimizations working as intended
Mailing list seen discussion on performance of in-register data movements
Produce artifacts usable for upstream development
Rebuild everything from source for RISC-V (issues encountered)
Bootable system images with up-to-date toolchains
Performance testing and CI tooling
RFP Update
RP002 - Optimize H.264 Decoding in FFmpeg
Using K230 and Gentoo developer image for development / testing
Wrote prediction and iDCT functions using RVV (8-, 9-, 10-, 12- and 14-bit)
Patches up for review https://code.videolan.org/jdek/ffmpeg/-/merge_requests/2
Updated ffmpeg checkasm to use clock_gettime() over RDTIME instruction
Meeting with vendor on Friday and hope to get a full report of implemented functions
RP005 - Add QEMU TCG support for V and Zvk
Weekly reporting on progress
Work is progressing, 60x improvement based on patch set v5 by Max Chou (SiFive)
Benchmarking improvements to QEMU
RP005 Add QEMU TCG support for V and Zvk started May 1st 2024
Weekly progress reports https://github.com/embecosm/rise-rvv-tcg-qemu-reports
Can we (this body) verify these changes?
Booting AOSP 4 weeks ago with Max Chou patchset v4 [1] showed no improvement
[1] https://lore.kernel.org/all/20240613175122.1299212-1-max.chou@sifive.com/
Guest Speaker Series
Invite experts to present RISC-V SW ecosystem challenges and successes. Had a good turnout, and also lots of guest speakers in May and June. Since last deep-dive
March 19th: Nick Brown - Edinburgh Parallel Computing Centre
RISC-V and HPC, What do we need from the software ecosystem?
May 14th: Adenilson Cavalcanti - Intel / Chromium
May 28th: Chris Taylor - Tactical Computing Labs
An Introduction HPX an Asynchronous Many-Task Runtime System
June 25th: Yuan Zhu - Bytedance
Optimizing x264 encoder for RISC-V
July 23rd: Filip Wasil - Samsung
Contributions to upstream projects
Questions around benchmarking and performance analysis as more hardware becomes available
RVI EU Summit
Nathan Egge received the RVI ‘Software Leadership Award’
Apart from the RISE presentation, got enough mentions in other presentations
Some of the work from dav1d as part of SL_01_002 presented by Nathan
Good opportunity for system libraries members to meet up with each other, and to reach out beyond RISE
Got hands on hardware - e.g. ROMA-II from DeepComputing, BananaPi3 for individual members to hack around on
SL_01_002 - Adding RVV assembly to dav1d
Diversity of hardware with RVV 1.0!
K230 has VLEN=128, SpacmiT K1 has VLEN=256
What does this mean for writing vector optimizations?
Diversity of hardware with RVV 1.0!
K230 has VLEN=128, SpacmiT K1 has VLEN=256
What does this mean for writing vector optimizations?
Algorithms that use *less* than a full VLEN are essentially tail only
The blend_w4 routine operates on blocks 4-wide and N-tall
Optimal throughput needs appropriately set LMUL
function blend_8bpc_rvv, ext=v
li t0, 4
beq a3, t0, 4f
li t0, 8
beq a3, t0, 8f
li t0, 16
beq a3, t0, 16f
32: vsetvli zero, a3, e8, m2, ta, ma
j L(blend_epilog)
16: vsetvli zero, a3, e8, m1, ta, ma
j L(blend_epilog)
8: vsetvli zero, a3, e8, mf2, ta, ma
j L(blend_epilog)
4: vsetvli zero, a3, e8, mf4, ta, ma
L(blend_epilog):
Algorithms that use *less* than a full VLEN are essentially tail only
The blend_w4 routine operates on blocks 4-wide and N-tall
Optimal throughput needs appropriately set LMUL
function blend_8bpc_rvv, ext=v
li t0, 4
beq a3, t0, 4f
li t0, 8
beq a3, t0, 8f
li t0, 16
beq a3, t0, 16f
32: vsetvli zero, a3, e8, m2, ta, ma
j L(blend_epilog)
16: vsetvli zero, a3, e8, m1, ta, ma
j L(blend_epilog)
8: vsetvli zero, a3, e8, mf2, ta, ma
j L(blend_epilog)
4: vsetvli zero, a3, e8, mf4, ta, ma
L(blend_epilog):
function blend_vl256_8bpc_rvv, ext=v
li t0, 4
beq a3, t0, 4f
li t0, 8
beq a3, t0, 8f
li t0, 16
beq a3, t0, 16f
32: vsetvli zero, a3, e8, m1, ta, ma
j L(blend_epilog)
16: vsetvli zero, a3, e8, mf2, ta, ma
j L(blend_epilog)
8: vsetvli zero, a3, e8, mf4, ta, ma
j L(blend_epilog)
4: vsetvli zero, a3, e8, mf8, ta, ma
j L(blend_epilog)
With vector length specific (VLS) implementations specialized on VLEN
Kendryte K230
blend_w4_8bpc_c: 204.5 ( 1.00x)
blend_w4_8bpc_rvv: 56.4 ( 3.62x)
blend_w8_8bpc_c: 608.6 ( 1.00x)
blend_w8_8bpc_rvv: 87.3 ( 6.97x)
blend_w16_8bpc_c: 2363.8 ( 1.00x)
blend_w16_8bpc_rvv: 225.1 (10.50x)
blend_w32_8bpc_c: 5990.3 ( 1.00x)
blend_w32_8bpc_rvv: 518.8 (11.55x)
SpacemiT K1
blend_w4_8bpc_c: 201.6 ( 1.00x)
blend_w4_8bpc_rvv: 58.0 ( 3.48x)
blend_w8_8bpc_c: 595.1 ( 1.00x)
blend_w8_8bpc_rvv: 82.1 ( 7.25x)
blend_w16_8bpc_c: 2308.8 ( 1.00x)
blend_w16_8bpc_rvv: 189.0 (12.22x)
blend_w32_8bpc_c: 5853.1 ( 1.00x)
blend_w32_8bpc_rvv: 339.5 (17.24x)
DevInfra WG Collaboration
Goal: Provide weekly drops of SD images that “just work” on currently available dev board hardware (RVV 1.0 only): K230, BPI-F3, ROMA II
Potential to build with exact CFLAGS matching hardware, e.g.,
-march=rv64gcv --riscv-v-vector-bits-min=256This would produce optimized builds for all packages
Use vendor provided image (u-boot, opensbi, kernel)
Replace rootfs with gentoo image
Future work, could rebuild kernel using more optimizations
Potential to build with other options
Gentoo supports glibc and musl, OpenRC and systemd
Can provide a head (Desktop Environment) for ROMA II laptop images
Developer Infrastructure Deep Dive- Paul Walmsley
Developer Infrastructure WG Introduction
Charter
The Developer Infrastructure WG focuses on software and services to support open-source RISC-V developers - both RISE members and the broader open-source community.
Co-chairs
Barna Ibrahim (Rivos)
Paul Walmsley (SiFive)
TSC Contact
Nathan Egge (Google)
Developer Infrastructure WG Vision
Three mutually-supporting projects
RISE Build Farm (Active)
RISE Board Farm (Active)
RISE Developer Tooling (In planning)
Goal
Provide robust development infrastructure and tools to RISC-V developers
RISE Build Farm: Introduction
Objective
Cross-build and test (in simulation) RISC-V ports of key open source software
Running in Google Cloud
Björn Töpel (Rivos) coordinating
Brian “Redbeard” Harrington (Red Hat) doing much of the work
Status
9 active projects 2 since last quarter
Thousands of builds, and millions of tests per month
~100 toolchain bugs found via our fuzzer instances
Build Farm: 2024Q2 Review
Seven existing projects still running
GCC pre-commit CI expanded: Patrick O’Neill & Edwin Lu (Rivos)
Two new projects added
Glibc pre-merge CI: Edwin Lu & Patrick O’Neill (Rivos)
GCC microcontroller CI: Patrick O’Neill & Edwin Lu (Rivos)
New Jenkins infrastructure available for projects to use
RISE Board Farm: Introduction
Objective
Many use cases: OpenJDK, Linux distributions, kernel, Go(?) …
Provide a range of Linux-capable RISC-V boards to run functionality and performance tests on CI-generated code
Investigate future feasibility of providing developer access to boards
Curtis Galloway (Google) coordinating
RISE Board Farm: Status
No significant progress in 2024Q2
Build Farm efficiency work and relocation planning taking up all of the available management bandwidth
RISE Developer Tools: Introduction
Objective
Ideally combines cross and native development environment and native system software and userspace
Provide a full Linux system image build, boot, and development environment for use on both simulators (QEMU) and RISC-V hardware
Will start with Nathan’s Gentoo build
No one yet coordinating
Some discussion taking place between Nathan and Redbeard on paths forward
Credits
Barna Ibrahim (Rivos): Co-chair
Björn Töpel (Rivos): Kernel CI Build Farm Project Admin, Build Farm Lead
Brian ‘redbeard’ Harrington (Redhat): Build Farm Administrator
Curtis Galloway (Google): Board Farm Lead
Edwin Lu (Rivos): Toolchain Build Farm Project Admin
Ludovic Henry (Rivos): Language Runtimes Build Farm Project Admin
Patrick O’Neill (Rivos): Toolchain Build Farm Project Admin
Paul Walmsley (SiFive): Co-chair
Jun 27, 2024
Attendees:
Michelle Martineau, The Linux Foundation
Erich Hanke, AMD
Alexey Bataev, SiFive
Robin Randhawa, SiFive
Sunil Vl, Ventana
Daniel Barboza, Ventana
Simon Harvey, Imagination
Ludovic Henry, Rivos
Jian Xiong, Alibaba
Barna Ibrahim, Rivos
David Weaver, Akean
Kumar Sankaran, Ventana
Paul Walmsley, SiFive
Victor Costan, Google
Nathan Egge, Google
Ming-yu Hung, Mediatek
Jian Zhang, BOSC
Agenda:
Updates
Website/blog
TSC Accomplishments 1H2024
2 FTE Reporting
Security Software Working Group TL Election
Simulator Emulator Deep Dive led by Daniel Barboza
WG Opens
Future topics: WG Opens/challenges
Simulator Emulator Deep Dive led by Daniel Barboza
Overall status
2024 projects - not yet sent for review
2024 projects - upstream process ongoing
2024 projects - upstream completed
Projects not sent yet for review:
Weekly status: github link
Community project (Starfive)
SE_02_004 - QEMU RVV performance enhancements (Vendor patches)
SE_01_018 - QEMU ACPI PPTT support for RISC-V
Projects under review:
SE_01_003 - QEMU WorldGuard support
SE_01_004 - QEMU IOPMP support
SE_01_005 - QEMU PCIe passthru on x86 hosts
SE_01_015 - QEMU RISC-V IOMMU support
Projects under review
Latest version: v2
Community project (Starfive)
List of missing extensions: sig-qemu message
Some of them already landed for review
Latest version: v2
Latest version (from Max Chou): RFCv4
SE_01_017 - QEMU ACPI SPCR support for RISC-V
SE_01_021 - QEMU RVA23 profile support
SE_01_022 - RISC-V Server SoC Reference Board
SE_02_004 - QEMU RVV performance enhancements
Projects already merged
Available in QEMU 9.0
Available in QEMU 9.0
SE_01_019 - QEMU ACPI SRAT/SLIT(NUMA) support for RISC-V
SE_01_020 - QEMU SMBIOS support for RISC-V
Security Software Working Group Election
The Security Software Technical Lead role will open for election July 1st. The nomination period is open for one week followed by a one week voting period. You may nominate yourself or another member of the RISE TSC (Limit 1 candidate per RISE Sponsor Organization). If you are nominating someone else please confirm their interest prior to nominating them.
Commitment:
1hr/ Month- Lead Security Software Working Group Meetings
1hr/Month- Governing Board or TSC Deep Dive Meeting
8hrs/Month- Working Group Leadership
Election Cycle:
July 1 Nominations start
July 15 Nominations end
July 16 Voting starts
July 23 Voting ends
July 24 Winner announced
Term: July 24, 2024- July 24, 2025
Jun 20, 2024
Attendees:
Michelle Martineau, The Linux Foundation
Andrei Warkentin, Intel
Daniel Barboza, Ventana
Barna Ibrahim, Rivos
Jeff Law, Ventana
Andrew Del Los Reyes, Rivos
Kumar Sankaran, Ventana
Brian Harrington, RedHat
Nathan Egge, Google
Tim Ouyang, Andes
Victor Constan, Google
Zhu Yuan, Bytedance
Agenda:
Distro and Integration Deep Dive led by Redbeard
Updates
Website/blog
RVI Summit Lounge
TSC Accomplishments 1H2024
2 FTE Reporting
Security Software Working Group TL Election
WG Opens
Future topics: WG Opens/challenges
AIs from last week
Distro and Integration Deep Dive
The distro integration group hosts open discussions about the software needs common to all major Linux distros, Android, and bespoke distros used on embedded devices.
General discussions and questions about viability of builds with low RAM that aren’t capable of updating packages etc. Not something RISE should dictate.
In General RISE is contributing to the Open Source Projects and there will not be any requirements/mandates by RISE. any requirements are left it up to the companies and their product offerings.
“Why is it you’re all insistent on having ACPI support?”
“What is the minimum amount of RAM a board should have?”
This group makes its meetings open to the public (the meeting link is on the groups wiki page).
Ensures open collaboration modeled after other libre software projects (Debian, Osmocom, etc).
The community sees the “total cost” of design decisions, not just the hardware ones.
Recently this has driven two major areas of discussion:
Ensure a consistent boot flow (installation portability across distros)
Responsibility for code updates below the OS (e.g. Who is on the hook for security bugs in OpenSBI?)
Website and Blog Update
HAPPY ANNIVERSARY RISE PROJECT!
Website updated, now with a blog, events page, separated topic pages, dedicated join page
Bug reports and comments welcome.
Security Software Technical Lead Election
The Security Software Technical Lead role will open for election July 1st. The nomination period is open for one week followed by a one week voting period. You may nominate yourself or another member of the RISE TSC (Limit 1 candidate per RISE Sponsor Organization). If you are nominating someone else please confirm their interest prior to nominating them.
Commitment:
1hr/ Month- Lead Security Software Working Group Meetings
1hr/Month- Governing Board or TSC Deep Dive Meeting
8hrs/Month- Working Group Leadership
Election Cycle:
July 1 Nominations start
July 15 Nominations end
July 16 Voting starts
July 23 Voting ends
July 24 Winner announced
Term: July 24, 2024- July 24, 2025
May 30, 2024
Attendees:
Erich Hanke, AMD
Tomas Evensen, AMD
Robin Randhawa, SiFive
Terje Bergstrom, NVIDIA
Anup Patel, Ventana
Robin Randhawa, SiFive
Sunil Vl, Ventana
Daniel Barboza, Ventana
Simon Harvey, Imagination
Barna Ibrahim, Rivos
Jeff Law, Ventana
David Weaver, Akean
Kumar Sankaran, Ventana
Brian Harrington, RedHat
Paul Walmsley, SiFive
Nathan Egge, Google
Tim Ouyang, Andes
Ming-yu Hung, Mediatek
Jian Zhang, BOSC
Agenda:
Elected: Debug and Profiling Technical Lead
Firmware Deep Dive led by Sunil V L
Proposal for Security Working Group Formation
WG Opens
Future topics: WG Opens/challenges
AIs from last week
Elected: Debug and Profiling Technical Lead
Welcome Xaio Wang! Senior System Software Engineer, Intel and Our new Technical Lead for the Debug and Profiling Working Group. Xiao has worked on different domains of system software, including high performance networking, device virtualization, cross-ISA SW migration, binary translation and compatibility, ISA based SW optimization. Xiao has interest in a wide range of technical topics. Recently Xiao is working on enabling RISCV ISA optimization in the Linux kernel.
Firmware Deep Dive led by Sunil V L
12 projects in 2024 1H
Upstreaming complete projects
Development complete, Upstreaming in progress
EDK2_00_03 - FdtBusDxe support (Need to host under RISE gitlab)
Upstreaming not started due to spec dependencies
CI support for RISC-V targets in place
Roadmap items identified (IOPMP, AIA, SmMTT, FF-A Like ABI etc)
IOPMP support in progress by Andes
Moving to RISE hosted gitlab
Development in progress
2024 2H projects under discussion
SCP like reference FW implementation (based on RPMI/MPXY spec)
Challenges
Spec dependencies.
Less number of new project proposals.
09 May 2024
Evan Harrison, The Linux Foundation
Alexey Bataev, SiFive
Barna Ibrahim, Rivos
Brian Harrington (Redbeard), Redhat
Drew Fustini, Tenstorrent
Jeff Law, Ventana
Kumar Sankaran, Ventana
Mason Li, MedieTek
Nathan Egge, Google
Paul Walmsley, SiFive
Terje Bergstrom, Nvidia
Tim Ouyang, Andes
Victor Constan, Google
Agenda
WG Opens/challenges
Future topics
AIs from last week
Appendix
2024 Deep Dive Schedule
Please review and inform Evan of any changes needed
Meeting recording access instructions
RFP Guide for Technical Leads
Please read if you are a TL for a project.
Working Groups Opens / Challenges
Tensorflow for RISC-V (email sent to libraries-runtimes WG)
If yes, what is the latest status?
Questions regarding the availability of Tensorflow on RISC-V
Tried to compile Tensorflow within Ventana and things fail due to missing support for Bazel
Is anyone from RISE or any upstream company working on Tensorflow?
x264 for RISC-V discussion
Bytedance team started work on x264 porting and optimization with RVV1.0
Repo located here https://code.videolan.org/yintong.ustc/x-264-bd-ventana
Is anyone from RISE or upstream working on x264? Bytedance would like to collaborate with other work if any
Working Groups Opens / Challenges
02 May 2024
Michelle Martineau, The Linux Foundation
Erich Hanke, AMD
Tomas Evensen, AMD
Anup Patel, Ventana
Heinrich Schuchardt, Canonical
Robin Randhawa, SiFive
Gordan Markus, Canonical
Sunil Vl, Ventana
Myungjoo Ham, Samsung
Daniel Barboza, Ventana
Simon Harvey, Imagination
Barna Ibrahim, Rivos
David Weaver, Akean
Kumar Sankaran, Ventana
Paul Walmsley, SiFive
Victor Costan, Google
Alexey Bataev, SiFive
Nathan Egge, Google
Ludovic Henry, Rivos
Ming-yu Hung, Mediatek
Jian Zhang, BOSC
Agenda
Language Runtimes Deep Dive led by Ludovic Henry
WG Opens
Future topics: WG Opens/challenges
AIs from last week
Language Runtimes Deep Dive led by Ludovic Henry
Status Update
Java
LR_00_007: Distribute Java 11 + 17 + 21 in Adoptium
Java 21, 22, and tip are available since April
Java 17 is close, Java 11 doesn’t pass public CI yet
LR_00_001: Improve support for Vector extension in OpenJDK
Many improvements to code lowering; casting, rounding, multiply reduction, compare, and other vector intrinsics
Python
LR_01_013: Enable pip on riscv64
Necessary to run pip install on riscv64; released with 24.0
LR_01_015: Enable cibuildwheel on riscv64
LR_01_017: Package and distribute numpy wheel
LR_01_020: Package and distribute ninja wheel
LR_01_008: Package and distribute Scikit-Learn wheel
LR_01_022: Package and distribute markupsafe wheel
LR_01_024: Package and distribute psutil wheel
LR_01_027: Package and distribute Pillow wheelEffort to package and distribute Python packages on RISC-V
Can’t be done by upstream project (discussed in previous TSC meetings)
Approach approved with LFEU Legal on licensing
GoLR_02_024: Use Bitmanip instruction in compiler where optimal
Work
Wiki is up-to-date
Java: https://lf-rise.atlassian.net/wiki/display/HOME/LR_00%3A+Java
Python: https://lf-rise.atlassian.net/wiki/display/HOME/LR_01%3A+Python
Go: https://lf-rise.atlassian.net/wiki/display/HOME/LR_02%3A+Go
Javascript: https://lf-rise.atlassian.net/wiki/display/HOME/LR_06%3A+Javascript
Anything not listed you’d like to see?
Anything not as high on the priority list as you expected?
Python packaging
https://gitlab.com/groups/riseproject/python/-/packages
Available: ninja, numpy, scipy, pillow, psutil, PyYAML, optree, MarkupSafe, cmake, ninja
Next: scikit-learn
https://lf-rise.atlassian.net/wiki/display/HOME/LR_01%3A+Python
Python has a JIT now
It’s doesn’t support RISC-V
Not a blocker as simply disabled for now
Java releases
Nothing has changed since last update
V8 fully supports Linux-RISC-V and Android-RISC-V
SpiderMonkey support Linux-RISC-V
Node.JS is still an unknown; anyone wants to check it out and document?
OpenMP
Interest from Tenstorrent, MicroChip
More appropriate for Compilers and Toolchains WG?
Whoever has the time and resources
HPX
Interest from Tenstorrent
They have CI for ARM, we should check to add RISC-V
Need to figure out if it builds and runs OOTB on RISC-V
More appropriate for System Libraries WG?
Whoever has the time and resources
25 Apr 2024
Evan Harrison, The Linux Foundation
Drew Fustini, Tenstorrent
Andrew de los reyes (Adlr), RIVOS
Jeff Law,
Victor Constant, Google
Tomas Evensen, AMD
Alexey Bataev, SiFive
Terje Bergstrom, NVIDIA
Barna Ibrahim, Rivos
Brian 'redbeard' Harrington, Redhat
David Weaver, Akean
Kumar Sankaran, Ventana
Paul Walmsley, SiFive
Nathan Egge, Google
Agenda
Developer Infrastructure Deep Dive led by Paul Walmsely
WG Opens
Future topics: WG Opens/challenges
AIs from last week
Developer Infrastructure WG Introduction & Vision
Build Farm
2024Q1 Review
Next Steps
Board Farm
Developer Tools
Challenges
Developer Infrastructure WG Introduction
Charter
The Developer Infrastructure WG focuses on software and services to support open-source RISC-V developers - both RISE members and the broader open-source community.
Co-chairs
Barna Ibrahim (Rivos)
Paul Walmsley (SiFive)
TSC Contact
Nathan Egge (Google)
Developer Infrastructure WG Vision
Three mutually-supporting projects
RISE Build Farm (Active)
RISE Board Farm (Active)
RISE Developer Tooling (In planning)
Goal
Provide robust development infrastructure and tools to RISC-V developers
RISE Build Farm: Introduction
Objective
Cross-build and test (in simulation) RISC-V ports of key open source software
Running in Google Cloud
Björn Töpel (Rivos) coordinating
Status
7 active projects
Thousands of builds, and millions of tests per month.
Build Farm: 2024Q1 Review
Broadened the administration base
Brian “Redbeard” Harrington (Red Hat) now helping out with general admin tasks
Björn Töpel now leading the Build Farm
Four existing projects still running
Two new projects added
GCC fuzzer:
LLVM fuzzer:
Credits currently set to expire on September 12, 2024
Expiration date just discovered mid-April
Will discuss with Amber and Lars to see if this can be extended
Build Farm: Looking Forward
CI/CD Based Controller + Job system
Projects can include a JenkinsFile in their repo which defines the job requirements. Makes the jobs portable across Jenkins instances as well
Webhook + status integration across GitHub, GitLab, and publishing via host names in the subdomain “di.riseproject.dev”.
Will make this easy to add more Build Farm projects with greater flexibility
Members will coordinate with other working groups to solicit other projects and support their onboarding
Compared to Kubernetes it is much simpler to understand and deploy.
Biggest challenges: sheep shearing (setting up credential vaults for API access into secret material, authentication proxies, configuring back end roles & policies to allow for the correct, limited, API calls from Jenkins into GCP using the proper service accounts, ensuring build systems “fail” and recover property upon crashing, that services all recover correctly, etc)
We Need More Build Farm Projects
Build farm project growth rate is leveling off
Let’s get more build farm projects going for future payoffs in better RISC-V ecosystem support for all of us
Please contact us if you have project ideas - we can help
RISE Board Farm: Introduction
Objective
Many use cases: OpenJDK, Linux distributions, kernel, Go(?) …
Provide a range of Linux-capable RISC-V boards to run functionality and performance tests on CI-generated code
Investigate future feasibility of providing developer access to boards
Curtis Galloway (Google) coordinating
RISE Board Farm: Status
Hardware prototype running, based on Kendryte K230
Software infrastructure in progress
Target is to remotely load as much of the software on the board as possible
Hosting at OSUOSL
Goal: contract agreed in May (new one needed since RISE hosted by LF EU)
RISE Developer Tools: Introduction
Objective
Ideally combines cross and native development environment and native system software and userspace
Provide a full Linux system image build, boot, and development environment for use on both simulators (QEMU) and RISC-V hardware
Will start with Nathan’s Gentoo build
No one yet coordinating
18 Apr 2024
Michelle Martineau, The Linux Foundation
Drew Fustini, Tenstorrent
Erich Hanke, AMD
Tomas Evensen, AMD
Anup Patel, Ventana
Mark Zhuang, SpacemIT
Heinrich Schuchardt, Canonical
Terje Bergstrom, NVIDIA
Gordan Markus, Canonical
Sunil Vl, Ventana
Daniel Barboza, Ventana
Simon Harvey, Imagination
Barna Ibrahim, Rivos
Brian 'redbeard' Harrington, Redhat
David Weaver, Akeana
Kumar Sankaran, Ventana
Paul Walmsley, SiFive
Victor Costan, Google
Alexey Bataev, SiFive
Nathan Egge, Google
Steve Wanless, RedHat
Paul Walmsley, SiFive
Olof Johansson,
Jefro, Redhat
Mason Li, MediaTek
Agenda
Simulator Emulator Deep Dive led by Daniel Barboza
WG Chairs: Propose setting a minimum of one live meeting per month for each WG
WG Opens
Future topics: WG Opens/challenges
AIs from last week
Simulator Emulator Deep Dive led by Daniel Barboza
2024 projects - not yet started
SE_01_003 - QEMU WorldGuard support
SE_01_021 - QEMU RVA23 profile support
SE_02_004 - QEMU RVV performance enhancements
2024 projects - in progress, not sent for review
SE_01_017 - QEMU ACPI SPCR support for RISC-V
Community project (Starfive)
SE_01_018 - QEMU ACPI PPTT support for RISC-V
Community project (Starfive)
2024 projects - upstream process ongoing
SE_01_005 - QEMU PCIe passthru on x86 hosts
Latest version: v1
Project has dependencies on UBOOT and GRUB
SE_01_004 - QEMU IOPMP support (no change)
Latest version: v5
SE_01_015 - QEMU RISC-V IOMMU support
Latest version: v2
Goal: merge it for QEMU 9.1 (July 2024 code freeze)
SE_01_022 - RISC-V Server SoC Reference Board
New project
Latest version: v2
2024 projects - upstream completed
SE_01_019 - QEMU ACPI SRAT/SLIT(NUMA) support for RISC-V
SE_01_020 - QEMU SMBIOS support for RISC-V
WG Chairs: Propose setting a minimum of one live meeting per month for each WG
Propose establishing a one-live-meeting-per-month minimum for all WGs (pjw)
Even if no topics, would be good to do a status review
Discussed a few weeks ago at the TSC in the afternoon time slot
All commenters agreed
Wanted to bring it up in the morning TSC slot for any additional discussion
11 Apr 2024
Evan Harrison, The Linux Foundation
Drew Fustini, Tenstorrent
Erich Hanke, AMD
Tomas Evensen, AMD
Anup Patel, Ventana
Mark Zhuang, SpacemIT
Heinrich Schuchardt, Canonical
Terje Bergstrom, NVIDIA
Gordan Markus, Canonical
Sunil Vl, Ventana
Daniel Barboza, Ventana
Simon Harvey, Imagination
Barna Ibrahim, Rivos
Brian 'redbeard' Harrington, Redhat
David Weaver, Akean
Kumar Sankaran, Ventana
Paul Walmsley, SiFive
Victor Costan, Google
Alexey Bataev, SiFive
Nathan Egge, Google
Steve Wanless, RedHat
Paul Walmsley, SiFive
Olof Johansson,
Jefro,
Mason Li, MediaTek
Tim O,
Agenda
Distro and Integration Deep Dive led by Redbeard
WG Opens
Future topics: WG Opens/challenges
AIs from last week
Updated Deep Dive Schedule- SEE APPENDIX
Distro and Integration Deep Dive
Dev Infra WG Opens
Dev Infra: would like to get Jeff’s signoff as Toolchain & Compiler WG chair for the GCC microcontroller Build Farm proposal
FYI: RISE build farm infrastructure to build riscv64 python binary wheels. Proposal here.
Dev Infra: Björn Töpel (Rivos) & Brian Harrington (Red Hat) taking the lead on RISE Build Farm management (thanks!)
Open Discussion
Dev Infra & Language Runtimes WG Enabling RISC-V Boards Request
RISE Scaleway Boards for Language Runtimes WG Proposal
Scaleaway: RISC-V servers in the cloud.
Projects to be first enabled:
Java/Adoptium: 15 boards to build and test Java 11, 17, 21, and 22. It runs for 2000 hours/week of building and testing
Go: 5 boards, used exclusively for CI
AlmaLinux/RockyLinux: 5 boards each, used to build their distributions on RISC-V
Next Steps
TSC and WG are there other needs?
Report back to Board in 3 months on usage progress
04 Apr 2024
Michelle Martineau, The Linux Foundation
Drew Fustini, Tenstorrent
Erich Hanke, AMD
Tomas Evensen, AMD
Anup Patel, Ventana
Mark Zhuang, SpacemIT
Heinrich Schuchardt, Canonical
Terje Bergstrom, NVIDIA
Gordan Markus, Canonical
Sunil Vl, Ventana
Daniel Barboza, Ventana
Simon Harvey, Imagination
Barna Ibrahim, Rivos
Brian 'redbeard' Harrington, Redhat
David Weaver, Akean
Kumar Sankaran, Ventana
Paul Walmsley, SiFive
Victor Costan, Google
Alexey Bataev, SiFive
Nathan Egge, Google
Steve Wanless, RedHat
Agenda
Kernel and Virtualization Deep Dive led by Anup Patel
WG Opens
Future topics: WG Opens/challenges
AIs from last week
Updated Deep Dive Schedule- SEE APENDIX
Kernel and Virtualization Deep Dive led by Anup Patel
Latest Linux release updates
Linux-6.8 was released on 10th March 2024 and Linux-6.9 merge window concluded on 25th March 2024
Noteworthy updates:
RVA23 profile extensions
Updates on discovery
List of RVA23 profile extensions on wiki in-sync with latest spec
https://lf-rise.atlassian.net/wiki/display/HOME/RVA23+Profile
HWPROBE additions
No updates
KVM ONE_REG additions
Ztso and Zacas
Overall status
Total 83 extensions (04-04-2024, wiki
Kernel HWPROBE (04-04-2024)
NA - 36 (43.37%)
TBD - 16 (19.28%)
COMPLETED - 31 (37.35%)
KVM ONE_REG (04-04-2024)
NA - 10 (12.05%)
TBD - 26 (31.32%)
COMPLETED - 47 (56.63%)
2023-2H
Updates on projects
LK_01_003 - AIA drivers with DT support
Development: Completed, Upstreaming: Completed
First 8 patches merged in Linux-6.9 and remaining 8 in Linux-6.10
LK_01_005 - Native/hosted debug support (aka HW breakpoint)
Development: Completed, Upstreaming: OnGoing
LK_02_011 - KVM native/hosted debug virtualization
Development: Completed, Upstreaming: TBD
LK_03_018 - QEMU-KVM vector crypto support
Development: Completed, Upstreaming: Completed
LK_03_019 - QEMU-KVM bitmanip support
Development: Completed, Upstreaming: Completed
Overall status
Total 27 projects (04-04-2024, wiki)
Development (04-04-2024)COMPLETED / NOTNEEDED - 27 (100%)
Upstreaming (04-04-2024)
TBD - 3 (11.11%)
ONGOING - 7 (25.93%)
COMPLETED / NOTNEEDED - 17 (62.96%)
2024-1H
Updates on priorities
HWPROBE discovery for Z* and S* extensions included in RVA23 profile
Kernel
ISA Extensions
ACPI improvements
ACPI LPI support
ACPI CPPC support
ACPI PPTT support
ACPI NUMA support
ACPI SPCR support
SBI v2.0
Steal time support
System suspend support
Debug console support
PMU snapshot support
KVM
KVM selftests
KVM unit tests
Host nested acceleration (Defined by SBI v2.0)
ISA extensions
ONE_REG discovery for Z* and S* extensions included in RVA23 profile
Virtualize SBI v2.0 support
Steat time support for Guest (incl. KVMTOOL and QEMU-KVM)
System suspend support for Guest (incl. KVMTOOL and QEMU-KVM)
Debug console support for Guest (incl. KVMTOOL and QEMU-KVM)
PMU snapshot support for Guest (incl. KVMTOOL and QEMU-KVM)
Xen
Shared memory and event channel
IOMMU driver
Updates on projects
LK_01_011 - ACPI LPI support
Development: Completed, Upstreaming: Completed
LK_01_012 - ACPI CPPC support
Development: Completed, Upstreaming: Completed
LK_01_018 - Optimize bitops using Zb* extensions
Development: Completed, Upstreaming: Completed
LK_02_015 - KVM Zawrs virtualization
Development: Completed, Upstreaming: Ongoing
LK_02_020 - KVM Zacas virtualization
Development: Completed, Upstreaming: Completed
LK_03_003 - KVMTOOL Debug console support
Development: Completed, Upstreaming: Completed
LK_03_012 - KVM selftests improvements
arch_timer, demand_paging_test, dirty_log_test, get-reg-list, guest_print_test, kvm_binary_stats_test, kvm_create_max_vcpus, kvm_page_table_test, set_memory_region_test, and steal_time
Development: Completed, Upstreaming: Completed
Lists of tests
LK_03_013 - KVM unit tests RISC-V port
Development: Completed, Upstreaming: Completed
LK_03_020 - KVMTOOL Smstateen support
Development: Completed, Upstreaming: Completed
LK_03_021 - QEMU-KVM Smstateen support
Development: Completed, Upstreaming: Completed
LK_03_022 - KVMTOOL Zawrs support
Development: Completed, Upstreaming: TBD
LK_03_025 - QEMU-KVM Svnapot support
Development: Completed, Upstreaming: Completed
LK_03_028 - KVMTOOL Zacas support
Development: Completed, Upstreaming: TBD
Overall status
Total 43 projects (04-04-2024, wiki)
Development (04-04-2024)
TBD - 8 (18.60%)
ONGOING - 2 (4.65%)
COMPLETED - 33 (76.75%)
Upstreaming (04-04-2024)
TBD - 13 (30.23%)
ONGOING - 10 (23.26%)
COMPLETED - 20 (46.51%)
Eclipse Temurin 21 and 22 Available on RISC-V
RISE and Adoptium Collaboration
Significant advancement in the Java ecosystem: the availability of Eclipse Temurin 21 on RISC-V.
Adoptium Blog: Eclipse Temurin 21 and 22 Available on RISC-V
RVI Blog: Java 21 and 22 Now Available on RISC-V: A Collaboration Between RISE and Eclipse Adoptium
RISE Linkedin Post (Working to create a blog page)
GCC Microcontroller CI Proposal
RISE Build Farm: GCC Microcontroller Target CI proposal from the RISE DevInfra team.
Add support for testing microcontroller architectures that don’t support all the g extensions. Some possible extensions to test would be:
Rv32imac-ilp32
Rv64imac-lp64
Rv32imc-ilp32
Rv64imc-lp64
Rv32imc_zicsr_zifencei-ilp32
rv64imc_zicsr_zifencei-lp64
Additional combinations with various bitmanip extensions can also be tested.
Projects need these boards are:
Java/Adoptium: 15 boards to build and test Java 11, 17, 21, and 22. It runs for 2000 hours/week of building and testing
Go: 5 boards, used exclusively for CI
AlmaLinux/RockyLinux: 5 boards each, used to build their distributions on RISC-V
The boards available on Scaleway are likely small to productize it, but they can allow to bootstrap the process.
28 Mar 2024
Michelle Martineau, The Linux Foundation
Erich Hanke, AMD
Ming-Yu Hung (MTK)
Sunil V L, Ventana
Mark Zhuang, SpacemIT
Andrei Warkentin, Intel
Heinrich Schuchardt, Canonical
Terje Bergstrom, NVIDIA
Gordan Markus, Canonical
Ludovic Henry, Rivos
Daniel Barboza, Ventana
Simon Harvey, Imagination
Barna Ibrahim, Rivos
Brian 'redbeard' Harrington, Redhat
David Weaver, Akeana
Jian Zhang, BOSC
Fei Wu, intel
Kumar Sankaran, Ventana
Paul Walmsley, SiFive
Victor Costan, Google
Alexey Bataev, SiFive
Nathan Egge, Google
Tim Ouyang, Andes
Agenda
Welcome New Member: Tenstorrent
Compilers and Toolchains Deep Dive led by Jeff Law
RFP Quick Glance & RP008 update
WG Opens
Future topics: WG Opens/challenges
AIs from last week
Compilers and Toolchains Deep Dive – RP008
Rivos has identified cases where icounts for spec2017 on RISC-V are at least 10% higher than on AArch64
Contractor to evaluate those cases for phase 1
Identify issues driven by ISA differences
Identify cases where compiler could be doing better along with broad approach to fixing – for phase 2 work
Compilers and Toolchains Deep Dive – GCC Status
GCC-14 release likely in May
Initial release with vector support
Many other code generation improvements, extension support, etc
Many things already queued up for gcc-15
Leads to same problem we had last year – a year delay between code going into the tree and the actual release
Likely resulting in a optimization coordination branch again
20 projects identified for 1H2024
10 are already at development completion, 8 in progress, 1 under investigation, 1 not started
6 already upstreamed (ie, in gcc-14), rest are on hold waiting for development window to reopen
Compilers and Toolchains Deep Dive – LLVM Status
LLVM 18 release earlier this month
New cores supported (primarily from SiFive)
RV32E/RV64E support
Register pressure sensitive scheduling
Some TLSDESC support landing, early support for pointer masking
Arch string ordering constraints relaxed!
TypePromotion pass enable for RISC-V
Several extensions moved out of experimental state
Usual ongoing performance improvements
Compilers and Toolchains Deep Dive – LLVM Status
LLVM Projects identified for 1H2024 – only 6, like more that should be added to the page.
CRC – looks like Joe Faulls (Imagination Technologies) has picked this up from Mikhail. MR filed and is undergoing review.
X264 if-conversion. 2 of 3 blockers resolved. Still hashing through one notable issue in the generic if-conversion code
Stack Clash – Just getting started, engineer’s 1st LLVM project
Shrink Wrapping – Just getting started.
Overly aggressive if-conversion in some cases?
Compilers and Toolchains Deep Dive – MISC
Should we make LLVM and GCC distinct projects under the RISE umbrella, with Craig or someone else tied into the LLVM community as the leader for the LLVM effort going forward?
We’ve generally avoided regularly scheduled meetings in this WG per requests from various developers – would a one-a-month “office hours” be useful for RISE members?
21 Mar 2024
Michelle Martineau, The Linux Foundation
Erich Hanke, AMD
Ming-Yu Hung (MTK)
Sunil V L, Ventana
Mark Zhuang, SpacemIT
Andrei Warkentin, Intel
Heinrich Schuchardt, Canonical
Terje Bergstrom, NVIDIA
Gordan Markus, Canonical
Ludovic Henry, Rivos
Daniel Barboza, Ventana
Simon Harvey, Imagination
Barna Ibrahim, Rivos
Brian 'redbeard' Harrington, Redhat
David Weaver, Akeana
Jian Zhang, BOSC
Fei Wu, intel
Kumar Sankaran, Ventana
Paul Walmsley, SiFive
Victor Costan, Google
Alexey Bataev, SiFive
Nathan Egge, Google
Tim Ouyang, Andes
Agenda
Firmware Deep Dive led by Sunil V L
WG Opens
Future topics: WG Opens/challenges
AIs from last week
Firmware Deep Dive led by Sunil V L
2024 Project Status update
Upstreaming complete.
PoC available from Andes
Andes hosting and maintaining github
Dependency on RVI specs (MPXY/RPMI) to upstream.
More work required to enable features
AIA, Smmtt etc
PoC available.
Dependency on frozen spec to upstream.
SBI_00_04 - Domain Context Switch Support
OPTEE_00_01 - OP-TEE support
SBI_00_05 - OpenSBI RPMI MM Support
EDK2_00_15 - StandaloneMmPkg RPMI MM support
2024 Project Status update Cont.
Upstreaming complete.
PoC available from Andes
Andes hosting and maintaining github
Dependency on RVI specs (MPXY/RPMI) to upstream.
More work required to enable features
AIA, Smmtt etc
PoC available.
Dependency on frozen spec to upstream.
SBI_00_04 - Domain Context Switch Support
OPTEE_00_01 - OP-TEE support
SBI_00_05 - OpenSBI RPMI MM Support
EDK2_00_15 - StandaloneMmPkg RPMI MM support
2024 Project Status update Cont.
Helps vendors to support ACPI easily.
RFC patches sent.
Major refactoring of DynamicTablesPkg required to support other architectures.
Maintainers started new staging branch to refactor.
Upstreaming RISC-V support - probably late 2024 or 2025.
In progress.
Dependency on UPL specification
First version of the patch series sent
EDK2_00_14 - DynamicTablesPkg support
EDK2_00_10 - UefiPayloadPkg For RISC-V
EDK2_00_18 - RISC-V QEMU Server Reference Platform
2024 Project Status update Cont.
Showcased this RISE effort in UEFI DevCon & Plugfest
PoC available at https://github.com/intel/FdtBusPkg
EDK2_00_03 - FdtBusDxe support
Opens/Challenges
Significant organization overhead to maintain in member’s github.
There may not be any upstream repo at all.
Ex: MultiArchUefiPkg.
Getting requests from members for RISE github
Need TSC help to clearly document the RISE policy for github repo.
14 Mar 2024
Evan Harrison, The Linux Foundation
Andrew de los reyes (Adlr), Rivos
Barna Ibrahim, Rivos
Brian 'redbeard' Harrington, Redhat
Daniel Barboza, Ventana
Erich Hanke, AMD
Jeff Law, Ventana
Jian ZHANG, Beijing Institute of Open Source Chip
Kumar Sankaran, Ventana
Mason Li, MediaTek
Nathan Egge, Google
Paul Walmsley, SiFive
Terje Bergstrom Nvidia
Tim Ouyang, Andes
Victor Costan, Google
Agenda
Reminder: No deep dive for this week
RFP Status Update
WG Opens
Future topics: WG Opens/challenges
AIs from last week
RFP contract Progress
Contract vendors send Tech Leads & RFP Reporting mailing Biweekly reports
Please request this cadence when you start engaging with your contractor
Tech Leads provide Monthly updates to TSC (Report)
Working group updates to the board will include the RFP updates
Working Groups Opens / Challenge
Not a distro-integration problem, in the RVI profiles discussion, there has been a lot of effort put into the idea of vertical profiles. There hasn't been a lot of discusssions about horizontal profiles. What happens when we get to the place where I have purchased my motherboard and I have to choose between chips from intel, ventana, etc... This is a discussion that needs to happen, there isn't a concrete answer right now.
The platform spec - there should be one single distro image for all platforms, this is the high level answer currently.
07 Mar 2024
MichelleMartineau, The Linux Foundation
Tomas Evensen, AMD
Ming-Yu Hung (MTK)
Anup Patel, Ventana
Heinrich Schuchardt, Canonical
Gordan Markus, Canonical
Ludovic Henry, Rivos
Daniel Barboza, Ventana
Simon Harvey, Imagination
Barna Ibrahim, Rivos
Brian 'redbeard' Harrington, Redhat
David Weaver, Akeana
Jian Xiong, Alibaba
Fei Wu, intel
Kumar Sankaran, Ventana
Paul Walmsley, SiFive
Victor Costan, Google
Nathan Egge, Google
Tim Ouyang, Andes
Andrew de los reyes (Adlr), Rivos
Jeff Law
Ruinland, Andes
Agenda
New Member Application in Progress- Bytedance
Distro and Integration Deep Dive- Brian (RedBeard) Harrington
WG Opens
Future topics: WG Opens/challenges
AIs from last week
Distro and Integration Deep Dive- Brian (RedBeard) Harrington
Charter:
Work is focused on two kinds of projects.
The champion identifies the directions/projects
The WG works to prioritize, unravel dependencies on other WGs or file projects in other WGs
Issues common to multiple Linux distros (e.g. bugs/features in common packages)
Enabling a specific Linux distro, provided the Linux distro has a champion/vendor.
Ongoing work / requests:
Establish a new kernel + old glibc baseline for use in Python packaging
Ludovic (Rivos) has successfully made inroads with contributors to Alma Linux
Unfortunately, due to the packaging policies on many RPM derived distros physical systems are needed for distributable packages.
Establish support for SecureBoot on RISC-V
Heinrich (Canonical) created a patch set in 2021 which Red Hat has failed to merge. Recently Redbeard updated the patch set and has increased the pressure internal to Red Hat to force feedback.
Upcoming work / requests:
As chair for the WG I have been approached by a number of individual contributors and community members who are seeking a free/libre/open source FPGA toolchain which can be used in continuous integration systems. This is related to the prior citation about the need for physical systems.
I have encouraged those reaching out to engage both the relevant mailing lists as well as attend the WG meeting so that I am not a critical mutex on all discussions.
Challenges:
As with other groups, problems with attendees getting access to the mailing list and calendar invites.
WG Opens
Ensuring WG leads have administrator access to their WG mailing lists
29 Feb 2024
Evan Harrison, The Linux Foundation
Erich Hanke, AMD
Daniel Barboza, Ventana
Barna Ibrahim, Rivos
Brian 'redbeard' Harrington, Redhat
David Weaver, Akeana
Paul Walmsley, SiFive
Terje Bergstrom, Nvidia
Victor Costan, Google
Sunil VL, Ventana
Nathan Egge, Google
Tim Ouyang, Andes
Andrew de los reyes (Adlr), Rivos
Jeff Law
Agenda
System Libraries Deep Dive led by Nathan Egge
GCC SPEC analysis work
RFP Updates
WG Opens
Future topics: AIs from this week
AIs from last week
System Libraries Deep Dive 2024-February-29
Toolchain performance plan?
Can be fixed quickly by RISE member company
Otherwise, can add to RFP for toolchain wor
Assign owner for each gap
Quickly triage problem
Identify fixes into two categories:
How anyone run these by Greg? - Paul
Jeff to triage these issues that him and his team runs into. Adlr will assist with this effort after Jeff has triaged.
GCC compiler gaps
GCC riscv64 vs GCC aarch64-SVE
GCC riscv64 vs LLVM riscv64
Note: Some LLVM tests don’t run
ImageMagick was -30%, but fixed with Zfa
LLVM compiler gaps
riscv64 LLVM vs riscv64 GCC
Note: some LLVM tests didn’t run
Generally see scalar code is behind
22 Feb 2024
Michelle Martineau, The Linux Foundation
Heinrich Schuchatdt, Canonical
Erich Hanke, AMD
Daniel Barboza, Ventana
Barna Ibrahim, Rivos
Mark Zhuang, Smacemit
Brian 'redbeard' Harrington, Redhat
David Weaver, Akeana
Paul Walmsley, SiFive
Terje Bergstrom, Nvidia
Victor Costan, Google
Gordan Markus, Canonical
Fei Wu, Intel
MyungJoo Ham, Samsung
Sunil VL, Ventana
Kumar Sankaran, Ventana
Steve Wanless, Redhat
Robin Randhawa, SiFive
Anup Patel, Ventana
Nathan Egge, Google
Andrei Warkentin, Intel
Simon Harvey, Imagination
Ludovic Henry, Rivos
Tim Ouyang, Andes
Agenda
Language Runtimes Deep Dive led by Ludovic Henry
RFP - Process; Status Update
Requiring RVWMO minimum target for development projects
Xen interest?
WG Opens
Future topics: WG Opens/challenges
AIs from last week
Language Runtimes Deep Dive led by Ludovic Henry
Optimization Guide is Live!
Please contribute!
Next steps
Get better address than
https://riscv-optimization-guide-riseproject-c94355ae3e6872252baa952524.gitlab.io/
Working with Michelle on that
RFP: Go Runtime
Contract is still in process of being signed
Ongoing contributions:
Assembler and compiler
Rotation, atomics, intrinsics, and more
Support for Bitmanip
Compiler optimizations
Board farm
Need for Adoptium, Go Runtime, AlmaLinux/RockyLinux (for Python)
LicheePi/VF2 enough for some workloads, not enough for others
Eager to see MILK-V Oasis in action
In discussions with AlmaLinux and RockyLinux to understand what they would need (sizing, access)
Need to sync up with Distribution WG
Python packaging
It’s being done internally at Rivos for nowWill push to RISE in the coming weeksAll based on GitLab
We need to package and distribute Python packages
Upstream projects can’t package on RISC-V today
Limitation of Python packaging tools
We have a WIP to get it based on Ubuntu 22.04
Java 11 backport
Landed yesterday with openjdk/riscv-port-jdk11u:309291f1
Going to setup Adoptium CI for that
Goal is to get it packaged and tested on public CI by end of month
Java 17, 21 release
Adoptium is very eager to get it done
Approved by PMC and Steering Comittee
Stuck on having HW for running TCK
VF2 board on a desk is not an option at the moment…Working with Eclipse Foundation to make sure they have the resources and know-how to set it upBoard farm would be ideal here; Need for 7-10 LicheePi/VF2 for public + TCK CI
Order of priority: 21, 17, 11
V8 & Android
ISCAS has done the work to port V8 to Android RISC-V
https://chromium-review.googlesource.com/c/v8/v8/+/5309945 - Approved and merged
Next: android_toolchain NDK to support RISCV64
Talking to Nathan about that
15 Feb 2024
Evan Harrison, The Linux Foundation
Erich Hanke, AMD
Heinrich Schuchatdt, Canonical
Brian 'redbeard' Harrington, Redhat
Daniel Barboza, Ventana
David Weaver, Akeana
Paul Walmsley, SiFive
Terje Bergstrom, Nvidia
Victor Costan, Google
Kumar Sankaran, Ventana
Steve Wanless, Redhat
Andrew de los Reyes (Adlr), Rivos
Jeff Law, Ventana
Jeffrey Osier-Mixon (Jefro), Red Hat
Mason Li, MediaTek
Nathan Egge, Google
Tim Ouyang, Andes
Trilok Soni, Qualcomm
Agenda
Developer Infrastructure Deep Dive led by Paul Walmsley
Association Collaborations - how to organize and discuss
Adoptium, AGL, Yocto, ?
WG Opens
Future topics: WG Opens/challenges
AIs from last week
Developer Infrastructure WG Introduction & Vision
Build Farm
2023Q4 Review
2024Q1 Midpoint Update
Next Steps
Board Farm
Developer Tools
Challenges
Developer Infrastructure WG Introduction
Charter
The Developer Infrastructure WG focuses on software and services to support open-source RISC-V developers - both RISE members and the broader open-source community.
Co-chairs
Barna Ibrahim (Rivos)
Paul Walmsley (SiFive)
TSC Contact
Nathan Egge (Google)
Developer Infrastructure WG Vision
Three mutually-supporting projects
RISE Build Farm (Active)
RISE Board Farm (In planning)
RISE Developer Tooling (In planning)
Integration of set of software and user space tools that are necessary to cross build or test.
Goal
Provide robust development infrastructure and tools to RISC-V developers
RISE Build Farm: Introduction
Objective
Cross-build and test (in simulation) RISC-V ports of key open source software
Running in Google Cloud
Status
Build Farm growing quickly…
Four active projects spanning three RISE work groups
100% growth from 2023Q3
… but need to grow faster!
Build Farm: 2023Q4 Review
Broadened the administration base
Björn Töpel (Rivos) now helping out with general admin tasks
Two existing projects from 2023Q3 still running
Linux kernel and gcc post-commit CI
Two new projects added in December 2023
Patrick O’Neill & Edwin Lu (Rivos)
Ludovic Henry (Rivos)
gcc pre-commit CI
OpenJDK post-commit CI
Improved policies and administration documentation
Example: Project Proposal Form
Build Farm: 2024Q1 Midpoint Update (1 of 2)
Kernel CI instances converted to use GKE - Björn Töpel (Rivos)
Dealing with technical issues (to be discussed with Google)
Costly, but well-integrated with Github Runners and offers easier scaling
Still experimental and under review
Kernel CI doing more work
New projects in progress
Patrick O’Neill & Edwin Lu (Rivos)
GCC/LLVM toolchain fuzzing
Build Farm: 2024Q1 Midpoint Update (2 of 2)
Broadening the administration base
Brian “redbeard” Harrington (Red Hat) has expressed interest in helping
Instance power control now available
Should reduce spend for intermittent workloads (e.g. OpenJDK CI)
Discussions in progress with LF IT on support options
GKE support questions
Build farm management assistance
Build Farm Next Steps for rest of 2024Q1
Add more Build Farm projects
Attend other WG meetings to solicit other projects
Continue to improve operations
Continue improving policies & procedures
Continue improving documentation (wiki & internal)
Continue investigating external IT assistance
Continue recruiting more Build Farm Leads
Enable webhook-driven builds
Start tracking our admin service metrics
Get cloud credit details from LF IT/Google Cloud
Drive greater efficiency
Review GKE value
Implement power control on lightly-used instances
Investigate spot instances
RISE Board Farm: Introduction
Objective
Many use cases: OpenJDK, Linux distributions, kernel, Go(?) …
Provide a range of Linux-capable RISC-V boards to run functionality and performance tests on CI-generated code
Investigate future feasibility of providing developer access to boards
Curtis Galloway (Google) coordinating
Status: Still very early days
Discussions underway with RVIA, OSUOSL
RISE Developer Tools: Introduction
Objective
Ideally combines cross and native development environment and native system software and userspace
Provide a full Linux system image build, boot, and development environment for use on both simulators (QEMU) and RISC-V hardware
Discussed options so far: Nathan’s Gentoo build and OpenEmbedded
No one yet coordinating
Challenges
Improve administration turnaround time for creating new instances, etc.
Better administrator attendance at our WG meetings
Drive more activity on the Board Farm and Developer Tools projects
Looking for help to drive the Developer Tools effort forward
Need more build projects and project owners!
Please help
Credits
Barna Ibrahim (Rivos): Co-chair
Björn Töpel (Rivos): Kernel CI Build Farm Project Admin, Build Farm Lead, Build Farm Administrator
Curtis Galloway (Google): Board Farm Lead
Edwin Lu (Rivos): Toolchain Build Farm Project Admin
Ludovic Henry (Rivos): Language Runtimes Build Farm Project Admin
Patrick O’Neill (Rivos): Toolchain Build Farm Project Admin
Paul Walmsley (SiFive): Co-chair
Language Runtime WG Adoptium Membership Proposal
Adoptium Introduction
Only fully Open Source Java vendor - Alignment with RISE Goals
OSS test suite used by Ubuntu and Redhat JDK
RISE Adoptium Sponsorship Benefits
Deeper engagement and visibility with Java Community
Adoptium is one of the most used Java distribution
Provide machines to Adoptium (Build farm, Board farm)
Association Collaborations
Adoptium Introduction
Only fully Open Source Java vendor - Alignment with RISE Goals
OSS test suite used by Ubuntu and Redhat JDK
Board approved supporting via CI services and perhaps get RISE logo listed
Discussions around Adoptium, AGL, Yocto
How should we propose and track these?
Any RISE spend should ensure value for money
ACTION: Discuss with Yocto if they want to become a member: Jefro is happy to support the discussion with Yocto
08 Feb 2024
Gordan Markus, Canonical
Michelle Martineau, The Linux Foundation
Erich Hanke, AMD
Heinrich Schuchatdt, Canonical
Tomas Evensen, AMD
Jian Xiong, Alibaba
Barna Ibrahim, Rivos
Fei Wu, Intel
Brian 'redbeard' Harrington, Redhat
Daniel Barboza, Ventana
David Weaver, Akeana
Paul Walmsley, SiFive
Terje Bergstrom, Nvidia
Simon Harvey, Imagination
Robin Randhawa,SiFive
Mark Zhuang, SpacemIT
Ludovic Henry, Rivos
Victor Costan, Google
Kumar Sankaran, Ventana
Steve Wanless, Redhat
Anup Patel, Ventana
Agenda
Simulator Emulator Deep Dive led by Daniel Barboza
Debug & Profiling Deep Dive Led By Fei Wu
RISC-V Optimization Guide Publication
RFP: RP004 Review and Status
WG Opens/challenges
Firmware: OP-TEE WG Opens
AIs from last week
Simulator Emulator Deep Dive led by Daniel Barboza
WG 2023 wrap-up
WG 2024 item status
Projects not yet started
Projects in progress, not yet sent for review
Projects under review
2023 wrap-up:
SE_01_001 - QEMU linux-user riscv_hwprobe syscall support
SE_01_002 - QEMU Virtual IRQ and IRQ filtering support
SE_01_014 - QEMU query-cpu-model-expansion API
SE_02_001 - QEMU Vector crypto support
SE_01_009 - QEMU ACPI support for AIA
SE_01_010 - QEMU ACPI support for PLIC
SE_01_011 - QEMU RVA22 profiles support
SE_01_005 - QEMU PCIe passthru on x86 host
Projects completed and available in QEMU 8.0 (launched Dec 2023):
Projects completed and available in QEMU 9.0 (to be released April 2024):
Projects not completed in time and pushed to 2024:
2024 projects - not yet started
Tracker project
Project RP005 Add QEMU TCG support for V and Zvk
Bidding ends Feb 2nd
RISE contacts: Max Chou (Si-Five) and Daniel Barboza (Ventana)
SE_01_003 - QEMU WorldGuard support
SE_01_016 - QEMU linux-user hwprobe kernel parity
SE_01_021 - QEMU RVA23 profile support
SE_02_004 - QEMU RVV performance enhancements
2024 projects - in progress, not sent for review
Community project (Starfive)
Community project (Starfive)
SE_01_017 - QEMU ACPI SPCR support for RISC-V
SE_01_018 - QEMU ACPI PPTT support for RISC-V
SE_01_019 - QEMU ACPI SRAT/SLIT(NUMA) support for RISC-V
SE_01_020 - QEMU SMBIOS support for RISC-V
2024 projects - upstream progress ongoing
Last version: v1
Project has dependencies on UBOOT and GRUB
Last version: v5
Last version: v1
Development done by Rivos, Ventana will help with the upstreaming
SE_01_005 - QEMU PCIe passthru on x86 hosts
SE_01_004 - QEMU IOPMP support
SE_01_015 - QEMU RISC-V IOMMU support
Debug & Profiling Deep Dive Led By Fei Wu
2023 projects
Code ready for running integer part of RVV instructions, but in slow review process
v7 patch submitted, hoping get pushed soon
Technical ready, but rv32 on llvm is inactive, not only asan
DP_04_001 - Userspace Cycle/Instret access (Done)
DP_01_002 - Evaluate GDB status on RISC-V (Done)
DP_02_002 - Evaluate LLDB status on RISC-V (Done)
DP_00_001 - Valgrind vector support
DP_01_003 - GDB Simulator - Add Zc support
DP_05_001 - Address Sanitizer
2024H1 new projects
DP_04_002 - Perf event discovery/encoding from json file (Dev Done)
DP_04_003 - Perf CTR (equivalent of x86 LBR) support (Dev Done)
DP_04_004 - Perf CTR call stack mode support (WIP)
DP_07_003 - DynamoRIO drcachesim & drcov support (WIP)
DP_07_004 - DynamoRIO V extension support
DP_07_005 - DynamoRIO enable remaining tests that are also supported by AArch64
DP_07_006 - DynamoRIO RISC-V specific documentation
Software performance regression CI Infrastructure (Discussion)
Currently, many software optimizations on RISC-V are performed on QEMU or non-representative hardware with limited resources. These optimizations are based on the developer's interpretation of the features, which may not align with the actual hardware or may vary across different hardware.
Software performance regressions are a common occurrence and it's crucial that we identify and fix them at the earliest possible stage.
Problem to solve
Linaro extends LKFT (Linaro Kernel Functional Test) functionalities to include automatic detection and reporting of performance regressions in 2021
Test on real hardware and focus on key software, easy to scale to other software
RFP?
RISC-V Optimization Guide Publication
TSC Optimization Guide discussion; Agreement on dropping the vendor languages for the release - Merged.
This is a living document and will continued to be updated
Publish the Optimization Guide 02/09/2024
Follow up with RVI leadership on the published link.
Firmware: OP-TEE WG Opens
Rationale
Risk of fragmentation
Multiple orgs are already working on OP-TEE ports to RV64
5 known so far, probably more exist
The fragmentation scope is likely to increase over time
Especially as ‘new’ security architecture features gain traction
Eg WorldGuard, SMMTT et al
Technical challenges
OP-TEE presents some technical challenges for RISC-V
These need structured debate, design and development
Eg OP-TEE’s pre-emption model is tricky for RISC-V
OP-TEE will probably have M-Mode dependencies
Strategic issues
Upstream OP-TEE does not have a RISC-V maintainer
OP-TEE is fundamentally an Arm led initiative
A fragmented upstreaming effort will benefit no one
Logistical challenges
A public platform is needed
That supports relevant security features
Qemu virt is a natural default option
But similar risks apply here as well
Alignment needed on the nature of qemu support
Such alignment needs a RISC-V specific forum
RISE as a convergence point will mitigate these problems
Collaboration model outline
Key elements
An OP-TEE focus group within the Firmware WG
A public OP-TEE staging repository within RISE
A RISE hosted OP-TEE specific blog (or similar)
Workflow
Work definition and delegation
The focus group collaborates on work definition, delegation
Establishing dependencies on other WGs or projects, if any
Outputs are published externally on the blog
Promotes wider community awareness
Reduces the potential for any redundant work etc
Code contribution
Code contributions are ‘collected’ in the staging repository
From both RISE members and non-members
The focus group resolves any ‘impedance mismatches’
Between work in this repository, the OP-TEE upstream, etc
Upstream pull requests
Code contributions are suitably reviewed and processed
Upstream PRs are raised by relevant work owners
Upstream review
The focus group helps resolve upstream queries etc
Through to upstream inclusion of code
OP-TEE focus group
Is there precedent for such a thing ?
Why can’t we just engage directly with upstream instead ?
What is the structure of such a focus group ?
What is the impact on other FW WG work ?
OP-TEE staging public code repository
Is there precedent for such a thing ?
We don’t want to create another upstream
Such a repository needs ownership and maintenance
Also a branching regime etc
OP-TEE public blog
Is there precedent for such a thing ?
This needs ownership and maintenance
Info on this blog needs to be ‘well formed’ - needs thought
Miscellaneous
The existing OP-TEE RFP may be used to kickstart work
Nuclei’s publicly available work can help too
01 Feb 2024
Jeff Law, Ventana
Evan Harrison, The Linux Foundation
Erich Hanke, AMD
Tomas Evensen, AMD
Barna Ibrahim, Rivos
Larry Wikelius, Qualcomm
Brian 'redbeard' Harrington, Redhat
Daniel Barboza, Ventana
David Weaver, Akeana
Paul Walmsley, SiFive
Terje Bergstrom, Nvidia
Jian Zhang, BOSC
Ludovic Henry, Rivos
Victor Costan, Google
Adlr (Andrew de los Reyes), Rivos
Jefro (Jeffrey Osier-Mixon), Redhat
Kumar Sankaran, Ventana
Mason Li, Mediatek
Steve Wanless, Redha
Agenda
Board Representative Larry Wikelius (Qualcomm)
RISE Optimization Guide
RFP Prioritization Approvals
WG Opens
Future topics: WG Opens/challenges
AIs from last week
25 Jan 2024
Attendees
Jeff Law, Ventana
Michelle Martineau, The Linux Foundation
Erich Hanke, AMD
Tomas Evensen, AMD
Nathan Egge, Google
Barna Ibrahim, Rivos
Larry Wikelius, Qualcomm
Brian 'redbeard' Harrington, Redhat
Daniel Barboza, Ventana
David Weaver, Akeana
Paul Walmsley, SiFive
Terje Bergstrom, Nvidia
Simon Harvey, Imagination
Anup Patel, Ventana
Heinrich Schuchardt, Canonical
Jian Xiong, Alibaba
Jian Zhang, BOSC
Robin Ranhawa, SiFive
Ludovic Henry, Rivos
Ming-Yu hung, MediaTek
Victor Costan, Google
Agenda
Board Representative Larry Wikelius (Qualcomm)
Contractor project payments
Kernel and Virtualization Deep Dive led by Anup Patel
WG Opens
Future topics: WG Opens/challenges
AIs from last week
Kernel and Virtualization Deep Dive led by Anup Patel
AGENDA:
RVA23 profile extensions
Updates on discovery
Overall status
2023-2H
Updates on projects
Status on priorities
Overall status
2024-1H
Final priorities
Overall status
RVA23 updates on Discovery
List of RVA23 profile extensions on wiki in-sync with latest spec
https://lf-rise.atlassian.net/wiki/display/HOME/RVA23+Profile
HWPROBE additions (in past 3 months)
Zicboz, Zfhmin, Zkt, Zvfhmin, Zvbb, Zvkt
Zvkned, Zvknhb, Zvkb, Zvkt, Zvkg, Zvksed, Zvksh, Zvkb, Zvbc
Zihintntl, Zicond, Zacas, Zfa, Zfh, Zbc, Zvfh
KVM ONE_REG additions (in past 3 months)
Zfhmin, Zkt, Zvfhmin, Zvbb, Zvkt
Zvkned, Zvknhb, Zvkb, Zvkt, Zvkg, Zvksed, Zvksh, Zvkb, Zvbc
Zihintntl, Zicond, Zfa, Zfh, Zbc, Zvfh
RVA23 Extensions overall profile status
Total 83 extensions (25-01-2024, wiki)
Kernel HWPROBE (25-01-2024)
NA - 36 (43.37%)
TBD - 16 (19.28%)
COMPLETED - 31 (37.35%)
KVM ONE_REG (25-01-2024)
NA - 10 (12.05%)
TBD - 27 (32.53%)
COMPLETED - 46 (55.42%)
2023 2H Project Updates
LK_01_020 - Vector crypto extensions discovery using HWPROBE
Development: Completed, Upstreaming: Completed
LK_01_033 - Bitmanip extensions discovery using HWPROBE
Development: Completed, Upstreaming: Completed
LK_02_004 - KVM AIA irqbypass
Development: Completed, Upstreaming: TBD
LK_02_019 - KVM vector crypto extensions virtualization
Development: Completed, Upstreaming: Completed
Kernel
STILL NO ACTIVITY from RISE member
New kernel irqchip maintainer has requested few changes in the AIA DT drivers
AIA ACPI support upstreaming blocked on DT drivers
Being done along with AIA ACPI support
STILL NO ACTIVITY from RISE member
Sdtrig spec is frozen but the SBI DBTR spec will be part of SBI v3.0
Memory Hot(Un)plug
KASAN support
Basic ACPI support
AIA support (DT, ACPI)
PLIC support (ACPI)
IOMMU (DT)
Vector extension support
Vector crypto extension discovery using HWPROBE
Native/hosted debug support (aka HW breakpoints)
Bitmanip extension discovery using HWPROBE
KVM
Patches on LKML blocked on AIA DT driver upstreaming
Work being done in a fork since it depends on AIA DT driver and IOMMU upstreaming
Sdtrig spec is frozen but the SBI DBTR spec will be part of SBI v3.0
Vector extension virtualization
AIA irqchip (incl. kvmtool and qemu support)
AIA IMSIC guest file support
AIA irq-bypass (aka Device MSI virtualization, incl. kvmtool and qemu)
KVM vector crypto extension virtualization (incl. kvmtool and qemu)
KVM Native/hosted debug virtualization
KVM bitmanip extension virtualization (incl. kvmtool and qemu support)
Overall Status:
Total 27 projects (25-01-2024, wiki)
Development (25-01-2024)
TBD - 2 (7.41%)
PROTOTYPE - 2 (7.4%)
Native/hosted debug blocked on specifications
ONGOING - 0 (0%)
COMPLETED / NOTNEEDED - 23 (85.19%)
Upstreaming (25-01-2024)
TBD - 6 (22.22%)
ONGOING - 7 (25.93%)
COMPLETED / NOTNEEDED - 14 (51.85%)
2024-1H: Final priorities
Kernel
HWPROBE discovery for for Z* and S* extensions included in RVA23 profile
ACPI LPI support
ACPI CPPC support
ACPI PPTT support
ACPI NUMA support
ACPI SPCR support
Steal time support
System suspend support
Debug console support
PMU snapshot support
ISA Extensions
ACPI improvements
SBI v2.0
KVM
KVM selftests
Host nested acceleration (Defined by SBI v2.0)
ISA extensions
ONE_REG discovery for Z* and S* extensions included in RVA23 profile
Virtualize SBI v2.0 support
Steat time support for Guest (incl. KVMTOOL and QEMU-KVM)
System suspend support for Guest (incl. KVMTOOL and QEMU-KVM)
Debug console support for Guest (incl. KVMTOOL and QEMU-KVM)
PMU snapshot support for Guest (incl. KVMTOOL and QEMU-KVM)
Xen
Shared memory and event channel
IOMMU driver
2024-1H: Overall status
Total 43 projects (25-01-2024, wiki)
Unassigned - 6 (13.95%)
Development (25-01-2024)
TBD - 13 (30.23%)
ONGOING - 4 (9.30%)
COMPLETED - 26 (60.47%)
Upstreaming (25-01-2024)
TBD - 20 (46.51%)
ONGOING - 13 (30.23%)
COMPLETED - 10 (23.26%)
Follow up: Compilers and Toolchains Deep Dive (1/18/24)
Effort just starting to evaluate LLVM & GCC against each other to help drive improvements in both
Initial focus on Spec2017 (int and fp) on rv64gcv+bitmanip
Dynamic instruction counts rather than uarch/cycle metrics for now
GCC/LLVM Vector Investigations Internal to RISE right now
Goal is help both compilers know where to focus improvement efforts going forward, not to promote one compiler over the other or one design over another
18 Jan 2024
Attendees
Jeff Law, Ventana
Tim Ouyang, Andes
Evan Harrison, The Linux Foundation
Erich Hanke, AMD
Tomas Evensen, AMD
Nathan Egge, Google
Barna Ibrahim, Rivos
Gorden Markus, Canonical
Brian 'redbeard' Harrington, Redhat
Daniel Barboza, Ventana
David Weaver, Akeana
Paul Walmsley, SiFive
Terje Bergstrom, Nvidia
Victor Costan, Google
Agenda
Compilers and Toolchains Deep Dive led by Jeff Law
WG Opens
Future topics: WG Opens/challenges
AIs from last week
Compilers and Toolchains Deep Dive
Effort just starting to evaluate LLVM & GCC against each other to help drive improvements in both
Initial focus on Spec2017 (int and fp) on rv64gcv
Dynamic instruction counts rather than uarch/cycle metrics for now
Goal is help both compilers know where to focus improvement efforts going forward, not to promote one compiler over the other or one design over another
Compilers and Toolchains Deep Dive – GCC
CRC optimization
Detect and optimize CRC loop to table lookup or clmul
10-20% on Coremark depending on clmul/memory latency
Works on more than just Coremark
Implementation done. Upstreaming effort to start shortly
Autovectorization focus expanding to include specfp
Wrf (70%), roms (35%), cam4 (17%), fotonik (12%), bwaves (5%), cactuBSSN (5%) parest (5%)
Initial evaluation starting with instruction counts
Expecting to see results similar to x86_64 and aarch64
Additional mem* and str* vector optimizations
Inline expansion when source/destination may overlap
glibc ifunc based implementations of key routines as well
Compilers and Toolchains Deep Dive – GCC
Other FP optimizations
Use rsqrt estimator to improve key (unvectorizable) loop in nab - not 100% sure it’s profitable, will need testing
Use dual fmacs and recip estimator to improve atan2 which is heavily used by WRF benchmark
Increase lookahead in scheduler – becomes more important as we start seeing dual FPU designs
Stack Clash Mitigations
Naive implementation limping along already
Good implementation (reduce explicit probing) underway
Closest to AArch64 implementation, needs PSABI verbage
Compilers and Toolchains Deep Dive – LLVM
Big thanks to Craig Topper (SiFive) for covering LLVM
Split register allocator, vector first, then scalar registers
Allows for vsetvl insertion between phases so vector registers can be partially spilled
Stop considering conditional branches as “expensive”
Prefers multiple branches over logicals to combine several branches into one
LTO vs -march/-mcpu issues in crosshairs
Core-V support (xcvmem, xcvelw)
Intrinsic and assembler support for various new extensions
Global Dynamic TLSDESC
ULEB128 relocation support for DWARF V5 & C++ exceptions
Vector calling conventions merged. Proposal for passing fixed length vectors in vector registers under review
The RFP is in the pipeline right now and should close in February. This could also start as a Compiler email thread, and if needed this can be further discussion inside the Compiler's meeting.
Dev Infra: Board Farm Update
RISC-V International Effort overview
Dev Boards program enabling developers with hardware.
Labs Cloud Access - CI enablement; No common interfaces, or common operational standards (yet).
Considerations for next steps are
RISE can propose/sponsor a Program and leverage the existing RVI infrastructure to enable hardware with developers.
Longer Term: How best to enable CI jobs that require RISC-V Hardware. Utilize labs such as OSU-Open Source lab etc.
11 Jan 2024
Anup Patel, Ventana
Barna Ibrahim, Rivos
Brian 'redbeard' Harrington
Daniel Barboza, Ventana
David Weaver, Akeana
Evan Harrison, Linux Foundation
Fei Wu, Intel
Heinrich Schuchardt, Canonical
Jian Zhang, BOSC
Ludovic Henry, Rivos
Ming Yu-Hung, Mediatek
Nathan Egge, Google
Paul Walmsley, SiFive
Ruinland Tsai,
Simon Harvey, Imagination
Sunil L, Ventana
Tim Ouyan, Andes
Tomas Evensen, AMD
Victor Costan, Google
Agenda
Firmware Deep Dive led by Sunil V L
Optimization Guide Status
WG Opens
Future topics: WG Opens/challenges
AIs from last week
Firmware Deep Dive
New projects added.
2H 2023 Project Status
1H 2024 Projects (Draft)
Discussion Topics
FW WG - New projects added
EDK2
EDK2_00_18 - RISC-V QEMU Server Reference Platform - 1H 2024
COREBOOT
COREBOOT_00_01 - coreboot for SiFive Unmatched - 1H 2024?
COREBOOT_00_02 - coreboot for StarFive VisionFive2 - 1H 2024?
COREBOOT_00_03 - LinuxBoot for coreboot on RISC-V - 2H 2024
COREBOOT_00_04 - TianoCore for coreboot on RISC-V - 2H 2024
HPC (?)
HPC_00_01 - Minimal functional SBI definition for HPC (placeholder)
OP-TEE
OPTEE_00_01 - OP-TEE support for RISC-V - 2H 2024
FW WG - 2H 2023 - Projects Status
FW WG - 1H 2024 - Projects (DRAFT)
FW WG - Discussion Topics
Projects discovering spec gaps. Spec freeze may take time.
Large projects are difficult to break down initially and then can spill over into next half.
Projects being done by non-RISE members. How to update wiki page?
RISE specific gitlab/github.
RISC-V Optimization Guide Discussion
Leads Ludovic and Simon
Licencing The various RVI specs are distributed under the CC-BY-SA-4.0 license (Ex. RISC-V ISA Manual ).
Moved to Git invite only within RISE team members.
Time lines:
11/06/2023 - 01/15/2023 Seeking feedback from RISE
01/15/2023 Inform RVI and give access to the document.
Week of Jan 31st, 2024
Open up to RISC-V ecosystem - public, git repo, PDF/website/other
Publish on RISE Social Media
How many people can we add to the repo, question for Michelle
Adjust the timelines until people can get access to gitlab
Is it possible to get accss to the repo before, Michelle has sent information for DCMA to github. Nathan has to look into this information.
When we get more contributors, Ludovic will send out an email and this will kickoff the two weeks date for feedback from RISE.
14 Dec 2023
Attendees:
David Weaver, Akeana
Nathan Egg, Google
Victor Costan, Andes
Barna Ibrahim, Rivos
Tim Ouyang, Andes
Kumar Sankaran, Ventana
Daniel Barboza, Ventana
Brian (Redbeard) Harrington, Red Hat
Terje Bergstrom, NVIDIA
Evan Harrison, The Linux Foundation
Jeff Law, Ventana
Erich Hanke, Canonical
Tomas Evensen, AMD
Ammone Chapackdee, Ventana
Andrew de los reyes (Adlr), Rivos
Ludovic Henry, Rivos
Trilok Soni, ISCAS
Agend
RISC-V Optimization Guide
Valgrind RISC-V Porting discussion follow up
WG Opens
LLVM CI RFP Status
Future topics: WG Opens/challenges
AIs from last week
2FTE Reporting Best Practices
Meeting on January 4th
RISC-V Optimization Guide Discussion
Leads Ludovic and Simone
Added Intended Audience and Vendor Neutrality language
Licencing The various RVI specs are distributed under the CC-BY-SA-4.0 license (Ex. RISC-V ISA Manual ).
What is the specific use case for this? The question from the team is, who is this directed towards?
The team has decided to continue work on this document before it is published.
ACTION:
Decision: Move to Gitlab only with RISE team members
Time lines:
11/06/2023 - 12/15/2023 Seeking feedback from RISE
12/15/2023 Inform RVI and give access to the document. Can we resolve the comments inputs?
We pushing this back to the week of 1/8/24
ACTION: Check in with team after the holidays to see if they are ready to present to RVI
Week of Jan 8th, 2024
Open up to RISC-V ecosystem - public, git repo, PDF/website/other
Publish on RISE Social Media
Debug & Profiling: Valgrind Porting to RISC-V
No RISC-V support on Valgrind
Valgrind ownership?
Valgrind-riscv64; poc-rvv
There needs to be a further discussion on this topic: Barna and Jeff will take this offline to further schedule. To be picked up in Jan.
Working Group Opens
Python Packaging Challenge
TL;DR: building python packages depends on AlmaLinux 8 which doesn’t support RISC-V
The two, non-exclusive, and complementing proposals are:
GCC Auto Vectorization
Autovec in GCC is new and there is a need to push to improve codegen.
Other architectures have honed autovec with years of work and dozens of engineers working. This is one step in evening the field.
Have RISE to explore what it takes and then determine next steps.
07 Dec 2023
Attendees:
David Weaver, Akeana
Nathan Egg, Google
Victor Costan, Andes
Barna Ibrahim, Rivos
Fei Wu, Intel
Tim Ouyang, Andes
Kumar Sankaran, Ventana
Daniel Barboza, Ventana
Brian (Redbeard) Harrington, Red Hat
Terje Bergstrom, NVIDIA
Paul Walmsley, SiFive
Robin Randhawa, SiFive
Michelle Martineau, The Linux Foundation
Jeff Law, Ventana
Anup Patel, Ventana
Erich Hanke, Canonical
Jian Xiong, Alibaba
Ken Unger, Microchip
MyungJoo Ham, Samsung
Ming-Yu Hung, MediaTek
Simon Harvey, Imagination
Tomas Evensen, AMD
Gordan Markus, Canonical
Agenda
System Libraries Deep Dive Q&A (Nathan) (10mins)
Distro Integration Deep Dive
Debug & Profiling Projects 2024 (Ammone/Fei) (10 mins)
RISC-V Optimization Guide Discussion and Inputs (10 mins)
RFP LLVM CI Announcement Draft
AIs from last week
WG Updates/Challenges & Future Topics
System Libraries Deep Dive Q&A (Nathan) (10mins)
Guide for Optimizing RISC-V Assembly
RISC-V Optimization Guide [1]
Document started by Rivos, now with many contributors from other companies
Key idea: Best practices guide with recommendations for assembly optimizations
Target application processors
smartphone, laptop, desktop, server; OoO; rv64gv*
Example code illustrative of how “strip mining” routines should be written
Want everyone’s input. It should be vendor-agnostic.
It’s about optimizing RISC-V software, similar to Intel and ARM guides
Moving to GitLab project so we can take contributions from outside
Text diffs, PDF generation, discoverable, etc.
[1] https://docs.google.com/document/d/1dp6JtXIE3ucCl71_Vr711tX24Kd3JSS2x0Y3urh8k1U
Case Study: Adding RVV 1.0 to dav1d [1]
dav1d is an AV1 decoder
Goals: fastest software decoder, cross-platform, small binary size
Achieves this through a *LOT* of handwritten assembly!
Totals grouped by language (dominant language first):
asm: 208824 (84.23%)
ansic: 38956 (15.71%)
sh: 153 (0.06%)
Essentially a C orchestrator around specialized DSP functions
C ABI conformance matters, assembly functions can do weird things
Good place to test RISC-V Vector assembly routines
Excellent testing framework with performance evaluation built-in
[1] https://code.videolan.org/videolan/dav1d/-/merge_requests/1463
dav1d Correctness Testing
Unit tests:
Driven by checkasm test harness
For each DSP function
Generate random input data with padding
Call C function
Call ASM function <-- more on this later
Compare output data
Check padding not overwritten
For each CPU configuration (e.g., SSE2, SSSE3, SSE4.1, AVX2, AVX-512)
Integration tests:
Decode 772 test videos and compare md5sum
Run previously found configurations from fuzzing bugs
Driven by dav1d command line decoder
Adding RISC-V Vector Specific Functions
Implemented a single DSP function for 2D 4x4 transform
Used HWCAP for feature detection, showed how to integrate code at runtime
Hand-written RVV 1.0 assembly, ~200 instructions
Added C code for new architecture, RISC-V
Some boiler-plate code, but good example for other projects to follow
Hooks into existing testing infrastructure
This is enough to test DSP function for correctness
Updating checkasm for RISC-V C ABI
Want to ensure ASM functions don’t have side effects
Check that callee-saved registers s0 to s11 and fs0 to fs11 are preserved
Check that unallocatable registers gp and tp are preserved
Check that the call frame registers ra and sp are preserved
Prevent dependencies on uninitialized values
Load callee-saved registers s0 to s11 and fs0 to fs11 with random values
Load temporary registers t0 to s6 and ft0 to ft11 with random values
Fill stack space below sp with random values
Add stack canary above last parameter to detect stack smashing
dav1d Performance Testing
Built-in performance measurement tool
Run C code in a loop N times
Run ASM code in a loop N times
Compute speed-up
Driven by checkasm test harness
Allows for easily repeatable performance measurements
Across different RISC-V devices
Over-time to ensure no regressions are introduced
Potentially compare same functions to *other* ISAs
Easy to run, just add --bench to previous checkasm command
Performance benefit is not clear
Still no access to RISC-V Vector 1.0 hardware
Under QEMU, emulated RVV running predictability *slower* than scalar!
Testing Multiple Vector Lengths
In .gitlab-ci.yml
test-debian-riscv64:
extends:
- .debian-amd64-common
- .test-common
needs: [ "build-debian-riscv64" ]
script:
- meson setup build --buildtype release
-Dtestdata_tests=true
-Dlogging=false
-Dtrim_dsp=false
--cross-file package/crossfiles/riscv64-linux.meson
- ninja -C build
- cd build && time meson test -v --timeout-multiplier 2
parallel:
matrix:
- QEMU_CPU: [ "rv64,v=true,vext_spec=v1.0,vlen=128,elen=64",
"rv64,v=true,vext_spec=v1.0,vlen=256,elen=64",
"rv64,v=true,vext_spec=v1.0,vlen=512,elen=64",
"rv64,v=true,vext_spec=v1.0,vlen=1024,elen=64" ]
Compliant RVV 1.0 Hardware Arrives!
Ported Gentoo VM Developer Environment to K230 hardware
Modern developer tooling (clang-17.0.3, gcc-13.2.1, rust-1.73, etc)
Images can be made available to anyone with same hardware
[1] https://github.com/kendryte/k230_sdk/issues/37
Runs 7.4x faster than C on RVV hardware!
Roughly comparable to other architectures
Kendryte K230 “good enough” for testing?
Pros:
Board contains spec compliant RVV 1.0
Shows speed-up compared to C code
Unblocks upstream projects who want numbers
Cons:
May not represent RISC-V devices that ship
at volume
Hard to get access to, currently sold out
Online now! Email ssh key to negge@google.com
RP002 - Optimize H.264 Decoding in FFmpeg
Accelerate H.264 decoding in FFmpeg by adding RISC-V optimizations. Specifically,
Implement specialized RISC-V DSP routines for the identified functions in H.264 DSP functions
Using hardware feature detection so specialized functions are enabled at runtime
Only ratified extensions to RISC-V can be used, for example V + Zb{a,b,c,s}
Implementations should work on vector lengths 128b and greater
Develop a test harness to verify correctness against the pure C implementation
Randomized input verified against C for each specialized DSP function
Update testing infrastructure to run full correctness test harness (2a) in CI
Develop a test harness to measure performance against the pure C implementation
Unit tests to benchmark specialized DSP functions, see https://code.videolan.org/videolan/dav1d/-/merge_requests/1463
Integration tests that measure H.264 decoding speed for set of real-world videos
Produce a performance report based on (3) that compares the pure C to optimized code
DSP function speed-up on RISC-V hardware v C implementation
Table of video sequence decode speeds (in FPS) before and after optimization
Roughly equivalent data on alternate ISAs (for reference only)
Testing shall be done on any conformant RISC-V hardware that contains RVV 1.0 extension, for example:
Kendryte K230 - https://www.canaan.io/product/k230
Software shall be licensed MIT/BSD or similar so it is available to other projects
Low Lights
QEMU executes RVV optimizations *slower* than scalar code
This is a bigger problem than initially expected
Impact on developer productivity: slow execution time, drag on emulated systems
Gets worse the *more* RVV code you have!
Needed to disable RVV in bionic under QEMU as mitigation [1]
"Android boots 2x faster on qemu if you disable V"
RP005 - Add QEMU TCG support for V and Zvk <-- this will help!
ILP32 on RV64
Guo Ren (Alibaba) present slides from Linux Plumbers Conf [1]
Idea is to use 32-bit pointers with 64-bit instructions
Saves ~25% memory (measured in pages) in the Linux Kernel
Requires a separate ABI
Conclusion from SL WG was this is not a RISE priority
High cost to support multiple ISA’s foisted on the OSS and developer ecosystem
Long-term burden on compatibility for minimal gain
[1] https://lpc.events/event/17/contributions/1475/
Distro Integration Deep Dive
Purpose: To provide direction and feedback around the integration of the software components needed to comprise an entire operating system
Near term goals: Alignment of packages needed for new development (HEAD versions of gcc, qemu, et al)
Long term goals: Establish a communication channel between operating system developers and the groups building foundational components incorporated into operating systems.
Inaugural meeting held - Dec 5th
Over 10 attendees
Reinforced the process of working on the mailing list
Permissions on documents is a challenge
e.g. Creating a spreadsheet where users can collaborate requires a lot of manual “Grant access to…” management (if keeping documents within RISE)
The discussion of compressed instructions has continued in the WG, but the TSC has made it clear this is a decided issue.
Debug and Profiling Projects 2024
| User Scenarios | Repo | Status | RISE might contribute |
Open On-Chip Debugger | on-chip programming and debugging support with a layered architecture of JTAG interface and TAP support | Active development under the lead of Tim Newsome | Need inputs | |
DynamoRIO | instrumentation, binary translation etc. | PLCT lab & SemiHalf: DynamoRIO now has initial support for RISC-V | Extensions other than GC | |
Valgrind | instrumentation, debugging etc. | GC is waiting for upstream and RVV is still in prototype mode | Help review and upstream Enable other extensions | |
SimplePerf | native profiling tool for Android |
|
| Atish Patra: There are few moving pieces that need to be straightened out before we can have better support for simpleperf. Until then, we have to rely on SBI PMU & static event encoding for platforms via EVENT_TYPE_TABLE_ENTRY in simple perf |
RISC-V Optimization Guide Discussion and Inputs (10 mins)
30 Nov 2023
Attendees:
Ammone Chapackdee, Rivos
Nathan Egg, Google
Barna Ibrahim, Rivos
Andrei Warkentin, Intel
Ludovic Henry Rivos
Tim Ouyang, Andes
Kumar Sankaran, Ventana
Daniel Barboza, Ventana
David Weaver, Akeana
Brian (Redbeard) Harrington, Red Hat
Terje Bergstrom, NVIDIA
Paul Walmsley, SiFive
Andrew (Adlr), Rivos
Heinrich Schuchrdt, Canonical
Mason Li, Meditek
Trilok Soni,
Wei Wu, ISCAS
Evan Harrison
Agenda
New RISE Slack Channel
RISE GitLab Established
RFP Updates
Distro Integration Meeting Update
System Libraries Deep Dive
WG Updates
AIs from last week
RISE Distro Integration Meetings
Occurring bi-weekly, Tuesdays at 4PM UTC
We will be creating agendas based on Slack messages and e-mail list traffic.
Feel free to join to participate. First meeeting is on 12/5 at 8AM PST.
System Libraries Deep Dive
There are 16 slides that Nathan added, he has put this in a separate slide deck. The slide deck can be found here
16 Nov 2023
Attendees:
Simon Harvey, Imagination
Ammone Chapackdee, Rivos
Nathan Egg, Google
Rick Leatherman, SiFive
Anup Patel, Ventana
Barna Ibrahim, Rivos
Andrei Warkentin, Intel
Ludovic Henry Rivos
Tim Ouyang, Andes
Cyril Jean, Microchip
Jian Xiong, Alibaba
Kumar Sankaran, Ventana
Daniel Barboza, Ventana
David Weaver, Akeana
Robin Randhawa, SiFive
Victor Costan, Google
John Hengeveld, Intel
Brian Harrington, Red Hat
Terje Bergstrom, NVIDIA
Fei Wu, Intel
Brian (Redbeard) Harrington, RedHat
Erich Hanke, AMD
Gordan Markus, Canonical
Ming-Yu Hung, MTK
Agenda
Debug and Profiling Deep Dive
Optimization Guide Next Steps
AIs from last week
Debug and Profiling Deep Dive
Valgrind RVV Support
Petr had the ARM SVE prototype recently and I had the RVV one, now we are discussing a unified solution for both and other vector ISA.
RVV looks more generic than ARM SVE, e.g. VL in RVV is not expressible by SVE primitives.
The major concern on RVV prototype from Petr is that it embeds VL into each type and ops, but we need to find a method to figure out the precise size of these types/ops as Valgrind requires.
GDB Simulator - Add Zc support
Submitted first patch that implements compressed integer instruction set ("c") and semi-hosting for review.
Finished implementation of F and D instructions, and will start upstreaming these patches soon.
AddressSanitizer
The dependency on kernel TASK_UNMAPPED_BASE has been addressed
Upstreaming is working in progress
Challenges
No new projects proposed for 2024-1H
Will contact the individuals in private
Optimization Guide Next Steps
11/06/2023 - 12/15/2023 Seeking feedback from all RISE members
12/15/2023 Inform RVI Optimization coming
xx/xx/2024 Open up to RISC-V ecosystem - public, git repo, PDF/website/other
WG Opens - RVI server platforms team
Andrei Warkentin is the chair of the RVI Server Platform TG
Andrei would like RISE input on recommendations & requirements for this new specification
Andrei believes system software engineers from RISE members, spanning from silicon to OS experts, are perfectly placed to provide input based on their understanding of workload requirements and long-term trends
Open Discussion
06 Nov 2023
Attendees:
Bjorn Topel, Rivos
Jeff Law, Ventana
Simon Harvey, Imagination
Ammone Chapackdee, Rivos
Kumar Sankaran, Ventana
Daniel Barboza, Ventana
David Weaver, Akeana
Paul Walmsley, SiFive
Ludovic Henry, RIvos
Daniel Barboza, Ventana
John Hengeveld, Intel
Brian Harrington, Red Hat
Terje Bergstrom, NVIDIA
Tomas Anderson, AMD
Brian (Redbeard) Harrington, RedHat
Jefro, RedHat
Ken Unger, Microchip
Erich Hanke, AMD
MyungJoo Ham, Samsung
Barna Ibrahim, Rivos
Andrew de los Reyes (Adler), Rivos
Evan Harrison, Linux Foundation
Amit Pabalkar, Nvidia
Stefano Stabellini, AMD
Larry Wikelius, Qualcomm
Aaron Durbin, Rivos
Steve Wanless - RedHat
Agenda
F2F Intros
Language Runtime Deep Dive
RFPs
WG Updates
Open Discussion
2H2023 Goals: Java
Backport RISC-V Support to OpenJDK 17 - Completed
Backport RISC-V Support to OpenJDK 11 - Ongoing
Pull request at openjdk/riscv-port-jdk11u#3
Distribute Java 11, 17, 21 with Adoptium - Ongoing
Lack of hardware, exploring using QEMU for CI machines
Various compiler optimizations - Ongoing
Intrinsics, code lowering: TSO, chacha20, unsigned integers division/modulo/compare, copy sign, …
Porting ecosystem libraries - Ongoing
zstd-jni, brotli4j, netty, commons-crypto
lz4-java: library is unmaintained, forking
2H2023 Goals: Go
Build and Test Go runtime on RISC-V - Ongoing
Support for hardware feature detection - Ongoing
Accelerate crypto/md5 - Ongoing
Integrate RVI Profiles as baseline compilation - Accepted
rv64g, rva20u64, rva22u64, rva23u64
No support for C (for now)
Various compiler optimizations - Ongoing
2H2023 Goals: Python
Porting ecosystem libraries - Ongoing
PyTorch, scikit-learn
Native dependencies: SLEEF, oneDAL, TBB, …
RISE Optimization Manual
Discussed at last System Libraries sync
Seeking feedback from all members
Target hardware: smartphone, laptop, desktop, server; OoO; rv64gv*
Long-term: public, git repo, PDF/website/other
It’s collaborative, need your feedback!
WG Updates
Open Discussion
Robin Randhawa - Kumar has requested that Robin is on next week's TSC call.
02 Nov 2023
Attendees:
Bjorn Topel, Rivos
Ming-Yu Hung, MediaTek
Jian Xiong, Alibaba
Jeff Law, Ventana
Simon Harvey, Imagination
Ammone Chapackdee, Rivos
Kumar Sankaran, Ventana
Daniel Barboza, Ventana
David Weaver, Akeana
Paul Walmsley, SiFive
Ludovic Henry, RIvos
Daniel Barboza,
Fei Wu, Intel
John Hengeveld, Intel
Brian Harrington, Red Hat
Sunil L, Ventana Micro
Terje Bergstrom, NVIDIA
Michelle Martineau, Linux Foundation
Nathan Egge, Google
Agenda
RISE and LF PMO Collaboration
Compilers and Toolchains Deep Dive
Developer Infrastructure Deep Dive
Go Runtime RFP
TSC F2F Agenda
WG Updates
AIs from last week
Compilers and Toolchains Deep Dive
GCC – feature freeze for gcc-14 release in ~2 weeks
Last feature (strided loads/stores) likely landing this week
Testsuite trends are a slight concern, but expectation is we know why the results differ between Embecosm and everyone else
Avoid losing track of extension status for incoming arguments has landed
Avoid creating redundant extensions by querying that extension status when generating comparisons should be landing this week
Hoping to get extension DCE submitted next week, likely last feature in this space to make gcc-14 feature freeze deadline
Generic new pass, so need to test and fix bugs across many targets
Implementation cleanup
Remaining items will be split off into a 1H2024 project
Autovectorization
Redundant extension elimination – umbrella for many little subprojects
Address rewriting – another umbrella for many subprojects
New target independent pass to simplify complex address computation sequences
Being a target independent pass meant much higher bar for integration
Avoids pushing invariant address computations back into loops
Again, target independent fix, high bar for integration
Manolis’s patch (VRULL) has finally been integrated
Register allocation issues have been fixed, reverted and fixed again
One remaining item (reassociate symbolic address computations) being debugged, still hoping it’ll make it in time for gcc-14 feature freeze
If-conversion
Eswin has updated their patches, much cleaner now
Both eswin and VRULL/Ventana variants break x86
So more debugging & analysis needed. Reasonable chance this will make it in tie for the deadline as well
Large code model – first drop from Andestech, generally in good shape. Reasonable chance this will make gcc-14 feature freeze
Target attribute work mostly done, minor API changes in the works
Developer Infrastructure Deep Dive
Introduction
RISE Build Farm
Linux Kernel CI Status
GCC CI Status
Current Status
Budget Review
What We’ve Learned
Next Steps
RISE Board Farm
RISE Developer Tools
Charter
The Developer Infrastructure WG focuses on software and services to support open-source developers - both RISE members and the broader open-source community.
Current Projects
RISE Build Farm
In Planning
RISE Board Farm
RISE Developer Tooling
Objective
Cross-build and test (in simulation) RISC-V ports of key open source software
Running in Google Cloud
Google has graciously donated USD 250,000 of cloud computing credits
Status
Linux kernel pre-commit CI: up and running
gcc CI: getting started
Exiting the initial experimental phase
Moving into production
Two build farm projects in progress
Builds the RISC-V Linux kernel https://github.com/linux-riscv/
“Is this patch Good Enough?”
Gap: Many post-merge CIs, but no pre-merge
Patchwork scrapes the mailing lists
Daemon synchronizes Patchwork <=> Github
Build/tests on RISE dedicated runners
Feedback to maintainers, reviewers, and contributors
All in the open – community involvement
Sponsors: Björn Töpel (Rivos) and Conor Dooley (Microchip)
Next Steps
Improve build time/farm utilization
Today: ~20m per patch
Expand tests
More configurations
Boot tests
Goal: Release test pre-commit
Maintainers: “This patch will not break upstream”
Boot on Real Hardware
Deep-dive at Linux Plumbers Conference, RISC-V MC, Nov 13
GCC CI Status
RISC-V GCC https://github.com/riscv-collab/riscv-gnu-toolchain/
Currently running post-merge CI on non-RISE systems; missing dedicated runners
Pre-merge CI under development
Move to dedicated RISE build farm systems is in progress
Sponsors: Patrick O’Neill & Edwin Lu (Rivos)
Lessons Learned
Monitoring of system resource usage is key to using resources efficiently
Regular management of projects is key to ensuring that they are making initial progress
Broadening the administration base is key to ensuring timely action
Build Farm Next Steps
Moving from experimental to production phase
Policies & procedures
Documentation
Broader administration base
Spot instances
Control machine set up
Bringing on more RISE WG build projects
Driven by RISE member sponsors
Expanding existing Linux and GCC build projects
Investigating third-party build and test projects
Investigating external IT
Future RISE Board Farm integration
26 Oct 2023
Attendees:
Ammone Chapackdee, Rivos
Kumar Sankaran, Ventana
Jian Zhang, BOSC
Daniel Barboza, Ventana
David Weaver, Akeana
Andrei Warkentin, Intel
Paul Walmsley, SiFive
Tim Ouyang, Andes
Brian Harrington,
Ken Unger
Terje Bergstrom
Evan Harrison, Linux Foundation
Amit Pabalkar
Andrew de los Reyes, (Adler) Rivos
Thomas Evensen, AMD
Nathan Egge, Google
Agenda
New Member! AMD 🎉
Simulator Emulator Deep Dive
RISE TSC Slide for RVI Summit
New Projects
WG Updates
AIs from last week
Simulator Emulator Deep Dive
Agenda
2023-2H
Updates on projects
2024-1H
Overall status
2023-2H
Updates on projects
QEMU code freeze for new features: Nov 7th 2023
SE_01_002 - QEMU Virtual IRQ and IRQ filtering support
Moved from “Under Review” to “Queued”
On track for QEMU 8.2 (Dec 2023)
SE_01_014 - QEMU query-cpu-model-expansion API
Moved from “Under Review” to “Queued”
On track for QEMU 8.2 (Dec 2023)
SE_01_011 - QEMU RVA22U64 profile support
Moved from “Not Started” to “Under Review”
On track for QEMU 8.2 (Dec 2023)
2023-2H: Updates on projects
Projects moved to 2024 (not enough time to meet project freeze)
SE_01_003 - QEMU WorldGuard support support
Status: Not started
Moved to 1H 2024
SE_01_014 - QEMU IOPMP support
Status: Not started
Moved to 1H 2024
SE_01_015 - QEMU RISC-V IOMMU support (new)
Status: Under review
First version sent for review in July 2023. No new versions sent
2024-1H: Updates on projects
New projects planned for 2024-1H
SE_01_003 - QEMU WorldGuard support support
SE_01_014 - QEMU IOPMP support
SE_01_015 - QEMU RISC-V IOMMU support
From 2023 priorities
SE_01_016 - QEMU linux-user hwprobe kernel parity (new)
Long term project without deadline
Valid as long as the kernel hwprobe syscall is being updated
2024-1H: Updates on projects
List including projects coming from 2023
RVV performance enhancements
Vector TCG Host-Native implementation
Cleanup: remove prematurely merged non-standards
SLX32 support
QEMU RISC-V TCG target support
Vendor extension framework support
QEMU WorldGuard support*
QEMU IOPMP support*
QEMU RISC-V IOMMU support*
QEMU linux-user hwprobe kernel parity*
Wiki pages are still pending for most projects
Projects with (*) has pages
19 Oct 2023
Attendees:
Michelle Martineau, The Linux Foundation
Heinrich Schuchardt, Canonical
Jeff Law,
Ammone Chapackdee, Rivos
Kumar Sankaran, Ventana
Simon Wang, Andes
Nathan Egge, Google
Jian Zhang, BOSC
Randall Bosetti, Google
Ming-Yu Hung, Mediatek
Daniel Barboza, Ventana
Anup Patel, Ventana
David Weaver, Akeana
Andrei Warkentin, Intel
Simon Harvey,
Wu Fei, Intel
Gordan Markus, Canonical
Paul Walmsley, SiFive
Tim Ouyang, Andes
Agenda
Welcome BOSC!
RISE RVI Summit F2F
RISE 2FTE Reporting
RISE Social Media Integration
Kernel and Virtualization Deep Dive
WG Updates
AIs from last week
Kernel and Virtualization Deep Dive
Link to slides
https://docs.google.com/presentation/d/1a2Ph1nKlet2x2vCpDPks7PA2v61cn0EuUIzJyGByqLQ/edit?usp=sharing
Agenda
RVA23 profile extensions
Updates on discovery
Overall status
2023-2H
Updates on projects
Status on priorities
Overall status
2024-1H
Overall status
RVA23 profile extensions: Updates on discovery
List of RVA23 profile extensions on wiki in-sync with latest spec
HWPROBE additions (in past 2 months)
No change
In-flight patch series from Rivos adding 30+ extensions to HWPROBE
KVM ONE_REG additions (in past 2 months)
Zicsr, Zicntr, Zihpm, Zba, Zbs, Zfencei
Svbare, Sv39, Sv48, Sv57
RVA23 profile extensions: Overall status
Total 72 extensions (17-10-2023, wiki)
Kernel HWPROBE (17-10-2023)
NA - 24 (33.33%)
TBD - 38 (52.78%)
COMPLETED - 10 (13.89%)
KVM ONE_REG (17-10-2023)
NA - 19 (26.39%)
TBD - 27 (37.5%)
COMPLETED - 26 (36.11%)
2023-2H: Updates on projects
LK_03_002 - KVMTOOL AIA in-kernel irqchip
Development: Completed, Upstreaming: Completed
LK_01_032 - Vector extension discovery using HWPROBE
Development: NotNeeded, Upstreaming: NotNeeded
User-space can discover supported vector length from CSR WARL fields
LK_03_004 - KVMTOOL VFIO + irq-bypass support
Development: NotNeeded, Upstreaming: NotNeeded
RISC-V specific changes in KVMTOOL not required for VFIO + irq-bypass
LK_03_010 - QEMU-KVM VFIO + irq-bypass support
Development: NotNeeded, Upstreaming: NotNeeded
RISC-V specific changes in QEMU-KVM not required for VFIO + irq-bypass
2023-2H: Status of priorities
Kernel
NO ACTIVITY from RISE member
AIA DT driver upstreaming on-track but kernel irqchip maintainer changes
AIA ACPI support upstreaming blocked on DT driver
Being done along with AIA ACPI support
NO ACTIVITY from RISE member
Only includes HWPROBE support
Still blocked on Sdtrig spec but the spec is making good progress
Zba, Zbb, and Zbs done so only Zbc remains
Memory Hot(Un)plug
KASAN support
Basic ACPI support
AIA support (DT, ACPI)
PLIC support (ACPI)
IOMMU (DT)
Vector extension support
Vector crypto extension support
Native/hosted debug support (aka HW breakpoints)
Bitmanip extension discovery using HWPROBE
KVM
Patches on LKML blocked on AIA DT driver upstreaming
Work being done in a fork since it depends on AIA DT driver and IOMMU upstreaming
Waiting for corresponding HWPROBE patches to be upstreamed
Still blocked on Sdtrig spec but the spec is making good progress
Zba, Zbb, and Zbs done so only Zbc remains
Vector extension virtualization
AIA irqchip (incl. kvmtool and qemu support)
AIA IMSIC guest file support
AIA irq-bypass (aka Device MSI virtualization, incl. kvmtool and qemu)
KVM vector crypto extension virtualization (incl. kvmtool and qemu)
KVM Native/hosted debug virtualization
KVM bitmanip extension virtualization (incl. kvmtool and qemu support)
2023-2H: Overall status
Total 27 projects (17-10-2023, wiki)
Development (17-10-2023)
TBD - 4 (14.8%)
KVMTOOL and QEMU-KVM changes waiting for kernel patches
PROTOTYPE - 2 (7.4%)
Native/hosted debug blocked on specifications
ONGOING - 1 (3.7%)
COMPLETED / NOTNEEDED - 20 (74.1%)
Upstreaming (17-10-2023)
TBD - 8 (29.6%)
ONGOING - 8 (29.6%)
COMPLETED / NOTNEEDED - 11 (40.74%)
2024-1H: Overall status
Total 58 projects (17-10-2023, wiki)
Unassigned - 14 (24.14%)
Development (17-10-2023)
TBD - 25 (43.1%)
ONGOING - 6 (10.35%)
COMPLETED - 27 (46.55%)
Upstreaming (17-10-2023)
TBD - 39 (67.24%)
ONGOING - 15 (25.86%)
COMPLETED - 4 (6.9%)
05 Oct 2023
Attendees:
Brian Harrington, Red Hat
Ammone Chapackdee, Rivos
Kumar Sankaran, Ventana
Randall Bosetti, Google
Nathan Egge, Google
Daniel Barboza, Ventana
Felix Freiman, MediaTek
Sunil V L, Ventana
Ludovic Henry, Rivos
Simon Harvey, ImgTec
Brian Harrington, RedHat
Anup Patel, Intel
David Weaver, Akeana
Agenda
Firmware Deep Dive
WG Challenges - Open Discussion
AIs/Opens
Firmware Deep Dive
2023-2H - Firmware Priorities
Completed projects
EDK2_00_07 - CLANG support
EDK2_00_08 - Basic MMU support
New projects created / added
EDK2_00_17 - Extension Discovery - UEFI PI spec change being proposed.
UBOOT_00_01 - PCIe Passthru - Upstream patch under review.
SBI_00_01 - Sparse HARTID Support in OpenSBI - Upstream patches under review.
Development Completed
EDK2_00_16 - Svpbmt support - Development Complete, waiting for EDK2_00_17.
EDK2_00_09 - CMO support - Development Complete, waiting for EDK2_00_17.
EDK2_00_06 - SSTC support - Development Complete, waiting for EDK2_00_17.
EDK2_00_01 - MultiArchUefiPkg - Validation completed by two semiconductor companies.
Long-term Projects
EDK2_00_02 - StandaloneMmPkg - RPMI spec updates proposed, initial evaluations done, Patches to unify ARM and RISC-V code.
TFM_00_01 - Secure Bootloader
2024-1H - Firmware Priorities
Need to create wiki pages for individual projects.
Firmware-first RAS error handling
Being discussed / specification changes proposed in RVI forums.
PoC in progress.
Universal Payload (UPL) specification impacts on various FW
Ecosystem Enablement
EDK2 support being added on vendor hardware platforms.
Sophgo SG2042 and MILK-V Pioneer.
StarFive VisionFive 2.
Intel and Ventana helping to upstream the support.
28 Sep 2023
Attendees:
Andrei Warkentin, Intel
Brian Harrington, Red Hat
Ammone Chapackdee, Rivos
Evan Harrison, The Linux Foundation
Paul Walmsley, SiFive
Kumar Sankaran, Ventana
Randall Bosetti, Google
Tim Ouyang, Andes
Nathan Egge, Google
Daniel Barboza, Ventana
Felix Freiman, MediaTek
Ludovic Henry, Rivos
Simon Harvey, ImgTec
Fei Wu, Intel
Anup Patel, Intel
David Weaver, Akeana
Andrew De Los Reyes
Jeff Law
Kris Murphy
Agenda
TSC Chair Update
System Libraries Deep Dive
libjpeg turbo Proposal
WG Updates
Board Meeting Recap
AIs from last week
Future Topics
FW Deep Dive (next week)
RFP Project Review
TSC Update Preso for RVI Summit
System Libraries Deep Dive
RVV optimization best practices under QEMU
may be possible with custom plug-ins
After testing, found its not possible to reliably measure cpu cycles with stock QEMU
RISC-V developer VM can be used effectively for CI / CD correctness testing
Multimedia optimization proposal approved by RISE GB
Initial focus on optimizing H.264 decode (ffh264dec and libswscale)
Met with FFmpeg developers last week and there is strong interest in working on RISC-V
More clarity about how to target RISC-V optimization within the broader SW ecosystem
Agreed to target out-of-order AP cores only (in-order cores are out of scope for tuning)
RVV 1.0 specification requires 128-bit vector length as a minimum for AP, safe to assume this when designing algorithms
Closer review of future projects shows custom optimizations not necessary, just verification
libopus takes advantage of auto-vectorizer to handle many functions
Similar code in libspeexdsp for inner-product functions
libjpeg turbo Proposal - review
ibjpeg turbo Proposal
Open discussion on concerns
Email shared with TSC chairs - details from libjpeg turbo
21 Sep 2023
Attendees:
Andrei Warkentin, Intel
Brian Harrington, Red Hat
Ammone Chapackdee, Rivos
Evan Harrison, The Linux Foundation
Paul Walmsley, SiFive
Kumar Sankaran, Ventana
Michelle Martineau, Linux Foundation
Randall Bosetti, Google
Tim Ouyang, Andes
Nathan Egge, Google
Daniel Barboza, Ventana
Felix Freiman, MediaTek
Ludovic Henry, Rivos
Simon Harvey, ImgTec
Fei Wu, Intel
Anup Patel, Intel
David Weaver, Akeana
Agenda
Debug and Profiling Deep Dive
Language Runtimes Deep Dive
WG Updates
AIs from last week
Debug and Profiling Deep Dive
Activities
Had WG meeting on Sep 12
Added DP_01_003 for 2023-2H
Projects Status Updates
All RVV instructions except floating-point and fixed-point have been enabled
Implemented simulation of compressed integer instructions and testing is in progress
Code is ready, but depends on kernel to define TASK_UNMAPPED_BASE for 32bit RISC-V
I saw it’s upstreamed, need to confirm with the owner
Got the current status of these tools
DP_00_001 - Valgrind vector support
DP_01_003 - GDB Simulator - Add Zc support
DP_05_001 - Address Sanitizer (for 32bit)
DP_04_001 - Userspace Cycle/Instret access
Evaluate GDB/LLDB/OpenOCD
2024-1H Plan
Simpleperf, Valgrind, Perf CTR, OpenOCD - Not finalized
Challenges
More projects
Language Runtimes Deep Dive
Scope (refresher)
The Languages identified to focus by Rise Members - Java (OpenJDK), Go, Python, Android Runtime, .NET Runtime
Build and test on RISC-V Hardware
Accelerate the runtimes
Add support to most common libraries
2H2023 Goals:
Java - Backport RISC-V Support to OpenJDK 17 - Completed
Java - Backport RISC-V Support to OpenJDK 11 - Ongoing
Pull request at openjdk/riscv-port-jdk11u#3
Java - Distribute Java 11, 17, 21 with Adoptium - Ongoing
Lack of hardware, exploring using QEMU for CI machines
Java - Various compiler optimizations - Ongoing
Go - Build and Test Go runtime on RISC-V - Ongoing
Go - Support for hardware feature detection - Ongoing
Go - Accelerate crypto/md5 - Ongoing
Go - Integrate RVI Profiles as baseline compilation - On hold
Proposal about RVI profiles
Go - Various compiler optimizations - Ongoing
Challenges
Access to machines for CI (boards and/or QEMU+x86)
User-space emulation too “weird” for some applications (application says riscv, kernel and /proc says x86)
Slower per-core, but can do 64+ cores. Great for parallelizable testing, terrible for single-core tasks (ex: linking)
Still faster than fastest RISC-V board (ex: VisionFive 2), also supports V and other extensions
Exploring using QEMU+x86 for lack of performant RISC-V boards
Need to use QEMU System Emulation
Uncertainty about RVI profiles:
To C or not to C
Most problematic in Go - AOT compilation
We don’t care that anyone adds support for it, but it’s hard to say “it can’t be part of the baseline profile”\
Low engagement in WG
Plenty of actions happening in upstream communities
But, little to no engagement in RISE WG mailing lists and meetings
Discussions
Involved in RVI J-Extension WG
Bringing JIT expertise for spec definition
Trying to figure out usability and usefulness for Concurrent GCs
Zjid - I/D Cache Coherency
Zjpm - Pointer Masking / Memory Tagging
Interest in nodeJS.
Employee from RedHat
14 Sep 2023
Attendees:
Andrei Warkentin, Intel
Brian Harrington, Red Hat
Andrew De Los Reyes, Rivos
Ammone Chapackdee, Rivos
Evan Harrison, The Linux Foundation
Paul Walmsley, SiFive
Kumar Sankaran, Ventana
Michelle Martineau, Linux Foundation
Randall Bosetti, Google
Tim Ouyang, Andes
Nathan Egge, Google
Kris Murphy, Red Hat
Daniel Barboza, Ventana
Trilok Soni, Qualcomm
Agenda
RVI Nov Summit: RISE F2F
RISE TSC Changes
WG Updates/Challenges
RFP Update
AIs from last week
RVI Nov Summit: RISE F2F
Opportunity for team building at RVI November Summit
Monday November 6th
2:00pm-3:00pm TSC
Location NVIDIA
RISE TSC meeting:
Then join RISC-V Member Day and Reception at 5:00pm
Register to attend no later than 10/15
RISE TSC Changes
Andrie Warkentin will be stepping down from the TSC Chair position and a nomination period will open later today with Lars Bergstrom acting as Election official.
07 Sep 2023
Attendees:
Andrei Warkentin, Intel
Brian Harrington, Red Hat
Ludovic Henry, Rivos
Andrew De Los Reyes, Rivos
Ammone Chapackdee, Rivos
Simon Harvey, Imagination
Fei Wu, Intel
Felix Freimann, MediaTek
Anup Patel, Ventana
Evan Harrison, The Linux Foundation
Jian Xiong, T-Head
Jeff Law, Ventana
Paul Walmsley, SiFive
Kumar Sankaran, Ventana
Michelle Martineau, Linux Foundation
Randall Bosetti, Google
Tim Ouyang, Andes
Agenda
Upcoming Events
WG Updates
AIs from last week
Upcoming Events
Roll call for RISE attendees/representation and discussion around activities (if needed)
UEFI FALL 2023 DEVELOPERS CONFERENCE & PLUGFEST (Oct 9-12) - Hillsboro, OR: couple firmware projects, RISE plug.
LF Member Summit (Oct 24-26) - Monterey CA
RVI NA Summit (Nov 7-8) - Santa Clara CA
TSC F2F meeting - Nov 6, location TBD
RISE Lounge - more details to come
LPC - Linux Plumbers Conf (Nov 13-15) - Richmond VA
RISC-V MC - plug for RISE; GCP Instance running Kernel CI
Any other events to consider?
WG Updates
RISE Position on RVI Profile Gaps
The RISC-V Software Ecosystem (RISE) project focuses on commercial software readiness for RISC-V. Member companies include both OS and hardware vendors spanning the mobile, consumer electronics, datacenter, and automotive markets. RISE is not responsible for specifying the RISC-V ISA but does have a vested interest in ensuring the ISA has features that enable commercial software markets. Towards that end, we have developed the following position statement on RVI Application Profiles (e.g., RVA22).
31 Aug 2023
Attendees:
Andrei Warkentin, Intel
Ludovic Henry, Rivos
Andrew De Los Reyes, Rivos
Ammone Chapackdee, Rivos
Chris Smith, Imagination
Kris Murphy, Red Hat
Fei Wu, Intel
Daniel Barboza, Ventana
Felix Freimann, MediaTek
Anup Patel, Ventana
Raul Xiong, T-Head
Brian Harrington, RedHat
Jeff Law, Ventana
Kumar Sankaran, Rivos
Michelle Martineau, Linux Foundation
Nathan Egge, Google
Randall Bosetti, Google
Tim Ouyang, Andes
Agenda
Compilers and Toolchains Deep Dive (Jeff Law)
RFP Process (Ammone)
WG Challenges
AIs from last week (go over assorted notes from last week)
Compilers and Toolchains Deep Dive (Jeff Law)
Status
Tracking ongoing projects in GCC and LLVM upstreams
Primarily 2023 work, but a bit of 2024 stuff
Weekly updates to the wiki
LLVM 17 (Fall 2023) and GCC 14 (Spring 2024) targets for 2023 work
Coordination primarily through existing upstream meetings rather than RISE specific meetings
Haven’t started standing up POC CI/CD for GCC and LLVM using RISE resources
Should have been trivial, but I’ve just been crazy busy last 2 weeks
Scope
Primary focus on GCC and LLVM projects
Code optimization
Solve various problems for downstream consumers (distros)
CI/CD
Binary distribution of cross toolchains to other developers
Occasionally covering binutils or glibc when there’s clear overlap
Fairly natural as many of the developers are active in closely related projects
Expecting to touch on other areas such as debugges, profilers, system libraries, distros, etc on an as-needed basis
Priorities
Code Optimization
Clear need to support/improve autovectorization
Other extensions as they land (Zfa, Zicond, etc)
Other targeted improvements based on benchmark analysis
Address compatibility issues to ease distro consumption issues
Fix atomics to be compatible across toolchains, including inlining subword atomics
Other ABI concerns WRT gp relaxation, vector, shadow stacks, large code model, etc – closing loops with RVI PSABI WG
Support other groups
Backtracing w/o dwarf unwind tables for firmware and profilers
System libraries via ifuncs, function multiversioning, etc
Binary distribution of cross compilation toolchains
Challenges
Hardware access
Bootstrapping & testing GCC takes ~28 hours, without testing the various extensions – QEMU user mode emulation, 40c systems, “primary” GCC targets on modern hardware – 1 hr
Benchmarking is virtually impossible outside a very small group of developers due to lack of hardware
Compiler community involvement
Much of the GCC development coordination effort falling on my shoulders
I’m struggling with visibility into upstream LLVM work
24 Aug 2023
Attendees:
Andrei Warkentin, Intel
Andrew De Los Reyes, Rivos
Kris Murphy, Redhat
Trilok Soni, Qualcomm
Ammone Chapackdee, Rivos
Brian Harrington, RedHat
Amit Pabalkar, NVIDIA
Daniel Barboza, Ventana
Jeff Law, Ventana
Jenn Bonner, Linux Foundation
Kumar Sankaran, Rivos
Michelle Martineau, Linux Foundation
Nathan Egge, Google
Randall Bosetti, Google
Simon Harvey, Andes
Tim Ouyang, Andes
Agenda
Assorted Notes (Andrei)
Distro and Integration Deep Dive (Brian Harrington)
WG Challenges?
AIs from last week
Distro and Integration Deep Dive (Brian Harrington)
Status
Assembling an entire distro exists as a race condition:
Some truly are waiting for systems with vector processing, et al
Most are folks used to building things on the OS, not the OS itself. This leads to confusion because it straddles vendor and upstream work.
Some developers are waiting to have “hardware available”.1
Other developers are see the large numbers of compiled packages and assume work nears completion. (“90% of packages successfully compile)
Yet others are (rightfully) noting that the stability and performance of hardware is “not ready” or “too slow”, but this is a matter of perception.
The work proceeding at the fastest pace is that driven by single members with a clear vision and need (e.g. Fedora which is currently receiving direct contributions from RISE members: Rivos & Red Hat).
Scope
Currently the scope of projects is still mostly focused at a single member level.
There are exceptions, like Nathan Egge from Google proposing a straw man Gentoo build for the community.
Non-member updates continue to be monitored by Redbeard.
Debian is at the early stages of development (they’re discovering odd issues in fakeroot and other packages which are causing systemic build issues).
Priorities
Member companies proceed independently with the hope of later coordination
Samsung has been reporting regular progress on Tizen
Red Hat continues to see interest around automotive use cases, but this will require a multi-year timeline around achieving functional safety certification (i.e. ISO 26262 certification) for anything related to RISC-V
Challenges and Needs
Ambiguity about working group participation has lead to sporadic participation from community members. We languish with the awkwardness of trying to coordinate communities from behind closed doors.
There seems to be trepidation about “not doing the right thing” or “stepping out of [a members] lane”. This is a missed opportunity for identifying the organization’s blind spots.
More hours in the day to complete what needs to be done. 😁
10 Aug 2023
Attendees:
Andrew De Los Reyes, Rivos
Andrei Warkentin, Intel
Mason Li, Mediatek
Jeff Law, Ventana
Jenn Bonner, Linux Foundation
Michelle Martineau, Linux Foundation
Daniel Barboza, Ventana
Paul Walmsley, SFive
Tim Ouyang, Andes
Simon Harvey (Imagination)
Kumar Sankaran, Rivos
Ammone Chapackdee, Rivos
Simulation and Emulation WG Deep dive (Daniel Barboza)
Agenda
Status
Scope
Priorities
Challenges and needs
Status
The Working Group is committed solely to QEMU at this moment
QEMU supports RISC-V for 6 years, but advanced features, new extension/feature support and ecosystem enablement need focused efforts.
This Working Group focus on:
Collaboration to avoid duplication of work
Ecosystem enablement
Add support for new extensions and features
Bridge gap between QEMU RISC-V support and other mature architectures like x86 and ARM64
WG meets first Wednesday of every month at 7AM PT.
Scope
QEMU virtualization support (KVM and Emulated)
Full system emulation mode
KVM support: shared goal with Kernel and Virtualization WG
Emulation support: required to support virtualization development when hardware is not readily available
QEMU linux-user support
"Docker mode": binaries are run in the target environment (architecture/chip/board)
Use by Toolchain/general application development
Priorities for 2H23 (Q3 & Q4 2023)
Based on deduplicated projects with highest priorities, WG selected:
QEMU linux-user riscv_hwprobe syscall support
Already accepted. Will be available in QEMU 8.1 (to be released this month)
QEMU Virtual IRQ and IRQ filtering support
Patches sent for review. En route for QEMU 8.2 (Q4 2023)
QEMU PCIe passthru on x86 hosts
Patches sent for review. Design discussions happening
QEMU Vector Crypto Support
Patches sent for review. En route for QEMU 8.2 (Q4 2023)
QEMU ACPI support for AIA
Patches sent for review. En route for QEMU 8.2 (Q4 2023)
QEMU ACPI support for PLIC
Upstreaming not started
Requires ACPU support for AIA to be accepted first
QEMU RVA22U64/S64 profile support
Upstreaming not started
QEMU IOPMP support
Upstreaming not started
QEMU WorldGuard support
Upstreaming not started
Other projects worked on by RISE members tracked in the wiki and spreadsheet
Priorities for 1H24 (Q1 & Q2 2024)
QEMU
RVV performance enhancements
Vector TCG Host-Native implementation
Cleanup: remove prematurely merged non-standards
SLX32 support
Vendor extension framework support
Challenges and Needs
Promote more participation in the community mailing lists
More tests and reviews
Avoid long delays in posting follow-up versions
Include more simulators and emulators
2 Spike projects in the spreadsheet without owners/ETA
Other open source projects (e.g. gem5) that might be of RISE interest
AIs from last week
scaling back weekly WG updates (but everyone can put a problem they are having on the agenda at any time, not having to wait for a WG deep dive)
Discussion/Questions:
Jeff Law and Andrew De Los Reyes prefer not to have weekly updates in favor of deeper conversation on the deep dives. The group agreed.
Update on Build Farms
Cloud environments are being established through LF, Google credits are pending.
Paul Walmsley provided a timeline for the Build Farm Project
Cloud instance is where we are stuck.
Compiler/Toolchain Working Group
LLVM project more release than development focused (as expected)
PSABI proposal to provide unified attribute across LLVM/GCC to control architecture specifications for function multiversioning and optimization
GCC auto vectorization – improving code when we know loop trip counts and for loops with control flow that maps well into masked vector ops
GCC address rewriting to eliminate unnecessary arithmetic
WIll spin out at least two more small efforts to optimize away unnecessary arithmetic involving stack addresses
More generally useful of the two major bodies of work (targets 3-4 workloads within specint)
Work targeting leela integrated as well as work fixing deficiency in copy propagation found while evaluating leela work
3rd version of new fold-mem-offsets pass posted. 4th will be needed
zicond/if-conversion – improve performance by using branchless sequences for various idioms (conditional moves, conditional arithmetic/logicals, etc)
Costing model still goofy – may spin subproject for this
Unification of target patterns from 4 submissions integrated
Diving into 3 implementations of enhancements to generic if-conversion
03 Aug 2023
Attendees:
Daniel Barboza (Ventana)
Paul Walmsley, (SiFive)
Randall Bosetti, (Google)
Ludovic Henry (Rivos)
Felix Feeman (Mediatek)
Ammone Chapackdee (Rivos)
Barna Ibrahim, (Rivos)
Nathan Egge, (Google)
Kumar Sankaran, (Ventana)
Jenn Bonner (The Linux Foundation)
Sunil V L (Ventana)
Andrei Warkentin (Intel)
Anup Patel (Ventana)
Drew Fustini (BayLibre)
Michael Turquette (BayLibre)
Simon Harvey (Imagination)
Tim Ouyang (Andes)
Fei Wu (Intel)
Agenda
Firmware Deep Dive (Sunil VL) (Status/Scope/Priorities/Gap Analysis/Challenges)https://docs.google.com/presentation/d/1tcfjcTys7SoYE_sDqPwwe1ozUm36Ixy8-dSLCvy_4Zk/edit?usp=sharing
Firmware WG Status
Basic Open Source Firmware Solutions for RISC-V already present. However, advanced features, new extension/feature support and ecosystem enablement need focussed efforts.
The RISE effort will focus on
Collaboration to avoid duplication of work
Ecosystem enablement
Add support for new extensions and features using virtual platforms.
Make it easy for new platform vendors to support the firmware solution.
Bring gaps in standards/spec to RVI TG or appropriate Industry standard body.
Focus: Accelerating RISC-V adoption by upstream developers
Firmware WG meets first Wednesday of every month at 8AM PT.
Firmware WG Scope
Different Open Source Firmware projects are available. Current RISE focus is on below projects.
EDK2 (a.k.a Tianocore)
Reference implementation of complete UEFI specification and UEFI PI specification.
Supports all the features like ACPI required by the Server class platforms.
Supports Qemu virtual platform.
OpenSBI
Reference implementation of RISC-V SBI specification.
Dominant M-mode firmware solution today.
TF-M equivalent for RISC-V
Provide a secure boot implementation for RISC-V microcontrollers and other embedded processors, typically running in M-mode or M+U-modes.
Priorities for 2H23 (Q3 & Q4 2023)
Based on deduplicated projects with highest priorities, WG selected:
Support basic MMU (Sv57 etc) first and then Svpbmt
It is a dependency for MultiArchUefiPkg
Long term project to provide secure EFI variable access, secure boot etc.
Depends on APTEE/ COVE specs.
Support CBO extensions (Zicbo*) in EDK2 for cache management
SSTC Support in EDK2
CLANG support in EDK2
Big ask from senior EDK2 maintainers maintaining common modules across architectures.
CLANG doesn’t need to be different to cross build EDK2 for different architectures.
Upstreamed this week.
Provides a secure boot implementation for RISC-V microcontrollers and other embedded processors.
MultiArchUefiPkg
Ability to run non-native UEFI drivers.
Required for OptionROM.
MMU Support in EDK2
StandaloneMMPkg in EDK2
CBO extension support in EDK2
Support SSTC extension for timer implementation in EDK2.
TF-M secure bootloader for RISC-V
Other projects worked on by RISE members tracked in the wiki and spreadsheet
Andrei Warkentin (Intel): minor clarification - MultiArchUefiPkg enables existing and future off the shelf discrete PCIe devices to "just work" in the UEFI boot/preboot envo on RISCV PCs and servers.
Priorities for 1H24 (Q1 & Q2 2024)
EDK2
Backtrace support
UefiPayloadPkg
StandaloneMMPkg
DynamicTablesPkg
EasyDriversDxe
FdtBusDxe
CompilerIntrinsic Libs
Build Size reduction
Firmware First RAS handling
OpenSBI
RAS/SSE
Sparse HartID support
Native/hosted debug support
TF-M Run time features
Gap Analysis
StandaloneMMPkg project has identified few dependencies on COVE spec changes and implementation
Discussion with COVE/APTEE leads in progress
Coreboot / linuxboot related project proposals from member companies.
clarification - FdtBusDxe allows EDK2 to make use of device trees?
fdtbusdxe allows platform drivers to follow the uefi driver binding model instead of just hardcoding some mmio address at build time, so yes using fdt to configure drivers on the fly - just like uboot does today – the net goal here is to make it easier to port edk2, but also to avoid having to do separate builds for minor board/soc variations
Challenges
Build and test system for EDK2.
Request for 1 node added in Build Farms proposal.
Not urgent, so not required to be part of rapid build farm pilot.
BayLibre Presentation
Michael Turquette – joined by Drew Fustini (BayLibre)
WG Updates (not discussed due to time constraints, but updates listed in slides)
System Libraries Working Group
Released updated RISC-V developer environment [1]
Fixed QEMU user bug with getauxval() and sent patch upstream [2]
Wrapped qemu-riscv64 to pass -cpu rv64,v=true,vext_spec=v1.0
Bumped toolchain package versions
gcc-13.2.0 (2023-7-27)
cmake-3.27.1 (2023-7-25)
Larger disk image, ~74M smaller download
libyuv RVV bug fixed upstream, pulling into AOSP surfaced clang rounding issue [3]
Fixed minor warnings when building gcc-13.2.0 riscv/atomic.c [4], patch in flight
Started “Best Practices” document for RVV development and optimization
Simulator Emulator Working Group
WG monthly meeting yesterday
Covered general updates
New project added:
Assignee: Daniel Barboza (Ventana)
ETA: end of 2023 (QEMU 8.2)
SE_01_011 - QEMU RVA22U64/S64 profile support
Language Runtimes Working Group
Support for hardware feature detection
Go: in progress
MD5 Intrinsics
OpenJDK: done
Long-time contributors to Go on RISC-V may do contract work for RISE
Kernel and Virtualization Working Group
Development completed and v1 patches will be out soon
Development completed and upstreaming started (patches)
LK_01_002 - ACPI support for PLIC driver
LK_03_002 - KVMTOOL AIA in-kernel irqchip
Firmware Working Group (deep dive, see above)
Distro and Integration Working Group
(No update provided)
Debug and Profiling Working Group
SiFive added simpleperf, which is primarily used on Android
Andes updated the status of gdb/lldb on RISC-V
Compiler/Toolchain Working Group
Crazy busy week. Update just GCC focused
Vectorization work continues – dynamic rounding, x264 specific opts, ABI annotations, etc).
Atomics – Ztso bits landed in GCC, PSABI moving forward on this issue
a.6/a.7 mappings got lost in the gcc-13.2 shuffle. Rescheduled for gcc-13.3 in the winter
Address rewriting – path forward for Jivan and Manolis’s work found. Closing investigation phase of adjusting large offset addresses
Zicond moving along. Cost model problem deeper than anticipated, may spin out distinct task for that. May spin out some generic work that will allow zicond to slightly improve CRC computations (when not using clmul or table lookups)
Bugs highlighted need for testing code generation of various extensions
Rivos indicated they’re using free github runners – working better than expected. Need to figure out how that fits into the overall CI plan
Scaling back WG updates
The original value prop behind the weekly WG updates was motivated by two needs:
Having something “to do” and talk about in the weekly TSC calls.
Having the necessary sync-ups as the TSC spun up to prepare the 2H23 priorities for the Board
Now we have weekly deep-dives and other material (external guests/presos or project reviews). Do we still want to continue with the weekly WG updates? Is this a useful tool for the leads?
27 Jul 2023
Attendees:
Jeff Law (Ventana)
Mason Li (Mediatek)
Trilok Soni ( Qualcomm)
Brian Harrington, (RedHat)
Daniel Barboza (Ventana)
Paul Walmsley, (SiFive)
Randall Bosetti, (Google)
Ludovic Henry (Rivos)
Felix Feeman (Mediatek)
Elliot Hugues, (Google)
Ammone Chapackdee (Rivos)
Barna Ibrahim, (Rivos)
Nathan Egge, (Google)
Kumar Sankaran, (Ventana)
Michelle Martineau (the Linux Foundation)
Jenn Bonner (The Linux Foundation)
Agenda
System Libraries Deep Dive (Nathan Egge)
System Libraries WG Status
Large set of system libraries already build and run on RISC-V, however core optimization work is stalled due to lack of clear targets, available hardware, extension expertise, broken tooling and developer funding.
The RISE effort will focus on
Collaboration to avoid duplication of work
Ecosystem enablement
Engage OSS community to understand, remove blockers to RISC-V development
Produce “Best Practice” guides, developer & testing environments, CI/CD scripts
Identify key areas for investment: multimedia, AI/ML, scientific computing, HPC, …
Developer access to representative hardware
Focus: Accelerating RISC-V adoption by upstream developers
System Libraries WG meets every other Tuesday @ 8am PT - Please join us!
Scope
Extremely large: Potentially 1000’s of OSS projects need RISC-V code
Not possible for RISE to enable entire ecosystem, in some cases lack domain expertise
Focus on open source software for Linux (covers large set of users)
Only consider RVI ratified extensions, e.g., intentionally not supporting RVV 0.7.1
Work to enable RISC-V support for RISE high priority projects [1]
Find ecosystem dependencies on other WGs, file and fix bugs upstream
Document best practices, publicize RISE priorities, community outreach
Solve enablement problems where developers are. Need to unblock existing projects
[1] 2023 H2 Priorities
Extremely large: Potentially 1000’s of OSS projects need RISC-V code
Not possible for RISE to enable entire ecosystem, in some cases lack domain expertise
Focus on open source software for Linux (covers large set of users)
Only consider RVI ratified extensions, e.g., intentionally not supporting RVV 0.7.1
Work to enable RISC-V support for RISE high priority projects [1]
Find ecosystem dependencies on other WGs, file and fix bugs upstream
Document best practices, publicize RISE priorities, community outreach
Solve enablement problems where developers are. Need to unblock existing projects
[1] https://lf-rise.atlassian.net/wiki/display/HOME/2023+H2+Priorities
Priorities for 2H23 (Q3 & Q4 2023)
Based on deduplicated projects with highest priorities, WG selected:
Glibc
Bionic
Openssl
BoringSSL
Zlib
Other system libraries worked on by RISE members tracked in the wiki and spreadsheet
Gap Analysis for RISC-V Ecosystem
Identified need to target a specific ABI
Combinatorial explosion of configurations not tractable for testing
Ecosystem has limited ability to optimize for RISC-V
RISE (this WG) should make a decision and publicize it
May require coordination with Distro Integration WG
Request for turn-key development environment
Combination of QEMU + Kernel + Distro with all extensions and features enabled
Suitable for building, running and testing RISC-V code in repeatable fashion
Could also be repurposed for CI / CD on github or gitlab
Address near-term problem of patches not landing due to inability to test
Possible to wrap this with scripts that permute RISC-V hardware, e.g., RVV length
Developer Environment Update
Stood up QEMU + Kernel + Distro developer environment [1]
QEMU 8.0.3
Linux 6.5.0-rc3 (2023-7-23)
Gentoo userspace
Source based, rolling release distro => easy to make and build packages
Contains developer tools by default, perfect to build OSS projects
Up-to-date developer tools, non-exhaustive list:
clang-16.0.6 (2023-6-14)
gcc-13.1.1 (2023-5-5)
git-2.41.0 (2023-6-1)
python-3.12.0_beta4 (2023-7-11)
rust-1.71.0 (2023-7-12)
cmake-3.27.0 (2023-7-18)
make-4.4.1 (2023-2-26)
ninja-1.11.1 (2022-8-30)
flex-2.6.4 (2022-9-24)
bison-3.8.2 (2021-9-21)
Pros: easy-to-use, up-to-date Cons: qemu-system is slow
Developer Environment Kernel
nathan@vulpes ~/git/linux $ ARCH=riscv CROSS_COMPILE=riscv64-unknown-linux-gnu- make menuconfig
Developer Environment Booting
nathan@vulpes ~/RISE/DevEnv $ qemu-system-riscv64 -nographic -machine virt -cpu rv64,v=true,vlen=256,elen=64,vext_spec=v1.0 -smp 4 -m 8G -kernel Image -append "root=/dev/vda1 ro console=ttyS0" -drive file=gentoo.img,format=raw,id=hd0 -device virtio-blk-device,drive=hd0 -device virtio-net-device,netdev=usernet -netdev user,id=usernet,hostfwd=tcp::10001-:22 -object rng-random,filename=/dev/urandom,id=rng0 -device virtio-rng-device,rng=rng0
Gap Analysis for RISC-V Ecosystem (needed)
Best practices guide for optimizing RISC-V
How to translate existing packed SIMD to length agnostic RVV
Techniques to “validate” speed-up even in emulated environment, e.g. perf record
Preferred mechanism for runtime RISC-V detection
Pitfalls, gotchas to avoid “Things I wish I knew when I first started writing RISC-V”
Analyze dependency graph of linux packages
Look at top-K most depended on packages
Estimate “cost” for producing optimized routines by % SLOC of assembly
Potentially cluster these into related project areas, e.g. multimedia, AI/ML, HPC
Need for actual RISC-V hardware
Is there an interim solution we can document for performance testing?
May not be sufficient to just target QEMU when writing RISC-V optimizations
No suitable hardware currently available that matches ABI target
RISE (this WG) should make hardware available to OSS projects from top-K list
Challenges
Important APIs still not released upstream
RVV extension landed in 6.5 kernel
hwprobe() will not be exposed by glibc until 2.39 in Q1 2024
Immature tooling
QEMU support for RISC-V still has gaps
Debugging support limited
Even projects that advertise RVV support have bugs, see libyuv [1]
This is likely a bigger problem as no one is “checking” quality of implementations
Need to convince upstream to build and test yet another ISA
OSS projects notoriously underfunded and overtaxed, align on open ideology?
https://github.com/google/android-riscv64/issues/38#issuecomment-1652515652
Runtime Detection in QEMU Bug [1]
#include <sys/auxv.h>
#include <stdio.h>
#define ISA_V_HWCAP (1 << ('v' - 'a'))
void main() {unsigned long hw_cap = getauxval(AT_HWCAP);
printf("RVV %s\n", hw_cap & ISA_V_HWCAP ? "detected" : "not found")
https://gitlab.com/qemu-project/qemu/-/issues/1793
Case Study: libjpeg-turbo
Builds for RISCV, but has no SIMD
Case Study: libjpeg-turbo
Unit tests fail on RISCV
Case Study: libjpeg-turbo
Developer interested
Does not have funding
Can RISE fix this?
Next Steps
outreach
working on 3 identified gaps
WG Updates
Simulator Emulator Working Group (Daniel Barboza)
WG leader talked about RISE in the QEMU SIG meeting yesterday
People showed interest in how outsider could also collaborate/join meetings and mailing lists
"If meeting notes are in the wiki page, and the wiki is open, doesn't it mean that the meeting should also be open?"
We settled to keep using this QEMU SIG timeslot to talk about RISE related work in the future
Developer Infrastructure Working Group (Paul Walmsley)
Working group established. subscribe mailing list here; The Wiki page for this group has also been created and can be contributed to Here.
WG Lead: Paul Walmsley; Barna Ibrahim
Proposal to the board has been approved
Enabling Kernel & KV WG and Compiler WG
Using GCP with Google Support
Next Steps
Monitor, evaluate Build Farm usage from 2 Working Groups.
Propose Build Farm next steps to BoD in mid November
Start RISE TSC RISC-V Board Enablement needs effort
Inviting Open Source Project contributors (Barna Ibrahim)
Board Supported to have TSC decide to invite open source maintainers to specific WG.
Board Ask 1) Process 2) Keep a list
A lot of RISE prioritized initiatives are on specific Open Source projects. TSC Working Groups need a path to communicate and engage directly to maintainers/developers for their respective open source projects.
Currently the public/developers only sees the wiki and no two way engagements.
A TSC’s or WG ability to invite/add an organization (An open source project maintainer/delegate) to the specific working group mailing list and meetings. For example, right now the Distro WG needs to have a path to communicate with the is Debian maintainers.
Challenge
Request
Can this be decided on TSC or WG level for each invitation or does each of the invitation need to come to Governing Board?
Contractor Engagement Process - 7/27 BoD (Barna Ibrahim)
Goals
Define a streamlined process for selecting contractors that can help us with RISE TSC priorities
Provide transparency in our engagement process
Focus on projects with clear deliverables
Request for Proposals (RFP)
Driven by Working Groups, approved by the Governing Board
Published for the public on to submit bids
WG recommends a proposal and the board votes to approve
Next Steps
Set up communication channels with the public (wiki, mailing lists, etc)
Publish our template for RFPs
Work with LFEU on the details of setting up contracts and payments
Language Runtimes Working Group ( Andrew De Los Reyes)
Summer vacations, large slowdown in contributions to projects
Support for hardware feature detection
Discussions about RISC-V profiles on golang/go#61476
Patch 1 of 4 merged
Go: in progress
Long-time contributors to Go on RISC-V may do contract work for RISE
Kernel and Virtualization Working Group (Kumar Sankaran)
No updates from previous meeting
Firmware Working Group (Kumar Sankaran)
StandaloneMMPkg
Staging branch published - https://github.com/tianocore/edk2-staging/tree/RiscV64StandaloneMm
CLANG support
Waiting for maintainer ACK. Hope to get included in August EDK2 release.
Preparing deep dive slides.
Distro and Integration Working Group (Brian Harrington)
No new work to speak of.
Community updates noted on the wiki:
Wipe and start over beginning with 90 packages:
The procedure is to rebootstrap the port within the official archive, which means we won't import the full debian-ports archive. Therefore our next step is to build a minimal set of ~90 source packages using the debian-ports archive and then import them into the official archive.
Debian announces official support, target 2025.
Redbeard will be on PTO the next two meetings. Do we need coverage?
Action item: Redbeard will send any needed updates to mailing list.
Debug and Profiling Working Group (Ammone Chapackdee)
Presented to TSC and Board DP WG Deep Dive 7.27.2023
Tasks ownership
Dependency/overlap with other WG
Andes will look for an internal owner for this
eBPF
gdb/lldb
Start a WG meeting
Update wiki
Overall positive feedback
Community Engagement
Compiler/Toolchain Working Group (Jeff Law)
GCC
Double digit improvements in Imagemagik due to generic vector work
Low level vector refactor seems to be improving build times ~10%
Better understanding of how VRULL & RAU’s address simplifications will interact
Sorted out roughly 75% of basic Zicond support across the 3 “competing” implementations
LLVM
LLVM 17 branch imminent – last ~6 months of LLVM RV work going public
Large code model – need Zicfiss extension in spike to facilitate validation
Some discussions around FTZ semantics for denorms (need it or not?)
Zvfh support no longer considered experimental
Binary toolchains
Would like to know if building with the new branch is working with LTO
Do we want to have links to Simon’s work on the RISE website
How to drive folks this this version rather than others that are out there (gitlab).
20 Jul 2023
Attendees:
Jeff Law (Ventana)
Brian Harrington, (RedHat)
Daniel Barboza (Ventana)
Paul Walmsley, (SiFive)
Randall Bosetti, (Google)
Andrei Warkentin (Intel)
Ludovic Henry (Rivos)
Felix Feeman
Ammone Chapackdee (Rivos)
Sunil VL (Ventana)
Uli Drepper ( Red Hat)
Anup Patel (Ventana)
Barna Ibrahim, (Rivos)
Nathan Egge, (Google)
Kumar Sankaran, (Ventana)
Simon Harvey (Imagination)
Fei Wu (Intel)
Tim Ouyang (Andes)
Ammone Chapackdee (Rivos)
Michelle Martineau (the Linux Foundation)
Agenda
Debug and Profiling Deep Dive (Fei Wu)
Debug and Profiling WG Status
RISE members have dedicated efforts on some debug and profiling tools, but have low investments on others.
The RISE Effort will focus on
Collaboration to avoid duplication of work
Communicate RISC-V ecosystem readiness
Focus: Facilitate Efforts and Communicate Ecosystem Readiness
Debug and Profiling Scope
Category | Examples |
Dynamic Binary Instrumentation (DBI) | Valgrind, DynamoRIO |
Profiler | perf-tools, gprofng, PAPI, libpfm4 |
Tracer | eBPF, ftrace, SystemTap |
Debugger | gdb, lldb |
Checker | Address/Thread Sanitizer |
Toolchain | binutils |
Benchmarking and Analysis | LKP, SPEC CPU |
Debug DBI Priorities
2H2023 Goals:
Basic RISC-V Vector support for Valgrind
Framework for RVV on Valgrind
Tens of instructions enabled for basic testcases
2024 Goals:
Full RISC-V Vector support for Valgrind
Other extension such as bitmanip on Valgrind
Longer Term Goals:
Investigate other DBI solutions such as DynamoRIO
Profiler Priorities
2H2023 Goals:
Userspace cycle/instret access
Perf event discovery & encoding from JSON file
Perf-tools
2024 Goals:
Perf CTR support
Perf-tools
Longer Term Goals:
New (if any) PMU relevant spec support
PAPI, libpfm4 & gprofng are candidates
Tracer Priorities
2H2023 Goals:
Evaluate the status of eBPF based tools on RISC-V (Looking for owner)
Bpftrace, bcc, bpftune, cilium
eBPF
2024 Goals:
Depend on the evaluation above
Add the packages to popular distros?
eBPF
Longer Term Goals:
SystemTap and others are candidates
Debugger Priorities
2H2023 Goals:
Evaluate the status on RISC-V (Looking for owner)
gdb/lldb
2024 Goals:
Depend on the evaluation above
gdb/lldb
Checker Priorities
2H2023 Goals:
Support it on GCC/LLVM
Address Sanitizer
Longer Term Goals:
Thread Sanitizer
Benchmarking Priorities
2H2023 Goals:
Enable LKP framework and several benchmarks on RISC-V
LKP
2024 Goals:
Enable profiling tools on LKP
Collect performance data on real hardware
LKP
Debug and Profiling Challenges/Needs
Needs
PMU development - with the extension such as CTR
Performance benchmarking - okay to publish performance data, good enough PMU support
People to take the initial work on eBPF, gdb etc.
Hardware
Challenges
Maintain an active WG with people working on very different projects
OPEN DISCUSSION
Build Farm Proposal
Feedback being collected through EOD 7/19 (yesterday)
Paul/Barna - Rapid Build Farm proposal: https://docs.google.com/document/d/1MkG19Kt4GwAnfI6M7YlkWj13-9woTejSjJ5rHFcE5TA/edit
Assist the community quickly
Gain experience with what works and what is needed in practice
Have some concrete results that RISE can share by the time of the RISC-V Summit.
Which other WG should be enabled now? (WG Needs)
WG Updates
System Libraries Working Group
SiFive has agreed to donate a BoringSSL port for vector crypto
Google working on libflac SL_01_001
Simulator Emulator Working Group
SE_01_001 - QEMU linux-user riscv_hwprobe syscall support
Upstream status changed to “Completed”
Upstream Version changed to “QEMU 8.1” (late August 2023)
Language Runtimes Working Group
Update to the RISE Board
Support for hardware feature detection
OpenJDK: completed
Go: in progress
Support for V extension
Go: feature detection via hwcap, hwprobe is coming soon
Port libraries and frameworks
lz4-java: in progress
Backports:
OpenJDK: completed for JDK17
Feedback for the Build Farm proposal
Integration of Android Runtime
Kernel and Virtualization Working Group
LK_01_007 - IOMMU driver with DT support
Upstreaming the IOMMU driver has started (patches)
LK_02_018 - KVM bitmanip extension virtualization
Need to support Zba, Zbb, Zbc, and Zbc extensions in the KVM ONE_REG interface
Development and upstreaming completed (patches)
This will be available in Linux-6.6
LK_02_019 - KVM vector crypto extension virtualization
Need to support various Zvk* extensions in the KVM ONE_REG interface
Development completed and upstreaming started (patches)
Dependency on kernel side patches so might be available in Linux-6.6
Firmware Working Group
MMU support in EDK2
Phase 1 (without Svpbmt) patches upstreamed
CLANG support
Final stages of community review.
CMO support
New design under community review.
Plan to discuss and finalize 1H 2024 projects/priorities in August Monthly meeting.
Distro and Integration Working Group
Fedora Updates
Fedora community members have currently built over 90% of the packages for the current release: Fedora 38
Presently this includes a full desktop environment (KDE), containerization (Kubernetes, Podman, Containerd), and some desktop applications (Firefox, Thunderbird)
The last 10% is going to be the hardest.
Package Name | Version | Status |
gcc | 13.1.1 | Complete |
glibc | 2.37.4 | Complete |
binutils | 2.39 | Complete |
binutils | 2.40 | Ongoing |
libffi | 3.4.4 | Complete |
LLVM/Clang | 16.0.4 | Complete |
LLVM/Clang | 15.0.7 | Complete |
LLVM/Clang | 14.0.1 | Complete |
Package Name | Version | Status |
Python | 3.11.4 | Complete |
Perl | 5.36.1 | Complete |
golang | 1.20.5 | Complete |
gnome | 44.1 | Ongoing |
KDE | 17.08.3 | Complete |
Firefox | 115.0 | Complete |
Thunderbird | 102.12.0 | Complete |
Podman | 4.5.0 | Complete |
Package Name | Version | Status |
Ceph | 17.2.6 | Complete |
Kubernetes | 1.26.4 | Complete |
Containerd | 1.6.19 | Complete |
Nginx | 1.22.1 | Complete |
NodeJS | 20.2.0 | Complete |
Conda | 23.3.1 | Complete |
Chromium | 113.0.5672.63 | Ongoing |
cowsay | 3.7.0 | Complete |
Compiler/Toolchain Working Group
GCC
Vector: Low level redesign, improves maintainability, extendability and may also help with recent compile-time explosions
Vector: memcpy with V discovery. Very early libm routines like sin/cos.
Slow, but important, progress on address reassociation work
“Competing” Zicond basic support implementation posted for review
Atomics reopened to cover Ztso optimizations from Rivos
LLVM
First release with a variety of items of interest as well as various improvements to existing items of interest to RISE.
Not tracking by RISE
Major pseudo cleanup
BOLT post-link optimizer
Zcmp, Zacas, rounding mode control
Progressing towards LLVM 17 release
GNU Cauldron – Sept 2023. Expecting to have some RISC-V BOFs, talks, etc
Expecting attendees from Rivos, RAU, VRULL, Embcosm, Ventana, etc
Opportunities to evangelize RISE
13 Jul 2023
Attendees:
Jeff Law (Ventana)
Nathan Egge (google
Andrei Warkentin (Intel)
Andrew De Los Reyes (Rivos)
Brian Harrington, (RedHat)
Daniel Barboza (Ventana)
Uli Drepper (RedHat)
Mason Li (MediaTek
Simon Wang ( Andes)
Paul Walmsley, (SiFive)
Kris Murphy, (RedHat)
Barna Ibrahim, (Rivos)
Kumar Sankaran, (Ventana)
Ammone Chapackdee (Rivos
Michelle Martineau (The Linux Foundation)
Agenda
WG Updates
System Libraries Working Group
System Libraries WG met 7/11 attended by Google, RedHat, Imagination, Intel [1]
Review 2023 H2 priorities on wiki [2]
Discussion about baseline ABI to support
Consensus that RISE publishing a recommended target necessary
Straw man: RVA22 + Vector + VectorCrypto
Challenge: VectorCrypto not yet ratified, not full supported in HW
Upstream OSS ask for RISE to provide turnkey RISC-V developer environment
QEMU + Kernel + Distro (Debian?) ideal for both dev and CI / CD uses
No good if only partially staffed, must just work and stay up-to-date
RedHat started working on top-K most depended-on packages
Potential to do analytics on this data, help set 2024 H1 priorities
[2] 2023 H2 Priorities
Simulator Emulator Working Group
No Updates this week
Language Runtimes Working Group
Language RunTimes update was given to the bored today 7/13/2023
Overall positive reception
Asks:
Building a Visual status dashboard on status for reach language (ecosystem readiness)
Which Projects sees considers RISC-V is supported architecture - can be added to the dashboard
Look into V8 status
Functional maturity of each language compared with other architectures (x86, ARM) (Need volunteers)
LR Project Status
Above items can be lined up for next deepdive 9/7/2023.
Kernel and Virtualization Working Group
One round of discussions happened on 1H24 priorities
Initial 1H24 priorities to be finalized by next monthly meeting
Started discussion on RAS software stack
This will be completed in the next monthly meeting
Work items will be defined as-part of this discussions
Build/CI Infrastructure
Overall Board was supportive of the idea and funding this project.
Start small maybe combination of HW and Cloud, then scale as the usage increases.
Next Steps:
Kernel WG proposal spin this off to broader WG needs (Language Runtimes, System Libraries etc). Update the wiki accordingly w/o cost.
Dig Deeper on the cost:
GCP Usage (Nathan)
AWS Usage (Jeff Law) (AWS promotional credits for open source projects)
OSL-OSU (Barna, Nathan)
Put a proposal together in the next couples weeks (Volunteers, Publish it in TSC list for inputs etc.)
Firmware Working Group
Monthly meeting happened on July 5th 2023
Wiki update guidance
CMO presentation
Based on feedback during presentation, a new version of patch sent upstream this week.
CLANG support patches sent upstream.
StandaloneMMPkg may need some help from RISE members.
Do we need to maintain both google spreadsheet as well as wiki? Can we have a single source of truth?
Distro and Integration Working Group
Debian:
Bookworm releasing without RISC-V support, but it was close.
riscv64
Although it's not yet in the official architecture list, the riscv64 port is making good progress. We expect to be in a position to ship trixie with riscv64 support (subject to architecture qualification later in the cycle). Now may be a good time to invest in Debian so Trixie (2 years out) supports RISC-V. Project could use hardware and attention to build failures. Brian will reach out to Debian and Fedora
Debug and Profiling Working Group
Valgrind
Sent basic Vector-IR prototype code for discussion
Address Sanitizer
Not too many updates this week
It’s valuable to get all the targeted tools’ status on RISC-V
Compiler/Toolchain Working Group
Haven’t covered this the last few weeks
Improving the confluence pages
Stakeholders (RISE and external), resourcing, dependencies, etc
Filling in more in-progress projects for 2H23 and 1H24 plan
Seeing others adding content – Simon Harvey (Imagination Technologies), Shao-Chung Wang (Andestech), Chibang Kuan (Mediatek)
Starting to get better wired into LLVM space
Coordination of changes across LLVM and GCC (ABI issues)
Slightly better understanding of ongoing autovec improvements
CRC optimization discussion – viable plan going forward
Need to sync with Philip R (he’s reached out, I just haven’t followed up)
Pushed quite a bit on Zfa, and vector crypto for upcoming binutils release
Really need to add this to the project pages as it makes sense going forward and there will be ongoing dependencies
CI/CD on GCC coordination branch just starting to fire up
06 Jul 2023
Attendees:
Jeff Law (Ventana)
Amit Pabalkar (NVIDIA)
Brian Harrington, (RedHat)
Daniel Barboza (Ventana)
Paul Walmsley, (SiFive)
Randall Bosetti, (Google)
Kris Murphy, (RedHat)
Elliot Hughes, (google)
Barna Ibrahim, (Rivos)
Nathan Egge, (Google)
Kumar Sankaran, (Ventana)
Trilok Soni (Qualcomm)
Tim Ouyang (Andes)
Ammone Chapackdee (Rivos
Agenda
Language Runtimes WG Deep Dive (20mins)
[RISE] Language Runtimes WG Update 7/6/23
https://lf-rise.atlassian.net/wiki/display/HOME/Language+Runtimes+WG
Build Farm Project Update (20mins)
RISC-V Linux and KVM Build Farm Full Proposal
Proposal:
RISE to fund RISC-V Linux Kernel and KVM Build Farm.
Start with 7-10 nodes (64 core machine) which will ensure proper tests. This includes two nodes dedicated for KVM tests.
Why should RISE Fund:
Enabling RISC-V Linux Kernel and KVM maintainers with a stable build environment directly aligns with the RISE mission.
This will help to accelerate and mature RISC-V Linux Kernel and KVM.
Request:
RISC-V Linux Kernel and KVM Build Farm
Hosted by OSU-OSL
9 machines
RISC-V Linux and KVM Build Farm Full Proposal
WG Updates
System Libraries WG
Added a Project Tracking Spreadsheet [1]
Updated 2023 H2 priorities to include SL_00_005 - zlib-ng (SiFive)
Progress on zlib-ng added RVV support for compare256, slide_hash and alder32
https://docs.google.com/spreadsheets/d/1_jlbjggMfkyrl2giq_ktvlUAZ4RcoDRQTMsdFr94fFg
Simulator Emulator WG
Monthly meeting happened yesterday (July 5th)
Covered wiki vs spreadsheet usage, went through priority items
New items added in the spreadsheet:
SE_01_009 QEMU ACPI support for AIA - Sunil V L (Ventana)
SE_01_0010 QEMU ACPI support for PLIC - Sunil V L (Ventana)
Kernel and Virtualization WG
One round of discussions happened on 1H24 priorities
Initial 1H24 priorities to be finalized by next monthly meeting
Started discussion on RAS software stack
This will be completed in the next monthly meeting
Work items will be defined as-part of this discussions
Firmware WG
Monthly meeting happened on July 5th 2023
Wiki update guidance
CMO presentation
CLANG support patches sent upstream.
StandaloneMMPkg may need some help from RISE members.
Do we need to maintain google spreadsheet?
How to assign IDs for each project?
Distro Integration WG
New discussions about Yocto
Not much else to report
Debug and Profiling WG
Discussing eBPF tasks, Bjorn Topel suggested try and evaluate the existing tools
Bpftrace
BCC
Cilium
Bpftune
Need to find someone for this
Compiler/Toolchain WG
Improving the confluence pages
Slightly more detail on benchmarks improved by changes
Stakeholders (RISE and external), some resourcing information, etc
Update for additional dependencies and/or dependencies resolved
Filling in more in-progress projects for 2H23
Get backtracing item into the 2H23 plan
Starting to fill out 1H24 plan
Starting to get better wired into LLVM space
Coordination of changes across LLVM and GCC (ABI issues)
Slightly better understanding of ongoing autovec improvements
CRC optimization discussion – viable plan going forward
Need to sync with Philip R (he’s reached out, I just haven’t followed up)
Pushed quite a bit on Zfa, and vector crypto for upcoming binutils release
Really need to add this to the project pages as it makes sense going forward and there will be ongoing dependencies
Alexey Bataev, SiFive
Barna Ibrahim, Rivos
Brian Harrington (Redbeard), Redhat
Drew Fustini, Tenstorrent
Jeff Law, Ventana
Kumar Sankaran, Ventana
Mason Li, MedieTek
Nathan Egge, Google
Paul Walmsley, SiFive
Terje Bergstrom, Nvidia
Tim Ouyang, Andes
Victor Constan, Google
Agenda
TSC Meeting Notes and Hygiene
WG Opens/challenges
Future topics
Tensorflow for RISC-V
x264 for RISC-V
AIs from last week
Working Groups Opens / Challenges
Tensorflow for RISC-V (email sent to libraries-runtimes WG)
If yes, what is the latest status?
We are getting asked questions regarding the availability of Tensorflow on RISC-V
Tried to compile Tensorflow within Ventana and things fail due to missing support for Bazel
Is anyone from RISE or any upstream company working on Tensorflow?
If no one is working on Tensorflow from RISE, can we make this an RFP and get some bids as Tensorflow for RISC-V is a pretty important framework for AI/ML
x264 for RISC-V
Bytedance team started work on x264 porting and optimization with RVV1.0
Repo located here https://code.videolan.org/yintong.ustc/x-264-bd-ventana
Is anyone from RISE or upstream working on x264? Bytedance would like to collaborate with other work if any
An open discussion occured around Bazel, and RISC-V, and what is available. After the discussion it was determined that the group could continue going forward and see what the next level of errors would be.
Working Groups Opens / Challenges
Distro WG - RVI email thread
[RISE-Distro-Integration-WG] [tech-profiles] Feedback on having multiple applications profiles from RISE Discussion
AIs for this week
Insert
AIs from last week
Insert
02 May 2024
Michelle Martineau, The Linux Foundation
Erich Hanke, AMD
Tomas Evensen, AMD
Anup Patel, Ventana
Heinrich Schuchardt, Canonical
Robin Randhawa, SiFive
Gordan Markus, Canonical
Sunil Vl, Ventana
Myungjoo Ham, Samsung
Daniel Barboza, Ventana
Simon Harvey, Imagination
Barna Ibrahim, Rivos
David Weaver, Akean
Kumar Sankaran, Ventana
Paul Walmsley, SiFive
Victor Costan, Google
Alexey Bataev, SiFive
Nathan Egge, Google
Ludovic Henry, Rivos
Ming-yu Hung, Mediatek
Jian Zhang, BOSC
Agenda
Language Runtimes Deep Dive led by Ludovic Henry
RFP Status
WG Opens
Future topics: WG Opens/challenges
AIs from last week
Language Runtimes Deep Dive led by Ludovic Henry
RFP Status
WG Opens
RFP process challenges
This was added HERE new sections labeled contracts and payments are now on the RFP wiki page.
RFP postings should include LF/RISE contract text and requirements if we expect vendors to use ours
Along with statements that we don’t accept vendor-written contracts
WG Leads- if you create new documents in your WG folders and do not assign them to RISE PMO you will be responsible for granting permissions.
Open Discussion
Future topics: WG Opens/challenges
25 Apr 2024
Evan Harrison, The Linux Foundation
Drew Fustini, Tenstorrent
Andrew de los reyes (Adlr), RIVOS
Jeff Law,
Victor Constant, Google
Tomas Evensen, AMD
Alexey Bataev, SiFive
Terje Bergstrom, NVIDIA
Barna Ibrahim, Rivos
Brian 'redbeard' Harrington, Redhat
David Weaver, Akean
Kumar Sankaran, Ventana
Paul Walmsley, SiFive
Nathan Egge, Google
Agenda
Developer Infrastructure Deep Dive led by Paul Walmsely
WG Opens
Future topics: WG Opens/challenges
AIs from last week
Appendix
2024 Deep Dive Schedule
Please review and inform Evan of any changes needed
Topics
Developer Infrastructure WG Introduction & Vision
Build Farm
2024Q1 Review
Next Steps
Board Farm
Developer Tools
Challenges
Developer Infrastructure WG Introduction
Charter
The Developer Infrastructure WG focuses on software and services to support open-source RISC-V developers - both RISE members and the broader open-source community.
Co-chairs
Barna Ibrahim (Rivos)
Paul Walmsley (SiFive)
TSC Contact
Nathan Egge (Google)
Developer Infrastructure WG Vision
Three mutually-supporting projects
RISE Build Farm (Active)
RISE Board Farm (Active)
RISE Developer Tooling (In planning)
Goal
Provide robust development infrastructure and tools to RISC-V developers
RISE Build Farm: Introduction
Objective
Cross-build and test (in simulation) RISC-V ports of key open source software
Running in Google Cloud
Björn Töpel (Rivos) coordinating
Status
7 active projects
Thousands of builds, and millions of tests per month.
Build Farm: 2024Q1 Review
Broadened the administration base
Brian “Redbeard” Harrington (Red Hat) now helping out with general admin tasks
Björn Töpel (Rivos) now leading the Build Farm
Four existing projects still running
Two new projects added
GCC fuzzer: Patrick O’Neill & Edwin Lu (Rivos)
LLVM fuzzer: Patrick O’Neill & Edwin Lu (Rivos)
Credits currently set to expire on September 12, 2024
Expiration date just discovered mid-April
Will discuss with Amber and Lars to see if this can be extended
Build Farm: Looking Forward
CI/CD Based Controller + Job system
Projects can include a JenkinsFile in their repo which defines the job requirements. Makes the jobs portable across Jenkins instances as well
Webhook + status integration across GitHub, GitLab, and publishing via host names in the subdomain “di.riseproject.dev”.
Will make this easy to add more Build Farm projects with greater flexibility
Members will coordinate with other working groups to solicit other projects and support their onboarding
Compared to Kubernetes it is much simpler to understand and deploy.
Biggest challenges: sheep shearing (setting up credential vaults for API access into secret material, authentication proxies, configuring back end roles & policies to allow for the correct, limited, API calls from Jenkins into GCP using the proper service accounts, ensuring build systems “fail” and recover property upon crashing, that services all recover correctly, etc)
We Need More Build Farm Projects
Build farm project growth rate is leveling off
Let’s get more build farm projects going for future payoffs in better RISC-V ecosystem support for all of us
Please contact us if you have project ideas - we can help
RISE Board Farm: Introduction
Objective
Many use cases: OpenJDK, Linux distributions, kernel, Go(?) …
Provide a range of Linux-capable RISC-V boards to run functionality and performance tests on CI-generated code
Investigate future feasibility of providing developer access to boards
Curtis Galloway (Google) coordinating
RISE Board Farm: Status
Hardware prototype running, based on Kendryte K230
Software infrastructure in progress
Target is to remotely load as much of the software on the board as possible
Hosting at OSUOSL
Goal: contract agreed in May (new one needed since RISE hosted by LF EU)
Adlr: How does this compare to scaleway?
- Paul: it's a compliment to what the commerical cloud providers are providing.
RISE Developer Tools: Introduction
Objective
Ideally combines cross and native development environment and native system software and userspace
Provide a full Linux system image build, boot, and development environment for use on both simulators (QEMU) and RISC-V hardware
Will start with Nathan’s Gentoo build
No one yet coordinating
Credits
Barna Ibrahim (Rivos): Co-chair
Björn Töpel (Rivos): Kernel CI Build Farm Project Admin, Build Farm Lead
Brian ‘redbeard’ Harrington (Redhat): Build Farm Administrator
Curtis Galloway (Google): Board Farm Lead
Edwin Lu (Rivos): Toolchain Build Farm Project Admin
Ludovic Henry (Rivos): Language Runtimes Build Farm Project Admin
Patrick O’Neill (Rivos): Toolchain Build Farm Project Admin
Paul Walmsley (SiFive): Co-chair
Working Groups Opens / Challenges
18 Apr 2024
Michelle Martineau, The Linux Foundation
Drew Fustini, Tenstorrent
Erich Hanke, AMD
Tomas Evensen, AMD
Anup Patel, Ventana
Mark Zhuang, SpacemIT
Heinrich Schuchardt, Canonical
Terje Bergstrom, NVIDIA
Gordan Markus, Canonical
Sunil Vl, Ventana
Daniel Barboza, Ventana
Simon Harvey, Imagination
Barna Ibrahim, Rivos
Brian 'redbeard' Harrington, Redhat
David Weaver, Akeana
Kumar Sankaran, Ventana
Paul Walmsley, SiFive
Victor Costan, Google
Alexey Bataev, SiFive
Nathan Egge, Google
Steve Wanless, RedHat
Paul Walmsley, SiFive
Olof Johansson,
Jefro, Redhat
Mason Li, MediaTek
Agenda
Simulator Emulator Deep Dive led by Daniel Barboza
WG Chairs: Propose setting a minimum of one live meeting per month for each WG
WG Opens
Future topics: WG Opens/challenges
AIs from last week
Simulator Emulator Deep Dive led by Daniel Barboza
2024 projects - not yet started
SE_01_003 - QEMU WorldGuard support
SE_01_021 - QEMU RVA23 profile support
SE_02_004 - QEMU RVV performance enhancements
2024 projects - in progress, not sent for review
Community project (Starfive)
Community project (Starfive)
SE_01_017 - QEMU ACPI SPCR support for RISC-V
SE_01_018 - QEMU ACPI PPTT support for RISC-V
2024 projects - upstream process ongoing
SE_01_005 - QEMU PCIe passthru on x86 hosts
SE_01_004 - QEMU IOPMP support (no change)
SE_01_015 - QEMU RISC-V IOMMU support
SE_01_022 - RISC-V Server SoC Reference Board
2024 projects - upstream completed
SE_01_019 - QEMU ACPI SRAT/SLIT(NUMA) support for RISC-V
SE_01_020 - QEMU SMBIOS support for RISC-V
WG Chairs: Propose setting a minimum of one live meeting per month for each WG
Propose establishing a one-live-meeting-per-month minimum for all WGs (pjw)
Even if no topics, would be good to do a status review
Discussed a few weeks ago at the TSC in the afternoon time slot
All commenters agreed
Wanted to bring it up in the morning TSC slot for any additional discussion
RFP Contract Status Update
RFP# | Topic | WG | Phase |
GCC SPEC2017 Optimization | Toolchain | Phase 3: Bidding open | |
OpenOCD upstreaming | Debug and Profiling | Phase 4: Bid Review & Award Contract | |
LLVM CI Improvements | Dev Infra/ Toolchain | Phase 6: Execution | |
TCG Translation for RVV Instructions | Simulators/ Emulators | Phase 5: Signing in progress Vendor and (LF Signature) | |
Rust Tier-1 Support for RV64 Linux | Toolchain | Phase 6: Execution | |
libjpeg-Turbo | System Libraries | Phase 4: Bid Review & Award Contract | |
Multimedia Enablement | System Libraries | Phase 6: Execution | |
Accelerate Go Runtimes | Language Runtimes | Phase 6: Execution |
WG Opens
11 Apr 2024
Evan Harrison, The Linux Foundation
Drew Fustini, Tenstorrent
Erich Hanke, AMD
Tomas Evensen, AMD
Anup Patel, Ventana
Mark Zhuang, SpacemIT
Heinrich Schuchardt, Canonical
Terje Bergstrom, NVIDIA
Gordan Markus, Canonical
Sunil Vl, Ventana
Daniel Barboza, Ventana
Simon Harvey, Imagination
Barna Ibrahim, Rivos
Brian 'redbeard' Harrington, Redhat
David Weaver, Akean
Kumar Sankaran, Ventana
Paul Walmsley, SiFive
Victor Costan, Google
Alexey Bataev, SiFive
Nathan Egge, Google
Steve Wanless, RedHat
Paul Walmsley, SiFive
Olof Johansson,
Jefro,
Mason Li, MediaTek
Tim O,
Agenda
Distro and Integration Deep Dive led by Redbeard
WG Opens
Future topics: WG Opens/challenges
AIs from last week
Updated Deep Dive Schedule- SEE APPENDIX
Appendix
2024 Deep Dive Schedule
Please review and inform Evan of any changes needed
Distro and Integration Deep Dive
Dev Infra WG Opens
Dev Infra: would like to get Jeff’s signoff as Toolchain & Compiler WG chair for the GCC microcontroller Build Farm proposal
FYI: RISE build farm infrastructure to build riscv64 python binary wheels. Proposal here.
Dev Infra: Björn Töpel (Rivos) & Brian Harrington (Red Hat) taking the lead on RISE Build Farm management (thanks!)
Open Discussion
Action: Jeff Law to take a look and get back to Paul for approval
Dev Infra & Language Runtimes WG Enabling RISC-V Boards Request
Board Green light on Requested Amount: 5,760€ per year
Projects to be first enabled:
Java/Adoptium: 15 boards to build and test Java 11, 17, 21, and 22. It runs for 2000 hours/week of building and testing
Go: 5 boards, used exclusively for CI
AlmaLinux/RockyLinux: 5 boards each, used to build their distributions on RISC-V
Next Steps
TSC and WG are there other needs?
Report back to Board in 3 months on usage progress
Future Topics Parking Lot
Please add topic to be discussed for future meetings
AIs for this week
AIs from last week
Insert
04 Apr 2024
Michelle Martineau, The Linux Foundation
Drew Fustini, Tenstorrent
Erich Hanke, AMD
Tomas Evensen, AMD
Anup Patel, Ventana
Mark Zhuang, SpacemIT
Heinrich Schuchardt, Canonical
Terje Bergstrom, NVIDIA
Gordan Markus, Canonical
Sunil Vl, Ventana
Daniel Barboza, Ventana
Simon Harvey, Imagination
Barna Ibrahim, Rivos
Brian 'redbeard' Harrington, Redhat
David Weaver, Akean
Kumar Sankaran, Ventana
Paul Walmsley, SiFive
Victor Costan, Google
Alexey Bataev, SiFive
Nathan Egge, Google
Steve Wanless, RedHat
Agenda
Kernel and Virtualization Deep Dive led by Anup Patel
WG Opens
Future topics: WG Opens/challenges
AIs from last week
Updated Deep Dive Schedule- SEE APENDIX
Kernel and Virtualization Deep Dive led by Anup Patel
Latest Linux release updates
Linux-6.8 was released on 10th March 2024 and Linux-6.9 merge window concluded on 25th March 2024
Noteworthy updates:
RVA23 profile extensions
List of RVA23 profile extensions on wiki in-sync with latest spec
HWPROBE additions
No updates
KVM ONE_REG additions
Ztso and Zacas
Total 83 extensions (04-04-2024, wiki)
Kernel HWPROBE (04-04-2024)
NA - 36 (43.37%)
TBD - 16 (19.28%)
COMPLETED - 31 (37.35%)
KVM ONE_REG (04-04-2024)NA - 10 (12.05%)
TBD - 26 (31.32%)
COMPLETED - 47 (56.63%)
Updates on discovery
Overall status
2023-2H
LK_01_003 - AIA drivers with DT support
Development: Completed, Upstreaming: Completed
First 8 patches merged in Linux-6.9 and remaining 8 in Linux-6.10
LK_01_005 - Native/hosted debug support (aka HW breakpoint)
Development: Completed, Upstreaming: OnGoing
LK_02_011 - KVM native/hosted debug virtualization
Development: Completed, Upstreaming: TBD
LK_03_018 - QEMU-KVM vector crypto support
Development: Completed, Upstreaming: Completed
LK_03_019 - QEMU-KVM bitmanip support
Development: Completed, Upstreaming: Completed
Total 27 projects (04-04-2024, wiki)
Development (04-04-2024)COMPLETED / NOTNEEDED - 27 (100%)
Upstreaming (04-04-2024)TBD - 3 (11.11%)
ONGOING - 7 (25.93%)
COMPLETED / NOTNEEDED - 17 (62.96%)
Updates on projects
Overall status
2024-1H
Kernel
HWPROBE discovery for Z* and S* extensions included in RVA23 profile
ACPI LPI support
ACPI CPPC support
ACPI PPTT support
ACPI NUMA support
ACPI SPCR support
Steal time support
System suspend support
Debug console support
PMU snapshot support
ISA Extensions
ACPI improvements
SBI v2.0
Updates on priorities
KVM
KVM selftests
KVM unit tests
Host nested acceleration (Defined by SBI v2.0)
ISA extensions
ONE_REG discovery for Z* and S* extensions included in RVA23 profile
Virtualize SBI v2.0 support
Steat time support for Guest (incl. KVMTOOL and QEMU-KVM)
System suspend support for Guest (incl. KVMTOOL and QEMU-KVM)
Debug console support for Guest (incl. KVMTOOL and QEMU-KVM)
PMU snapshot support for Guest (incl. KVMTOOL and QEMU-KVM)
Xen
Shared memory and event channel
IOMMU driver
LK_01_011 - ACPI LPI support
Development: Completed, Upstreaming: Completed
LK_01_012 - ACPI CPPC support
Development: Completed, Upstreaming: Completed
Development: Completed, Upstreaming: Completed
LK_01_018 - Optimize bitops using Zb* extensions
LK_02_015 - KVM Zawrs virtualization
Development: Completed, Upstreaming: Ongoing
LK_02_020 - KVM Zacas virtualization
Development: Completed, Upstreaming: Completed
Development: Completed, Upstreaming: Completed
LK_03_003 - KVMTOOL Debug console support
arch_timer, demand_paging_test, dirty_log_test, get-reg-list, guest_print_test, kvm_binary_stats_test, kvm_create_max_vcpus, kvm_page_table_test, set_memory_region_test, and steal_time
Development: Completed, Upstreaming: Completed
Lists of tests
LK_03_012 - KVM selftests improvements
LK_03_013 - KVM unit tests RISC-V port
Development: Completed, Upstreaming: Completed
Development: Completed, Upstreaming: Completed
LK_03_020 - KVMTOOL Smstateen support
LK_03_021 - QEMU-KVM Smstateen support
Development: Completed, Upstreaming: Completed
Development: Completed, Upstreaming: TBD
LK_03_022 - KVMTOOL Zawrs support
LK_03_025 - QEMU-KVM Svnapot support
Development: Completed, Upstreaming: Completed
LK_03_028 - KVMTOOL Zacas support
Development: Completed, Upstreaming: TBD
Total 43 projects (04-04-2024, wiki)
Development (04-04-2024)
TBD - 8 (18.60%)
ONGOING - 2 (4.65%)
COMPLETED - 33 (76.75%)
Upstreaming (04-04-2024)TBD - 13 (30.23%)
ONGOING - 10 (23.26%)
COMPLETED - 20 (46.51%)
Updates on projects
Overall status
RFP Status
RFP# | Topic | WG | Phase |
GCC SPEC2017 Optimization | Toolchain | Phase 3: Bidding open | |
OpenOCD upstreaming | Debug and Profiling | Phase 3: Bidding open | |
LLVM CI Improvements | Dev Infra/ Toolchain | Phase 6: Execution | |
TCG Translation for RVV Instructions | Simulators/ Emulators | Phase 4: Signing in progress Vendor and (LF Signature) | |
Rust Tier-1 Support for RV64 Linux | Toolchain | Phase 6: Execution | |
libjpeg-Turbo | System Libraries | Phase 4: Bid Review & Award Contract | |
Multimedia Enablement | System Libraries | Phase 6: Execution | |
Accelerate Go Runtimes | Language Runtimes | Phase 6: Execution |
Eclipse Temurin 21 and 22 Available on RISC-V
RISE and Adoptium Collaboration
Significant advancement in the Java ecosystem: the availability of Eclipse Temurin 21 on RISC-V.
Adoptium Blog: Eclipse Temurin 21 and 22 Available on RISC-V
RVI Blog: Java 21 and 22 Now Available on RISC-V: A Collaboration Between RISE and Eclipse Adoptium
RISE Linkedin Post (Working to create a blog page)
GCC Microcontroller CI Proposal
RISE Build Farm: GCC Microcontroller Target CI proposal from the RISE DevInfra team.
Add support for testing microcontroller architectures that don’t support all the g extensions. Some possible extensions to test would be:
rv32imac-ilp32
rv64imac-lp64
rv32imc-ilp32
rv64imc-lp64
rv32imc_zicsr_zifencei-ilp32
rv64imc_zicsr_zifencei-lp64
Additional combinations with various bitmanip extensions can also be tested.
Request: 5,760€ per year
Projects need these boards are:
Java/Adoptium: 15 boards to build and test Java 11, 17, 21, and 22. It runs for 2000 hours/week of building and testing
Go: 5 boards, used exclusively for CI
AlmaLinux/RockyLinux: 5 boards each, used to build their distributions on RISC-V
The boards available on Scaleway are likely small to productize it, but they can allow to bootstrap the process.
WG Opens/challenges
Open Discussion
System Libraries WG issues reported over email
No Wiki updates in the last 4-months
Unaware of where the WG meeting recordings and meeting minutes are stored
Google folder does not have the latest meeting minutes/recordings
AIs
Follow up on Language Runtime proposal budget
Updated Deep Dive Schedule- SEE APENDIX
28 Mar 2024
Michelle Martineau, The Linux Foundation
Erich Hanke, AMD
Ming-Yu Hung (MTK)
Sunil V L, Ventana
Mark Zhuang, SpacemIT
Andrei Warkentin, Intel
Heinrich Schuchardt, Canonical
Terje Bergstrom, NVIDIA
Gordan Markus, Canonical
Ludovic Henry, Rivos
Daniel Barboza, Ventana
Simon Harvey, Imagination
Barna Ibrahim, Rivos
Brian 'redbeard' Harrington, Redhat
David Weaver, Akeana
Jian Zhang, BOSC
Fei Wu, intel
Kumar Sankaran, Ventana
Paul Walmsley, SiFive
Victor Costan, Google
Alexey Bataev, SiFive
Nathan Egge, Google
Tim Ouyang, Andes
Agenda
Welcome New Member: Tenstorrent
Compilers and Toolchains Deep Dive led by Jeff Law
RFP Quick Glance & RP008 update
WG Opens
Future topics: WG Opens/challenges
AIs from last week
Compilers and Toolchains Deep Dive – RP008
Rivos has identified cases where icounts for spec2017 on RISC-V are at least 10% higher than on AArch64
Contractor to evaluate those cases for phase 1
Identify issues driven by ISA differences
Identify cases where compiler could be doing better along with broad approach to fixing – for phase 2 work
Compilers and Toolchains Deep Dive – GCC Status
GCC-14 release likely in May
Initial release with vector support
Many other code generation improvements, extension support, etc
Many things already queued up for gcc-15
Leads to same problem we had last year – a year delay between code going into the tree and the actual release
Likely resulting in a optimization coordination branch again
10 are already at development completion, 8 in progress, 1 under investigation, 1 not started
6 already upstreamed (ie, in gcc-14), rest are on hold waiting for development window to reopen
Compilers and Toolchains Deep Dive – LLVM Status
LLVM 18 release earlier this month
New cores supported (primarily from SiFive)
RV32E/RV64E support
Register pressure sensitive scheduling
Some TLSDESC support landing, early support for pointer masking
Arch string ordering constraints relaxed!
TypePromotion pass enable for RISC-V
Several extensions moved out of experimental state
Usual ongoing performance improvements
Compilers and Toolchains Deep Dive – LLVM Status
LLVM Projects identified for 1H2024 – only 6, like more that should be added to the page.
CRC – looks like Joe Faulls (Imagination Technologies) has picked this up from Mikhail. MR filed and is undergoing review.
X264 if-conversion. 2 of 3 blockers resolved. Still hashing through one notable issue in the generic if-conversion code
Stack Clash – Just getting started, engineer’s 1st LLVM project
Shrink Wrapping – Just getting started.
Overly aggressive if-conversion in some cases?
Compilers and Toolchains Deep Dive – MISC
Should we make LLVM and GCC distinct projects under the RISE umbrella, with Craig or someone else tied into the LLVM community as the leader for the LLVM effort going forward?
We’ve generally avoided regularly scheduled meetings in this WG per requests from various developers – would a one-a-month “office hours” be useful for RISE members?
RFP Contract Status Update
RFP# | Topic | WG | Phase |
OpenOCD upstreaming | Debug and Profiling | Phase 3: Bidding open | |
LLVM CI Improvements | Dev Infra/ Toolchain | Phase 6: Execution | |
TCG Translation for RVV Instructions | Simulators/ Emulators | Phase 4: Signing in progress Vendor and (LF Signature) | |
Rust Tier-1 Support for RV64 Linux | Toolchain | Phase 4: Signing in progress Vendor and (LF Signature) | |
libjpeg-Turbo | System Libraries | Phase 4: Bid Review & Award Contract | |
Multimedia Enablement | System Libraries | Phase 6: Execution | |
Accelerate Go Runtimes | Language Runtimes | Phase 6: Execution |
Update From the Board -
RP008: Tool Chain WG: GCC Spec Optimization Proposal
Recommendation is Phase 1 Analysis of SPEC
Architectural deficiencies in RISC-V. Identify cases which are primarily driven by differences in the ISA. For example, AArch64 performing better because it has a richer set of addressing modes for vector instructions and similar kinds of issues. Ideally this section would identify the component of spec2017 that is affected, show a C/C++/Fortran code fragment for the problem and the corresponding AArch64 and RISC-V code for the fragment.
Codegen weaknesses in GCC. Each item should contain a code fragment from the benchmark, a reasonable standalone testcase (compilable, doesn't need to run), and analysis of what the compiler would need to do to improve the code. Assembly code for AArch64 and RISC-V and proposed/target code for RISC-V would be recommended.
Phase 2 will be a separate RFP and bidding following the finding of Phase 1.
Goal Publish RFP008 on April 2nd.
Working Groups Opens / Challenges
Open Discussion
Future Topics Parking Lot
Please add topic to be discussed for future meetings
Insert
AIs for this week
Insert
AIs from last week
Insert
21 Mar 2024
Michelle Martineau, The Linux Foundation
Erich Hanke, AMD
Ming-Yu Hung (MTK)
Sunil V L, Ventana
Mark Zhuang, SpacemIT
Andrei Warkentin, Intel
Heinrich Schuchardt, Canonical
Terje Bergstrom, NVIDIA
Gordan Markus, Canonical
Ludovic Henry, Rivos
Daniel Barboza, Ventana
Simon Harvey, Imagination
Barna Ibrahim, Rivos
Brian 'redbeard' Harrington, Redhat
David Weaver, Akeana
Jian Zhang, BOSC
Fei Wu, intel
Kumar Sankaran, Ventana
Paul Walmsley, SiFive
Victor Costan, Google
Alexey Bataev, SiFive
Nathan Egge, Google
Tim Ouyang, Andes
Agenda
Firmware Deep Dive led by Sunil V L
WG Opens
Future topics: WG Opens/challenges
AIs from last week
Firmware Deep Dive led by Sunil V L
2024 Project Status update
AIA, Smmtt etc
Upstreaming complete.
PoC available from Andes
Andes hosting and maintaining github
Dependency on RVI specs (MPXY/RPMI) to upstream.
More work required to enable features
PoC available.
Dependency on frozen spec to upstream.
2024 Project Status update Cont.
AIA, Smmtt etc
Upstreaming complete.
PoC available from Andes
Andes hosting and maintaining github
Dependency on RVI specs (MPXY/RPMI) to upstream.
More work required to enable features
PoC available.
Dependency on frozen spec to upstream.
2024 Project Status update Cont.
Helps vendors to support ACPI easily.
RFC patches sent.
Major refactoring of DynamicTablesPkg required to support other architectures.
Maintainers started new staging branch to refactor.
Upstreaming RISC-V support - probably late 2024 or 2025.
In progress.
Dependency on UPL specification
First version of the patch series sent
2024 Project Status update Cont.
Showcased this RISE effort in UEFI DevCon & Plugfest
PoC available at https://github.com/intel/FdtBusPkg
Opens/Challenges
Ex: MultiArchUefiPkg.
Significant organization overhead to maintain in member’s github.
There may not be any upstream repo at all.
Getting requests from members for RISE github
Need TSC help to clearly document the RISE policy for github repo.
RFP Contract Status Update
RFP# | Topic | Tech Leads | Phase |
LLVM CI Improvements | Dev Infra/ Toolchain | Phase 6: Execution | |
TCG Translation for RVV Instructions | Simulators/ Emulators | Phase 3: Bid selected, Awaiting vendor info | |
Rust Tier-1 Support for RV64 Linux | Toolchain | Phase 4: Signing in progress (LF Signature) | |
libjpeg-Turbo | System Libraries | Phase 4: Bid Review & Award Contract | |
Multimedia Enablement | System Libraries | Phase 6: Execution | |
Accelerate Go Runtimes | Language Runtimes | Phase 6: Execution |
RFPs Governing Board Approval
RP007: Debug & Profiling WG: OpenOCD Upstreaming Proposal
Goal: Publish RFP March 25, 2024
RP008: Tool Chain WG: GCC Spec Optimization Proposal
Green light to explore. Review the proposal 3/28/204
Description: GCC auto-vectorization has come a long way. We have recently gotten to the point where SPEC will reliably run correctly with auto-vectorization enabled. With this solid base, we need to spend effort through code generation issues.
Goal: Publish RFP March xx, 2024
WG Opens
Future topics: WG Opens/challenges
AIs from last week
14 Mar 2024
Evan Harrison, The Linux Foundation
Andrew de los reyes (Adlr), Rivos
Barna Ibrahim, Rivos
Brian 'redbeard' Harrington, Redhat
Daniel Barboza, Ventana
Erich Hanke, AMD
Jeff Law, Ventana
Jian ZHANG, Beijing Institute of Open Source Chip
Kumar Sankaran, Ventana
Mason Li, MediaTek
Nathan Egge, Google
Paul Walmsley, SiFive
Terje Bergstrom Nvidia
Tim Ouyang, Andes
Victor Costan, Google
Agenda
Reminder: No deep dive for this week
RFP Status Update
WG Opens
Future topics: WG Opens/challenges
AIs from last week
Appendix
2024 Deep Dive Schedule
Please review and inform Evan of any changes needed
RFP contract Progress
Contract vendors send Tech Leads & RFP Reporting mailing Biweekly reports
Please request this cadence when you start engaging with your contractor
Tech Leads provide Monthly updates to TSC (Report)
Working group updates to the board will include the RFP updates
RFP Contract Status Update
RFP# | Topic | WG | Phase |
LLVM CI Improvements | Dev Infra/ Toolchain | Phase 6: Execution | |
TCG Translation for RVV Instructions | Simulators/ Emulators | Phase 3: Bid selected, Awaiting vendor info | |
Rust Tier-1 Support for RV64 Linux | Toolchain | Phase 4: Signing in progress (LF Signature) | |
libjpeg-Turbo | System Libraries | Phase 4: Bid Review & Award Contract | |
Multimedia Enablement | System Libraries | Phase 6: Execution | |
Accelerate Go Runtimes | Language Runtimes | Phase 6: Execution |
Working Groups Opens / Challenge
Not a distro-integration problem, in the RVI profiles discussion, there has been a lot of effort put into the idea of vertical profiles. There hasn't been a lot of discusssions about horizontal profiles. What happens when we get to the place where I have purchased my motherboard and I have to choose between chips from intel, ventana, etc... This is a discussion that needs to happen, there isn't a concrete answer right now.
The platform spec - there should be one single distro image for all platforms, this is the high level answer currently.
Future Topics Parking Lot
Please add topic to be discussed for future meetings
N/A
AIs for this week
N/A
AIs from last week
07 Mar 2024
MichelleMartineau, The Linux Foundation
Tomas Evensen, AMD
Ming-Yu Hung (MTK)
Anup Patel, Ventana
Heinrich Schuchardt, Canonical
Gordan Markus, Canonical
Ludovic Henry, Rivos
Daniel Barboza, Ventana
Simon Harvey, Imagination
Barna Ibrahim, Rivos
Brian 'redbeard' Harrington, Redhat
David Weaver, Akeana
Jian Xiong, Alibaba
Fei Wu, intel
Kumar Sankaran, Ventana
Paul Walmsley, SiFive
Victor Costan, Google
Nathan Egge, Google
Tim Ouyang, Andes
Andrew de los reyes (Adlr), Rivos
Jeff Law
Ruinland, Andes
Agenda
New Member Application in Progress- Bytedance
Distro and Integration Deep Dive- Brian (RedBeard) Harrington
RFP - status; OpenOCD; GCC
WG Opens
Future topics: WG Opens/challenges
AIs from last week
Distro and Integration Deep Dive- Brian (RedBeard) Harrington
Charter:
Work is focused on two kinds of projects.
The champion identifies the directions/projects
The WG works to prioritize, unravel dependencies on other WGs or file projects in other WGs
Issues common to multiple Linux distros (e.g. bugs/features in common packages)
Enabling a specific Linux distro, provided the Linux distro has a champion/vendor.
Ongoing work / requests:
Establish a new kernel + old glibc baseline for use in Python packaging
Ludovic (Rivos) has successfully made inroads with contributors to Alma Linux
Unfortunately, due to the packaging policies on many RPM derived distros physical systems are needed for distributable packages.
Establish support for SecureBoot on RISC-V
Heinrich (Canonical) created a patch set in 2021 which Red Hat has failed to merge. Recently Redbeard updated the patch set and has increased the pressure internal to Red Hat to force feedback.
Upcoming work / requests:
As chair for the WG I have been approached by a number of individual contributors and community members who are seeking a free/libre/open source FPGA toolchain which can be used in continuous integration systems. This is related to the prior citation about the need for physical systems.
I have encouraged those reaching out to engage both the relevant mailing lists as well as attend the WG meeting so that I am not a critical mutex on all discussions.
Challenges:
As with other groups, problems with attendees getting access to the mailing list and calendar invites.
RFP - status; OpenOCD; GCC
RFP# | Topic | WG | Phase |
RP006 | LLVM CI Improvements | Dev Infra/ Toolchain | Phase 5: Contract signed, work can begin. |
RP005 | TCG Translation for RVV Instructions | Simulators/ Emulators | Phase 3: Bid selected, Awaiting vendor info |
RP004 | Rust Tier-1 Support for RV64 Linux | Toolchain | Phase 4: Signing in progress (LF Signature) |
RP003 | libjpeg-Turbo | System Libraries | Phase 4: Bid Review & Award Contract |
RP002 | Multimedia Enablement | System Libraries | Phase 5: Contract signed, work can begin. |
RP001 | Accelerate Go Runtimes | Language Runtimes | Phase 5: Signed. Work started |
NOTE: RFP Status and budget can be found HERE under the Approved tab.
RFP Process and Timelines
Phase | Tasks | Duration |
Phase 1 Phase 2 | Conception - TSC discussions, RFP document collaboration Approval - Reviewers Sign off; TSC approval; Board approval on budget; RFP document finalized | Undetermined |
Phase 3: | Publication & Bidding ( Bidding form) - TL Request PMO to publish; - PMO Publish on Wiki inform the outreach team. | Bidding period 2 weeks. (Can be 3-4 weeks if project is complex) |
Phase 4: | Bid Review - PMO will inform TLs bidding is closed and make a selection reminder - TL set up a meeting or email review with TSC chairs and make a selection. - TL to Inform TSC & PMO - TL to communicate with the selected bidders. RFP Comms email - PMO will send rejection emails to Bids not selected copying TLs. | 2 weeks for Selection 1 week to inform |
Phase 5: | Contract Execution - PMO Execute the contract based on the information collected | 1- 2 weeks (If no questions or redlines from the contractor) |
Phase 6: | Execution - TL Overseeing the work. Forwarding weekly reports to working group? Periodic updates to TSC (discuss) - A TSC Chair (Barna can help) Approval to pay vendors should be communicated to who will work with Larry and PMO for payment. |
|
WG Opens
Ensuring WG leads have administrator access to their WG mailing lists
Open Discussion
Future topics: WG Opens/challenges
AIs from last week
Follow up about FW Op-Tee Solutions
29 Feb 2024
Evan Harrison, The Linux Foundation
Erich Hanke, AMD
Daniel Barboza, Ventana
Barna Ibrahim, Rivos
Brian 'redbeard' Harrington, Redhat
David Weaver, Akeana
Paul Walmsley, SiFive
Terje Bergstrom, Nvidia
Victor Costan, Google
Sunil VL, Ventana
Nathan Egge, Google
Tim Ouyang, Andes
Andrew de los reyes (Adlr), Rivos
Jeff Law
Agenda
System Libraries Deep Dive led by Nathan Egge
GCC SPEC analysis work
RFP Updates
WG Opens
Future topics: AIs from this week
AIs from last week
Appendix
2024 Deep Dive Schedule
Please review and inform Evan of any changes needed
System Libraries Deep Dive
System Libraries Deep Dive 2024-February-29
Toolchain performance plan?
Assign owner for each gap
Quickly triage problem
Identify fixes into two categories:
Jeff to triage these issues that him and his team runs into. Adlr will assist with this effort after Jeff has triaged.
Can be fixed quickly by RISE member company
Otherwise, can add to RFP for toolchain work
How anyone run these by Greg? - Paul
GCC compiler gaps
GCC riscv64 vs GCC aarch64-SVE
GCC riscv64 vs LLVM riscv64
Note: Some LLVM tests don’t run
ImageMagick was -30%, but fixed with Zfa
LLVM compiler gaps
riscv64 LLVM vs riscv64 GCC
Note: some LLVM tests didn’t run
Generally see scalar code is behind
RFP Contract Status Update
RFP# | Topic | WG | Phase |
RP006 | LLVM CI Improvements | Dev Infra/ Toolchain | Phase 4: Contract Sent |
RP005 | TCG Translation for RVV Instructions | Simulators/ Emulators | Phase 3: Publication & Bidding |
RP004 | Rust Tier-1 Support for RV64 Linux | Toolchain | Phase 3: Contract |
RP003 | libjpeg-Turbo | System Libraries | Phase 4: Bid Review & Award Contract |
RP002 | Multimedia Enablement | System Libraries | Phase 4: Contract sent |
RP001 | Accelerate Go Runtimes | Language Runtimes | Phase 5: Signed. Work started |
22 Feb 2024
Michelle Martineau, The Linux Foundation
Heinrich Schuchatdt, Canonical
Erich Hanke, AMD
Daniel Barboza, Ventana
Barna Ibrahim, Rivos
Mark Zhuang, Smacemit
Brian 'redbeard' Harrington, Redhat
David Weaver, Akeana
Paul Walmsley, SiFive
Terje Bergstrom, Nvidia
Victor Costan, Google
Gordan Markus, Canonical
Fei Wu, Intel
MyungJoo Ham, Samsung
Sunil VL, Ventana
Kumar Sankaran, Ventana
Steve Wanless, Redhat
Robin Randhawa, SiFive
Anup Patel, Ventana
Nathan Egge, Google
Andrei Warkentin, Intel
Simon Harvey, Imagination
Ludovic Henry, Rivos
Tim Ouyang, Andes
Agenda
Language Runtimes Deep Dive led by Ludovic Henry
RFP - Process; Status Update
Requiring RVWMO minimum target for development projects
Xen interest?
WG Opens
Future topics: WG Opens/challenges
AIs from last week
Language Runtimes Deep Dive led by Ludovic Henry
Optimization Guide is Live!
Get better address than
https://riscv-optimization-guide-riseproject-c94355ae3e6872252baa952524.gitlab.io/Working with Michelle on that
Please contribute!
Next steps
RFP: Go Runtime
Assembler and compiler
Rotation, atomics, intrinsics, and more
Support for Bitmanip
Compiler optimizations
Contract is still in process of being signed
Ongoing contributions:
Board farm
Eager to see MILK-V Oasis in action
Need to sync up with Distribution WG
Need for Adoptium, Go Runtime, AlmaLinux/RockyLinux (for Python)
LicheePi/VF2 enough for some workloads, not enough for others
In discussions with AlmaLinux and RockyLinux to understand what they would need (sizing, access)
Python packaging
Upstream projects can’t package on RISC-V today
Limitation of Python packaging tools
We need to package and distribute Python packages
We have a WIP to get it based on Ubuntu 22.04
It’s being done internally at Rivos for nowWill push to RISE in the coming weeksAll based on GitLab
Java 11 backport
Goal is to get it packaged and tested on public CI by end of month
Landed yesterday with openjdk/riscv-port-jdk11u:309291f1
Going to setup Adoptium CI for that
Java 17, 21 release
Approved by PMC and Steering Comittee
Adoptium is very eager to get it done
Stuck on having HW for running TCK
VF2 board on a desk is not an option at the moment…Working with Eclipse Foundation to make sure they have the resources and know-how to set it upBoard farm would be ideal here; Need for 7-10 LicheePi/VF2 for public + TCK CI
Order of priority: 21, 17, 11
V8 & Android
https://chromium-review.googlesource.com/c/v8/v8/+/5309945 - Approved and merged
Next: android_toolchain NDK to support RISCV64
Talking to Nathan about that
ISCAS has done the work to port V8 to Android RISC-V
Open Floor
RFP - Process; Status Update
RFP# | Topic | WG | Comments |
RP027 | GCC Autovec | Toolchain | Needs proposal |
RP010 | GCC Shadow Stack Support | Toolchain | Needs proposal |
RP023 | OpenOCD Upstreaming | Debug and Profiling | Proposal ready for TSC commit |
RP017 | Valgrind for RISC-V | Debug and Profiling | Needs proposal |
TBD / RP026 | More audio/video codec optimization | System Libraries | Needs splitting into individual projects and proposals for each |
| Many others … |
|
|
Requiring RVWMO minimum target for development projects
Apropos of the broader question of what profile we mandate for our development work
Recently there’s been more discussion about WMO and TSO
Most RV designs are RVWMO (we believe)
Are we all agreed that any development work that we are involved in that involves multithread concurrency should target RVWMO?
This would ensure they work correctly on RVTSO
But the converse isn’t true
Xen interest?
Open Discussion
WG Opens
Future topics: WG Opens/challenges
AIs for this week:
Define process for bidder questions and publication.
Flesh out timeline for RFP process
AIs from last week
ACTION: Paul to look into monthly cost of GKE
ACTION: Discuss with Yocto if they want to become a member: Jefro is happy to support the discussion with Yocto
15 Feb 2024
Evan Harrison, The Linux Foundation
Erich Hanke, AMD
Heinrich Schuchatdt, Canonical
Brian 'redbeard' Harrington, Redhat
Daniel Barboza, Ventana
David Weaver, Akeana
Paul Walmsley, SiFive
Terje Bergstrom, Nvidia
Victor Costan, Google
Kumar Sankaran, Ventana
Steve Wanless, Redhat
Andrew de los Reyes (Adlr), Rivos
Jeff Law, Ventana
Jeffrey Osier-Mixon (Jefro), Red Hat
Mason Li, MediaTek
Nathan Egge, Google
Tim Ouyang, Andes
Trilok Soni, Qualcomm
Agenda
Developer Infrastructure Deep Dive led by Paul Walmsley
Association Collaborations - how to organize and discuss
Adoptium, AGL, Yocto, ?
WG Opens
Future topics: WG Opens/challenges
AIs from last week
Appendix
2024 Deep Dive Schedule
Please review and inform Evan of any changes needed
Topics
Developer Infrastructure WG Introduction & Vision
Build Farm
2023Q4 Review
2024Q1 Midpoint Update
Next Steps
Board Farm
Developer Tools
Challenges
Developer Infrastructure WG Introduction
Charter
The Developer Infrastructure WG focuses on software and services to support open-source RISC-V developers - both RISE members and the broader open-source community.
Co-chairs
Barna Ibrahim (Rivos)
Paul Walmsley (SiFive)
TSC Contact
Nathan Egge (Google)
Developer Infrastructure WG Vision
Three mutually-supporting projects
Integration of set of software and user space tools that are necessary to cross build or test.
RISE Build Farm (Active)
RISE Board Farm (In planning)
RISE Developer Tooling (In planning)
Goal
Provide robust development infrastructure and tools to RISC-V developers
RISE Build Farm: Introduction
Objective
Cross-build and test (in simulation) RISC-V ports of key open source software
Running in Google Cloud
Status
Build Farm growing quickly…
Four active projects spanning three RISE work groups
100% growth from 2023Q3
… but need to grow faster!
Build Farm: 2023Q4 Review
Broadened the administration base
Björn Töpel (Rivos) now helping out with general admin tasks
Two existing projects from 2023Q3 still running
Linux kernel and gcc post-commit CI
Two new projects added in December 2023
Patrick O’Neill & Edwin Lu (Rivos)
Ludovic Henry (Rivos)
Improved policies and administration documentation
Example: Project Proposal Form
Build Farm: 2024Q1 Midpoint Update (1 of 2)
Kernel CI instances converted to use GKE - Björn Töpel (Rivos)
Dealing with technical issues (to be discussed with Google)
Costly, but well-integrated with Github Runners and offers easier scaling
Still experimental and under review
Kernel CI doing more work
New projects in progress
Patrick O’Neill & Edwin Lu (Rivos)
GCC/LLVM toolchain fuzzing
Build Farm: 2024Q1 Midpoint Update (2 of 2)
Broadening the administration base
Brian “redbeard” Harrington (Red Hat) has expressed interest in helping
Instance power control now available
Should reduce spend for intermittent workloads (e.g. OpenJDK CI)
Discussions in progress with LF IT on support options
GKE support questions
Build farm management assistance
Build Farm Next Steps for rest of 2024Q1
Add more Build Farm projects
Attend other WG meetings to solicit other projects
Continue to improve operations
Continue improving policies & procedures
Continue improving documentation (wiki & internal)
Continue investigating external IT assistance
Continue recruiting more Build Farm Leads
Enable webhook-driven builds
Start tracking our admin service metrics
Get cloud credit details from LF IT/Google Cloud
Drive greater efficiency
Review GKE value
Implement power control on lightly-used instances
Investigate spot instances
RISE Board Farm: Introduction
Objective
Many use cases: OpenJDK, Linux distributions, kernel, Go(?) …
Provide a range of Linux-capable RISC-V boards to run functionality and performance tests on CI-generated code
Investigate future feasibility of providing developer access to boards
Curtis Galloway (Google) coordinating
Status: Still very early days
Discussions underway with RVIA, OSUOSL
RISE Developer Tools: Introduction
Objective
Ideally combines cross and native development environment and native system software and userspace
Provide a full Linux system image build, boot, and development environment for use on both simulators (QEMU) and RISC-V hardware
Discussed options so far: Nathan’s Gentoo build and OpenEmbedded
No one yet coordinating
Challenges
Improve administration turnaround time for creating new instances, etc.
Better administrator attendance at our WG meetings
Drive more activity on the Board Farm and Developer Tools projects
Looking for help to drive the Developer Tools effort forward
Need more build projects and project owners!
Please help
Credits
Barna Ibrahim (Rivos): Co-chair
Björn Töpel (Rivos): Kernel CI Build Farm Project Admin, Build Farm Lead, Build Farm Administrator
Curtis Galloway (Google): Board Farm Lead
Edwin Lu (Rivos): Toolchain Build Farm Project Admin
Ludovic Henry (Rivos): Language Runtimes Build Farm Project Admin
Patrick O’Neill (Rivos): Toolchain Build Farm Project Admin
Paul Walmsley (SiFive): Co-chair
Language Runtime WG Adoptium Membership Proposal
Only fully Open Source Java vendor - Alignment with RISE Goals
OSS test suite used by Ubuntu and Redhat JDK
RISE Adoptium Sponsorship Benefits
Deeper engagement and visibility with Java Community
Adoptium is one of the most used Java distribution
Provide machines to Adoptium (Build farm, Board farm)
Association Collaborations
Only fully Open Source Java vendor - Alignment with RISE Goals
OSS test suite used by Ubuntu and Redhat JDK
Board approved supporting via CI services and perhaps get RISE logo listed
Discussions around Adoptium, AGL, Yocto
ACTION: Discuss with Yocto if they want to become a member: Jefro is happy to support the discussion with Yocto
How should we propose and track these?
Any RISE spend should ensure value for money
RFP Contract Status Update
RFP# | Topic | WG | Phase | Status |
RP006 | LLVM CI Improvements | Dev Infra/ Toolchain | Phase 3: Publication & Bidding | Awarded |
RP005 | TCG Translation for RVV Instructions | Simulators/ Emulators | Phase 3: Publication & Bidding | Bidding Closed |
RP004 | Rust Tier-1 Support for RV64 Linux | Toolchain | Phase 3: Bidding Review | Awarded. |
RP003 | libjpeg-Turbo | System Libraries | Phase 4: Bid Review & Award Contract | Waiting for Bid/SOW from Engineer |
RP002 | Multimedia Enablement | System Libraries | Phase 4: Bid Review & Award Contract | Contracts Out for Signature |
RP001 | Accelerate Go Runtimes | Language Runtimes | Phase 4: Bid Review & Award Contract | Contracts Out for Signature |
Working Groups Opens / Challenges
Open Discussion
Future Topics Parking Lot
Please add topic to be discussed for future meetings
AIs for this week
ACTION: Paul to look into monthly cost of GKE
ACTION: Discuss with Yocto if they want to become a member: Jefro is happy to support the discussion with Yocto
08 Feb 2024
Gordan Markus, Canonical
Michelle Martineau, The Linux Foundation
Erich Hanke, AMD
Heinrich Schuchatdt, Canonical
Tomas Evensen, AMD
Jian Xiong, Alibaba
Barna Ibrahim, Rivos
Fei Wu, Intel
Brian 'redbeard' Harrington, Redhat
Daniel Barboza, Ventana
David Weaver, Akeana
Paul Walmsley, SiFive
Terje Bergstrom, Nvidia
Simon Harvey, Imagination
Robin Randhawa,SiFive
Mark Zhuang, SpacemIT
Ludovic Henry, Rivos
Victor Costan, Google
Kumar Sankaran, Ventana
Steve Wanless, Redhat
Anup Patel, Ventana
Agenda
Simulator Emulator Deep Dive led by Daniel Barboza
Debug & Profiling Deep Dive Led By Fei Wu
RISC-V Optimization Guide Publication
RFP: RP004 Review and Status
WG Opens/challenges
Firmware: OP-TEE WG Opens
AIs from last week
Appendix
2024 Deep Dive Schedule
Please review and inform Evan of any changes needed
Simulator Emulator Deep Dive led by Daniel Barboza
WG 2023 wrap-up
WG 2024 item status
Projects not yet started
Projects in progress, not yet sent for review
Projects under review
2023 wrap-up:
SE_01_001 - QEMU linux-user riscv_hwprobe syscall support
SE_01_002 - QEMU Virtual IRQ and IRQ filtering support
SE_01_014 - QEMU query-cpu-model-expansion API
SE_02_001 - QEMU Vector crypto support
SE_01_009 - QEMU ACPI support for AIA
SE_01_010 - QEMU ACPI support for PLIC
SE_01_011 - QEMU RVA22 profiles support
SE_01_005 - QEMU PCIe passthru on x86 host
Projects completed and available in QEMU 8.0 (launched Dec 2023):
Projects completed and available in QEMU 9.0 (to be released April 2024):
Projects not completed in time and pushed to 2024:
2024 projects - not yet started
Tracker project
Bidding ends Feb 2nd
RISE contacts: Max Chou (Si-Five) and Daniel Barboza (Ventana)
SE_01_003 - QEMU WorldGuard support
SE_01_016 - QEMU linux-user hwprobe kernel parity
SE_01_021 - QEMU RVA23 profile support
SE_02_004 - QEMU RVV performance enhancements
2024 projects - in progress, not sent for review
Community project (Starfive)
Community project (Starfive)
SE_01_017 - QEMU ACPI SPCR support for RISC-V
SE_01_018 - QEMU ACPI PPTT support for RISC-V
SE_01_019 - QEMU ACPI SRAT/SLIT(NUMA) support for RISC-V
SE_01_020 - QEMU SMBIOS support for RISC-V
2024 projects - upstream progress ongoing
Debug & Profiling Deep Dive Led By Fei Wu
2023 projects
Code ready for running integer part of RVV instructions, but in slow review process
v7 patch submitted, hoping get pushed soon
Technical ready, but rv32 on llvm is inactive, not only asan
DP_04_001 - Userspace Cycle/Instret access (Done)
DP_01_002 - Evaluate GDB status on RISC-V (Done)
DP_02_002 - Evaluate LLDB status on RISC-V (Done)
DP_00_001 - Valgrind vector support
DP_01_003 - GDB Simulator - Add Zc support
DP_05_001 - Address Sanitizer
2024H1 new projects
DP_04_002 - Perf event discovery/encoding from json file (Dev Done)
DP_04_003 - Perf CTR (equivalent of x86 LBR) support (Dev Done)
DP_04_004 - Perf CTR call stack mode support (WIP)
DP_07_003 - DynamoRIO drcachesim & drcov support (WIP)
DP_07_004 - DynamoRIO V extension support
DP_07_005 - DynamoRIO enable remaining tests that are also supported by AArch64
DP_07_006 - DynamoRIO RISC-V specific documentation
Software performance regression CI Infrastructure (Discussion)
Currently, many software optimizations on RISC-V are performed on QEMU or non-representative hardware with limited resources. These optimizations are based on the developer's interpretation of the features, which may not align with the actual hardware or may vary across different hardware.
Software performance regressions are a common occurrence and it's crucial that we identify and fix them at the earliest possible stage.
Problem to solve
Linaro extends LKFT (Linaro Kernel Functional Test) functionalities to include automatic detection and reporting of performance regressions in 2021
Test on real hardware and focus on key software, easy to scale to other software
RFP?
RISC-V Optimization Guide Publication
TSC Optimization Guide discussion; Agreement on dropping the vendor languages for the release - Merged.
This is a living document and will continued to be updated
Publish the Optimization Guide 02/09/2024
Follow up with RVI leadership on the published link.
RFP Status - Phase 3
RFP# | Topic | WG | Phase | Status |
RP006 | LLVM CI Improvements | Dev Infra/ Toolchain | Phase 3: Publication & Bidding | Bidding Closed |
RP005 | TCG Translation for RVV Instructions | Simulators/ Emulators | Phase 3: Publication & Bidding | Bidding Closed |
RP004 | Rust Tier-1 Support for RV64 Linux | Toolchain | Phase 3: Bidding Review | Bidding Closed |
RFP Status - Phase 4 Contract
RFP# | Topic | WG | Phase | Status |
RP003 | libjpeg-Turbo | System Libraries | Phase 4: Bid Review & Award Contract | Waiting for Bid/SOW from Engineer |
RP002 | Multimedia Enablement | System Libraries | Phase 4: Bid Review & Award Contract | Contracts Out for Signature |
RP001 | Accelerate Go Runtimes | Language Runtimes | Phase 4: Bid Review & Award Contract | Contracts Out for Signature |
RFP Status - Phase 1: Conception
RFP# | Topic | WG | Comments |
RP027 | GCC Autovec | Toolchain | Needs proposal |
RP010 | GCC Shadow Stack Support | Toolchain | Needs proposal |
RP023 | OpenOCD Upstreaming | Debug and Profiling | Proposal ready for TSC commit |
RP017 | Valgrind for RISC-V | Debug and Profiling | Needs proposal |
TBD / RP026 | More audio/video codec optimization | System Libraries | Needs splitting into individual projects and proposals for each |
| Many others … |
|
|
Firmware: OP-TEE WG Opens
Rationale
Risk of fragmentation
Multiple orgs are already working on OP-TEE ports to RV64
5 known so far, probably more exist
The fragmentation scope is likely to increase over time
Especially as ‘new’ security architecture features gain traction
Eg WorldGuard, SMMTT et al
Technical challenges
OP-TEE presents some technical challenges for RISC-V
These need structured debate, design and development
Eg OP-TEE’s pre-emption model is tricky for RISC-V
OP-TEE will probably have M-Mode dependencies
Strategic issues
Upstream OP-TEE does not have a RISC-V maintainer
OP-TEE is fundamentally an Arm led initiative
A fragmented upstreaming effort will benefit no one
Logistical challenges
A public platform is needed
That supports relevant security features
Qemu virt is a natural default option
But similar risks apply here as well
Alignment needed on the nature of qemu support
Such alignment needs a RISC-V specific forum
RISE as a convergence point will mitigate these problems
Collaboration model outline
Key elements
An OP-TEE focus group within the Firmware WG
A public OP-TEE staging repository within RISE
A RISE hosted OP-TEE specific blog (or similar)
Workflow
Work definition and delegation
The focus group collaborates on work definition, delegation
Establishing dependencies on other WGs or projects, if any
Outputs are published externally on the blog
Promotes wider community awareness
Reduces the potential for any redundant work etc
Code contribution
Code contributions are ‘collected’ in the staging repository
From both RISE members and non-members
The focus group resolves any ‘impedance mismatches’
Between work in this repository, the OP-TEE upstream, etc
Upstream pull requests
Code contributions are suitably reviewed and processed
Upstream PRs are raised by relevant work owners
Upstream review
The focus group helps resolve upstream queries etc
Through to upstream inclusion of code
Questions and Concerns
OP-TEE focus group
Is there precedent for such a thing ?
Why can’t we just engage directly with upstream instead ?
What is the structure of such a focus group ?
What is the impact on other FW WG work ?
OP-TEE staging public code repository
Is there precedent for such a thing ?
We don’t want to create another upstream
Such a repository needs ownership and maintenance
Also a branching regime etc
OP-TEE public blog
Is there precedent for such a thing ?
This needs ownership and maintenance
Info on this blog needs to be ‘well formed’ - needs thought
Miscellaneous
The existing OP-TEE RFP may be used to kickstart work
Nuclei’s publicly available work can help too
WG Opens/challenges
AIs from last week
Rise optimization guide - Action: policy process for optimization guide, how do we implement this? [barna] Ludovic to send email. Finalize next week on the opens slide [done]
Toolchain/compilers — Fix sanitizers: Barna to take a look [barna] I will follow up with Jeff and add to the slide if there is update. [WIP]
Proposal to be sent out by Paul for TLSDESC [barna] great we can add this to AIs from last week.
OP-TEE to be added to next weeks TSC agenda. Paul and Robin [done]
Deeps for next week agenda both Fei and Daniels
01 Feb 2024
Jeff Law, Ventana
Evan Harrison, The Linux Foundation
Erich Hanke, AMD
Tomas Evensen, AMD
Barna Ibrahim, Rivos
Larry Wikelius, Qualcomm
Brian 'redbeard' Harrington, Redhat
Daniel Barboza, Ventana
David Weaver, Akeana
Paul Walmsley, SiFive
Terje Bergstrom, Nvidia
Jian Zhang, BOSC
Ludovic Henry, Rivos
Victor Costan, Google
Adlr (Andrew de los Reyes), Rivos
Jefro (Jeffrey Osier-Mixon), Redhat
Kumar Sankaran, Ventana
Mason Li, Mediatek
Steve Wanless, Redhat
Agenda
Board Representative Larry Wikelius (Qualcomm)
RISE Optimization Guide
RFP Prioritization Approvals
WG Opens
Future topics: WG Opens/challenges
AIs from last week
Appendix
2024 Deep Dive Schedule
Please review and inform Evan of any changes needed
Board Representative/Treasurer Larry Wikelius (Qualcomm)
RISE delivering results: Working Groups and RFPs
6 RFPs in 2023
We have a solid 2024 Pipeline with renewals and new member interest:
19 Members today (Launched w/ 13 in May, 2023)
Numerous other companies interested in joining
The Board is relying on TSC to identify the gaps and efforts needed
Window of opportunity is now to build on overall RVI momentum
The Board is confident of providing needed funding
RISC-V EU Summit [June 2024] is a key target for us to Showcase RISE Ecosystem contributions https://riscv-europe.org/summit/2024/
RISE 1 year anniversary
Critical to highlight key accomplishments
Emphasize EU engagements
Potential for additional membership outreach
RISE Optimization Guide
RFP Process
Phase 1: Conception
Tech Lead to work with Working Group and get support from the TSC
TSC to sign off to go to the Board
Phase 2: Approval (Board)
Phase 3: Publication & Bidding
LF PMs to help setting up the publication on wiki
Outreach team to post on Linkedin and mailing list
Phase 4: Bid Review & Award Contract
Tech Lead to review and provide recommendations for the award
Phase 5: Execution
LF PM to lead the contract execution
TL to with the contractor/developer to ensure work is done
Phase 6: End of Contract
TL to summarize the outcome to TSC;
Summary to the Board
RFP Status - Phase 3
RFP# | Topic | WG | Phase | Status |
RP006 | LLVM CI Improvements | Dev Infra/ Toolchain | Phase 3: Publication & Bidding | Bidding ends 02/02 |
RP005 | TCG Translation for RVV Instructions | Simulators/ Emulators | Phase 3: Publication & Bidding | Bidding ends 02/02 |
RP004 | Rust Tier-1 Support for RV64 Linux | Toolchain | Phase 3: Publication & Bidding | Bidding ends 01/26 |
Discuss RF004 on 2/7 7am TSC meeting; TL Robin Randhawa
RFP Status - Phase 4 Contract
RFP# | Topic | WG | Phase | Status |
RP003 | libjpeg-Turbo | System Libraries | Phase 4: Bid Review & Award Contract | LF Payment Set up |
RP002 | Multimedia Enablement | System Libraries | Phase 4: Bid Review & Award Contract | LF Payment Set up |
RP001 | Accelerate Go Run Times | Language Run Times | Phase 4: Bid Review & Award Contract | LF Payment Set up |
RFP Status - Phase 1: Conception
RFP# | Topic | WG | Comments |
| GCC Autovec | Toolchain |
|
| GCC Shadow Stack Support | Toolchain |
|
| Valgrind for RISC-V | Debug and Profiling |
|
|
|
|
|
RISE RFP Pipeline
Next 3 Projects to move forward with
RP007 OpenOCD Upstreaming
RP008 Port OP-TEE to RV64
Maybe RISE-internal?
RP013? RP016?
Working Groups Opens / Challenges
Potential RFPs from toolchain/compilers WG
Improve long-branch sequences
Fix sanitizers with user mode emulation and native (sv48)
TLSDESC support for GCC (LLVM has landed)
Cross-compilation of flang for LLVM?
GCC Spec Optimization
LLVM Spec Optimization
Open Discussion
Future Topics Parking Lot
Please add topic to be discussed for future meetings
Topic
AIs for this week
Topic
25 Jan 2024
Attendees
Jeff Law, Ventana
Michelle Martineau, The Linux Foundation
Erich Hanke, AMD
Tomas Evensen, AMD
Nathan Egge, Google
Barna Ibrahim, Rivos
Larry Wikelius, Qualcomm
Brian 'redbeard' Harrington, Redhat
Daniel Barboza, Ventana
David Weaver, Akeana
Paul Walmsley, SiFive
Terje Bergstrom, Nvidia
Simon Harvey, Imagination
Anup Patel, Ventana
Heinrich Schuchardt, Canonical
Jian Xiong, Alibaba
Jian Zhang, BOSC
Robin Ranhawa, SiFive
Ludovic Henry, Rivos
Ming-Yu hung, MediaTek
Victor Costan, Google
Agenda
Board Representative Larry Wikelius (Qualcomm)
Contractor project payments
Kernel and Virtualization Deep Dive led by Anup Patel
WG Opens
Future topics: WG Opens/challenges
AIs from last week
Appendix
2024 Deep Dive Schedule
Please review and inform Evan of any changes needed
Board Representative Larry Wikelius (Qualcomm)
RISE delivering results: Working Groups and RFPs
6 RFPs in 2023
We have a solid 2024 Pipeline with renewals and new member interest:
19 Members today (Launched w/ 13 in May, 2023)
Numerous other companies interested in joining
The Board is relying on TSC to identify the gaps and efforts needed
Window of opportunity is now to build on overall RVI momentum
The Board is confident of providing needed funding
RISC-V EU Summit [June 2024] is a key target for us to Showcase RISE Ecosystem contributions https://riscv-europe.org/summit/2024/
RISE 1 year anniversary
Critical to highlight key accomplishments
Emphasize EU engagements
Potential for additional membership outreach
Contractor project payments
Contracts and Payments to RISE Vendors are experiencing delays.
What’s happening?
We are working out the contracts for LFEU to pay international vendors.
LFEU has to work with the EU VAT tax authorities to ensure we are processing payments legally as a European nonprofit entity.
This is taking a while but I anticipate A resolution in the next couple of weeks.
LFEU legal and financial teams are managing this.
Kernel and Virtualization Deep Dive led by Anup Patel
AGENDA:
RVA23 profile extensions
Updates on discovery
Overall status
2023-2H
Updates on projects
Status on priorities
Overall status
2024-1H
Final priorities
Overall status
RVA23 updates on Discovery
List of RVA23 profile extensions on wiki in-sync with latest spec
HWPROBE additions (in past 3 months)
Zicboz, Zfhmin, Zkt, Zvfhmin, Zvbb, Zvkt
Zvkned, Zvknhb, Zvkb, Zvkt, Zvkg, Zvksed, Zvksh, Zvkb, Zvbc
Zihintntl, Zicond, Zacas, Zfa, Zfh, Zbc, Zvfh
KVM ONE_REG additions (in past 3 months)
Zfhmin, Zkt, Zvfhmin, Zvbb, Zvkt
Zvkned, Zvknhb, Zvkb, Zvkt, Zvkg, Zvksed, Zvksh, Zvkb, Zvbc
Zihintntl, Zicond, Zfa, Zfh, Zbc, Zvfh
RVA23 Extensions overall profile status
Total 83 extensions (25-01-2024, wiki)
Kernel HWPROBE (25-01-2024)
NA - 36 (43.37%)
TBD - 16 (19.28%)
COMPLETED - 31 (37.35%)
KVM ONE_REG (25-01-2024)
NA - 10 (12.05%)
TBD - 27 (32.53%)
COMPLETED - 46 (55.42%)
2023 2H Project Updates
LK_01_020 - Vector crypto extensions discovery using HWPROBE
Development: Completed, Upstreaming: Completed
LK_01_033 - Bitmanip extensions discovery using HWPROBE
Development: Completed, Upstreaming: Completed
LK_02_004 - KVM AIA irqbypass
Development: Completed, Upstreaming: TBD
LK_02_019 - KVM vector crypto extensions virtualization
Development: Completed, Upstreaming: Completed
Kernel
STILL NO ACTIVITY from RISE member
New kernel irqchip maintainer has requested few changes in the AIA DT drivers
AIA ACPI support upstreaming blocked on DT drivers
Being done along with AIA ACPI support
STILL NO ACTIVITY from RISE member
Sdtrig spec is frozen but the SBI DBTR spec will be part of SBI v3.0
Memory Hot(Un)plug
KASAN support
Basic ACPI support
AIA support (DT, ACPI)
PLIC support (ACPI)
IOMMU (DT)
Vector extension support
Vector crypto extension discovery using HWPROBE
Native/hosted debug support (aka HW breakpoints)
Bitmanip extension discovery using HWPROBE
KVM
Patches on LKML blocked on AIA DT driver upstreaming
Work being done in a fork since it depends on AIA DT driver and IOMMU upstreaming
Sdtrig spec is frozen but the SBI DBTR spec will be part of SBI v3.0
Vector extension virtualization
AIA irqchip (incl. kvmtool and qemu support)
AIA IMSIC guest file support
AIA irq-bypass (aka Device MSI virtualization, incl. kvmtool and qemu)
KVM vector crypto extension virtualization (incl. kvmtool and qemu)
KVM Native/hosted debug virtualization
KVM bitmanip extension virtualization (incl. kvmtool and qemu support)
Overall Status:
Total 27 projects (25-01-2024, wiki)
Development (25-01-2024)
TBD - 2 (7.41%)
PROTOTYPE - 2 (7.4%)
Native/hosted debug blocked on specifications
ONGOING - 0 (0%)
COMPLETED / NOTNEEDED - 23 (85.19%)
Upstreaming (25-01-2024)
TBD - 6 (22.22%)
ONGOING - 7 (25.93%)
COMPLETED / NOTNEEDED - 14 (51.85%)
2024-1H: Final priorities
Kernel
HWPROBE discovery for for Z* and S* extensions included in RVA23 profile
ACPI LPI support
ACPI CPPC support
ACPI PPTT support
ACPI NUMA support
ACPI SPCR support
Steal time support
System suspend support
Debug console support
PMU snapshot support
ISA Extensions
ACPI improvements
SBI v2.0
KVM
ONE_REG discovery for Z* and S* extensions included in RVA23 profile
Steat time support for Guest (incl. KVMTOOL and QEMU-KVM)
System suspend support for Guest (incl. KVMTOOL and QEMU-KVM)
Debug console support for Guest (incl. KVMTOOL and QEMU-KVM)
PMU snapshot support for Guest (incl. KVMTOOL and QEMU-KVM)
KVM selftests
Host nested acceleration (Defined by SBI v2.0)
ISA extensions
Virtualize SBI v2.0 support
Xen
Shared memory and event channel
IOMMU driver
2024-1H: Overall status
Total 43 projects (25-01-2024, wiki)
Unassigned - 6 (13.95%)
Development (25-01-2024)
TBD - 13 (30.23%)
ONGOING - 4 (9.30%)
COMPLETED - 26 (60.47%)
Upstreaming (25-01-2024)
TBD - 20 (46.51%)
ONGOING - 13 (30.23%)
COMPLETED - 10 (23.26%)
Follow up: Compilers and Toolchains Deep Dive (1/18/24)
Effort just starting to evaluate LLVM & GCC against each other to help drive improvements in both
Initial focus on Spec2017 (int and fp) on rv64gcv+bitmanip
Dynamic instruction counts rather than uarch/cycle metrics for now
GCC/LLVM Vector Investigations Internal to RISE right now
Goal is help both compilers know where to focus improvement efforts going forward, not to promote one compiler over the other or one design over another
WG Opens
Future topics: WG Opens/challenges
Select 2-3 priorities from the RFP list to discuss next week https://docs.google.com/spreadsheets/d/1r4FEX_uSKO_oSdFZhuUCikcfml1GiqOCb2NqQPk44qg/edit#gid=0
OpenOCD Upstreaming presented
Port OP-TEE to RV64 presented
AIs from last week
ACTION: Revist GCC/LLVM Vector Investigations spreadsheet during next week's TSC call (1/25 Zoom link here) to see who has added to the spreadsheet.
ACTION: Jeff to send out an email out to the team about the GCC/LLVM Vector Investigations spreadsheet making both AM & PM TSC members aware.
ACTION: Look at the overall RISE projects that are within the pipeline and choose which RFPs we want to focus on next. To be revisiting for the 1/25 TSC meeting (Zoom link here.)
18 Jan 2024
Attendees
Jeff Law, Ventana
Tim Ouyang, Andes
Evan Harrison, The Linux Foundation
Erich Hanke, AMD
Tomas Evensen, AMD
Nathan Egge, Google
Barna Ibrahim, Rivos
Gorden Markus, Canonical
Brian 'redbeard' Harrington, Redhat
Daniel Barboza, Ventana
David Weaver, Akeana
Paul Walmsley, SiFive
Terje Bergstrom, Nvidia
Victor Costan, Google
Agenda
Compilers and Toolchains Deep Dive led by Jeff Law
WG Opens
Future topics: WG Opens/challenges
AIs from last week
Appendix
2024 Deep Dive Schedule
Please review and inform Evan of any changes needed
Compilers and Toolchains Deep Dive
Effort just starting to evaluate LLVM & GCC against each other to help drive improvements in both
Initial focus on Spec2017 (int and fp) on rv64gcv
Dynamic instruction counts rather than uarch/cycle metrics for now
Goal is help both compilers know where to focus improvement efforts going forward, not to promote one compiler over the other or one design over another
ACTION: Jeff to send out an email out to the team about this topic and to make both the AM and PM attendees aware of the news.
Compilers and Toolchains Deep Dive – GCC
CRC optimization
Detect and optimize CRC loop to table lookup or clmul
10-20% on Coremark depending on clmul/memory latency
Works on more than just Coremark
Implementation done. Upstreaming effort to start shortly
Autovectorization focus expanding to include specfp
Wrf (70%), roms (35%), cam4 (17%), fotonik (12%), bwaves (5%), cactuBSSN (5%) parest (5%)
Initial evaluation starting with instruction counts
Expecting to see results similar to x86_64 and aarch64
Additional mem* and str* vector optimizations
Inline expansion when source/destination may overlap
glibc ifunc based implementations of key routines as well
Compilers and Toolchains Deep Dive – GCC
Other FP optimizations
Use rsqrt estimator to improve key (unvectorizable) loop in nab - not 100% sure it’s profitable, will need testing
Use dual fmacs and recip estimator to improve atan2 which is heavily used by WRF benchmark
Increase lookahead in scheduler – becomes more important as we start seeing dual FPU designs
Stack Clash Mitigations
Naive implementation limping along already
Good implementation (reduce explicit probing) underway
Closest to AArch64 implementation, needs PSABI verbage
Compilers and Toolchains Deep Dive – LLVM
Big thanks to Craig Topper (SiFive) for covering LLVM
Split register allocator, vector first, then scalar registers
Allows for vsetvl insertion between phases so vector registers can be partially spilled
Stop considering conditional branches as “expensive”
Prefers multiple branches over logicals to combine several branches into one
LTO vs -march/-mcpu issues in crosshairs
Core-V support (xcvmem, xcvelw)
Intrinsic and assembler support for various new extensions
Global Dynamic TLSDESC
ULEB128 relocation support for DWARF V5 & C++ exceptions
Vector calling conventions merged. Proposal for passing fixed length vectors in vector registers under review
The RFP is in the pipeline right now and should close in February. This could also start as a Compiler email thread, and if needed this can be further discussion inside the Compiler's meeting.
Dev Infra: Board Farm Update
RISC-V International Effort overview
Dev Boards program enabling developers with hardware.
Labs Cloud Access - CI enablement; No common interfaces, or common operational standards (yet).
Considerations for next steps are
RISE can propose/sponsor a Program and leverage the existing RVI infrastructure to enable hardware with developers.
Longer Term: How best to enable CI jobs that require RISC-V Hardware. Utilize labs such as OSU-Open Source lab etc.
Working Groups Opens / Challenges
Open Discussion
We should take a look at what are next project ideas are for the next round. What do we want the rest of the working groups want to handle after we finish these rounds of projects.
Open OCD upstreaming: This could be a good project to consider (Tim Newsome could be the contractor, or some other group that can drive this forward.)
ACTION: Look at the next projects within the pipeline for the next TSC meeting
K230 Developer Resources
Several of us have received second run of Canaan Kendryte boards
CanMV-K230-V1.1 is second gen hardware
Good installation guide for Debian on this board can be found here:
Also works for other distributions if you replace the rootfs
Does anyone need access who does not already have it?
Interim access possible, send ssh key to negge@google.com
Official support on 5.10.4, how can we move to mainline kernel?
Daniel Barboza and Redbeard shared a unified importnace of the work that is happening on this mainline kernel.
Is there work around upstreaming the work, or is it more about testing a new kernel and seeing what happens.
In some levels there needs to be distrobution of the kernel if we can't upstream it.
The position that Nathan and the team would like to be is to build the Kernel and then upstream the work.
Questions: Nathan is concerned if there is an importance of this.
How do we want to encourage this work to happen?
Future Topics Parking Lot
Please add topic to be discussed for future meetings
Insert topic
AIs for this week
ACTION: Revist GCC/LLVM Vector Investigations spreadsheet during next week's TSC call (1/25 Zoom link here) to see who has added to the spreadsheet.
ACTION: Jeff to send out an email out to the team about the GCC/LLVM Vector Investigations spreadsheet making both AM & PM TSC members aware.
ACTION: Look at the overall RISE projects that are within the pipeline and choose which RFPs we want to focus on next. To be revisiting for the 1/25 TSC meeting (Zoom link here.)
AIs from last week
Call for review for Optimization guide specifically -
How and If Vendor specific comments; Who is the Target Audience. 2 week review input window once all the RISE folks have access on Git.
Encouraging the teams to look at additional RFPs.
11 Jan 2024
Anup Patel, Ventana
Barna Ibrahim, Rivos
Brian 'redbeard' Harrington
Daniel Barboza, Ventana
David Weaver, Akeana
Evan Harrison, Linux Foundation
Fei Wu, Intel
Heinrich Schuchardt, Canonical
Jian Zhang, BOSC
Ludovic Henry, Rivos
Ming Yu-Hung, Mediatek
Nathan Egge, Google
Paul Walmsley, SiFive
Ruinland Tsai,
Simon Harvey, Imagination
Sunil L, Ventana
Tim Ouyan, Andes
Tomas Evensen, AMD
Victor Costan, Google
Agenda
Firmware Deep Dive led by Sunil V L
Optimization Guide Status
RFP Update
Heads up: Q1 2 FTE Report
WG Opens
Future topics: WG Opens/challenges
AIs from last week
Appendix
2024 Deep Dive Schedule
Please review and inform Evan of any changes needed
Firmware Deep Dive
New projects added.
2H 2023 Project Status
1H 2024 Projects (Draft)
Discussion Topics
FW WG - New projects added
EDK2
EDK2_00_18 - RISC-V QEMU Server Reference Platform - 1H 2024
COREBOOT
COREBOOT_00_01 - coreboot for SiFive Unmatched - 1H 2024?
COREBOOT_00_02 - coreboot for StarFive VisionFive2 - 1H 2024?
COREBOOT_00_03 - LinuxBoot for coreboot on RISC-V - 2H 2024
COREBOOT_00_04 - TianoCore for coreboot on RISC-V - 2H 2024
HPC (?)
HPC_00_01 - Minimal functional SBI definition for HPC (placeholder)
OP-TEE
OPTEE_00_01 - OP-TEE support for RISC-V - 2H 2024
FW WG - 2H 2023 - Projects Status
FW WG - 1H 2024 - Projects (DRAFT)
FW WG - Discussion Topics
Projects discovering spec gaps. Spec freeze may take time.
Large projects are difficult to break down initially and then can spill over into next half.
Projects being done by non-RISE members. How to update wiki page?
RISE specific gitlab/github.
RISC-V Optimization Guide Discussion
Leads Ludovic and Simon
Licencing The various RVI specs are distributed under the CC-BY-SA-4.0 license (Ex. RISC-V ISA Manual ).
Moved to Git invite only within RISE team members.
Time lines:
11/06/2023 - 01/15/2023 Seeking feedback from RISE
01/15/2023 Inform RVI and give access to the document.
Week of Jan 31st, 2024
Open up to RISC-V ecosystem - public, git repo, PDF/website/other
Publish on RISE Social Media
How many people can we add to the repo, question for Michelle
Adjust the timelines until people can get access to gitlab
Is it possible to get accss to the repo before, Michelle has sent information for DCMA to github. Nathan has to look into this information.
When we get more contributors, Ludovic will send out an email and this will kickoff the two weeks date for feedback from RISE.
RFP Process
Phase 1: Conception
Phase 2: Approval (Board)
Phase 3: Publication & Bidding
Phase 4: Bid Review & Award Contract
Phase 5: Execution
Phase 6: End of Contract
RFP Progress - for the Board
RFP# | Topic | WG | Phase | Status |
RP006 | LLVM CI Improvements | Dev Infra/ Toolchain | Phase 3: Publication & Bidding | Bidding ends 02/02 |
RP005 | TCG Translation for RVV Instructions | Simulators/ Emulators | Phase 3: Publication & Bidding | Bidding ends 02/02 |
RP004 | Rust Tier-1 Support for RV64 Linux | Toolchain | Phase 3: Publication & Bidding | Bidding ends 01/26 |
RP003 | libjpeg-Turbo | System Libraries | Phase 4: Bid Review & Award Contract | LF Payment Set up |
RP002 | Multimedia Enablement | System Libraries | Phase 4: Bid Review & Award Contract | LF Payment Set up |
RP001 | Accelerate Go Run Times | Language Run Times | Phase 4: Bid Review & Award Contract | LF Payment Set up |
RFP Pipelines for TSC
RFP# | Topic | WG | Comments |
RP007 | GCC Autovec | Toolchain |
|
RP008 | GCC Shadow Stack Support | Toolchain |
|
RP009 | Valgrind for RISC-V | Debug and Profiling |
|
RP010 |
|
|
|
Working Groups Opens / Challenges
Open Discussion
Can we improve accountability so that users are updating the wiki pages for their corresponding working groups?
Refer to FTE slides and reports will be going out mid January.
Heads up 2 FTE Report Q1
2 FTE reporting is on a quarterly basis
The next request will be in mid-January to cover Oct to Dec 2023
Feedback & Examples from first FTE reporting
14 Dec 2023
Attendees:
David Weaver, Akeana
Nathan Egg, Google
Victor Costan, Andes
Barna Ibrahim, Rivos
Tim Ouyang, Andes
Kumar Sankaran, Ventana
Daniel Barboza, Ventana
Brian (Redbeard) Harrington, Red Hat
Terje Bergstrom, NVIDIA
Evan Harrison, The Linux Foundation
Jeff Law, Ventana
Erich Hanke, Canonical
Tomas Evensen, AMD
Ammone Chapackdee, Ventana
Andrew de los reyes (Adlr), Rivos
Ludovic Henry, Rivos
Trilok Soni, ISCAS
Agenda
RISC-V Optimization Guide
Valgrind RISC-V Porting discussion follow up
WG Opens
LLVM CI RFP Status
Future topics: WG Opens/challenges
AIs from last week
2FTE Reporting Best Practices
Meeting on January 4th
Appendix
2024 Deep Dive Schedule
Please review and inform Evan of any changes needed
RISC-V Optimization Guide Discussion
Leads Ludovic and Simone
Added Intended Audience and Vendor Neutrality language
Licencing The various RVI specs are distributed under the CC-BY-SA-4.0 license (Ex. RISC-V ISA Manual ).
What is the specific use case for this? The question from the team is, who is this directed towards?
The team has decided to continue work on this document before it is published.
ACTION:
Decision: Move to Gitlab only with RISE team members
Time lines:
11/06/2023 - 12/15/2023 Seeking feedback from RISE
12/15/2023 Inform RVI and give access to the document. Can we resolve the comments inputs?
We pushing this back to the week of 1/8/24
ACTION: Check in with team after the holidays to see if they are ready to present to RVI
Week of Jan 8th, 2024
Open up to RISC-V ecosystem - public, git repo, PDF/website/other
Publish on RISE Social Media
Debug & Profiling: Valgrind Porting to RISC-V
No RISC-V support on Valgrind
Valgrind ownership?
There needs to be a further discussion on this topic: Barna and Jeff will take this offline to further schedule. To be picked up in Jan.
Working Group Opens
Python Packaging Challenge
TL;DR: building python packages depends on AlmaLinux 8 which doesn’t support RISC-V
The two, non-exclusive, and complementing proposals are:
GCC Auto Vectorization
Autovec in GCC is new and there is a need to push to improve codegen.
Other architectures have honed autovec with years of work and dozens of engineers working. This is one step in evening the field.
Have RISE to explore what it takes and then determine next steps.
ACTION: Jeff will write up a plan to discover exaclty what next steps look like. A further meeting needs to happen to discuss this effort.
RFPs Status
RFP006 - LLVM Testing Improvements
RISC-V LLVM Testing Improvements RFP - needs add. work
RFP Timeline:
Please provide input within the next 48 hours.
Input to be gathered on Sunday 11/17
Project RP004: Support 64-bit RISC-V Linux port of Rust to Tier-1
Timeline: 12/8 - 12/29
Request extend the timeline from contractors. Extended till 1/12
The team is okay to push this date
Ammone will remove the timeline and expected date on the RFP
ACTION: create an mailing list for the RFP updates. This would be a third-party mailing list exclusive so non-members can receive udpates.
RFP Pipeline
2 FTE Reporting Feedback
2 FTE reporting is on a quarterly basis
The next request will be in mid-January to cover Oct to Dec 2023
TSC Co-chairs recommend the examples on the next slide as the type of detail and information that is helpful
Working Groups Opens / Challenges
Open Discussion
Future Topics Parking Lot
Please add topic to be discussed for future meetings
RFP Update/ Status
AIs for this week
Contact Nathan
ACTION:Decision: Move to Gitlab only with RISE team members
ACTION: Check in with the team after the holidays to see if they are ready to present to RVI
ACTION: Jeff will write up a plan to discover exactly what next steps look like. A further meeting needs to happen to discuss this effort.
ACTION: create a mailing list for the RFP updates. This would be a third-party mailing list exclusive so non-members can receive updates.
AIs from last week
Public Distro and Integration Public meetings Scheduled
Contractor bid accepted, LF contracting process is underway
Valgrind: Follow up with broader community
Debug and Profiling to focus on the first three items ( Open On-Chip Debugger, DynamoRIO, Valgrind) and hold for SimplePerf for now.
Wrap-up on the stack-clash contractor proposal (drop, Ventana will cover)
Wrap-up on the GCC testing contractor proposal from Embecosm (drop, under control and standard upstream procedures should keep it under control going forward)
2024 TSC/GB Deep Dive Schedule
07 Dec 2023
Attendees:
David Weaver, Akeana
Nathan Egg, Google
Victor Costan, Andes
Barna Ibrahim, Rivos
Fei Wu, Intel
Tim Ouyang, Andes
Kumar Sankaran, Ventana
Daniel Barboza, Ventana
Brian (Redbeard) Harrington, Red Hat
Terje Bergstrom, NVIDIA
Paul Walmsley, SiFive
Robin Randhawa, SiFive
Michelle Martineau, The Linux Foundation
Jeff Law, Ventana
Anup Patel, Ventana
Erich Hanke, Canonical
Jian Xiong, Alibaba
Ken Unger, Microchip
MyungJoo Ham, Samsung
Ming-Yu Hung, MediaTek
Simon Harvey, Imagination
Tomas Evensen, AMD
Gordan Markus, Canonical
Agenda
System Libraries Deep Dive Q&A (Nathan) (10mins)
Distro Integration Deep Dive
Debug & Profiling Projects 2024 (Ammone/Fei) (10 mins)
RISC-V Optimization Guide Discussion and Inputs (10 mins)
RFP LLVM CI Announcement Draft
AIs from last week
WG Updates/Challenges & Future Topics
System Libraries Deep Dive Q&A (Nathan) (10mins)
Distro Integration Deep Dive
Purpose: To provide direction and feedback around the integration of the software components needed to comprise an entire operating system
Near term goals: Alignment of packages needed for new development (HEAD versions of gcc, qemu, et al)
Long term goals: Establish a communication channel between operating system developers and the groups building foundational components incorporated into operating systems.
Inaugural meeting held - Dec 5th
Over 10 attendees
Reinforced the process of working on the mailing list
Permissions on documents is a challenge
e.g. Creating a spreadsheet where users can collaborate requires a lot of manual “Grant access to…” management (if keeping documents within RISE)
The discussion of compressed instructions has continued in the WG, but the TSC has made it clear this is a decided issue.
Debug and Profiling Projects 2024
Prioritize and ownership (RFP vs TSC members)
| User Scenarios | Repo | Status | RISE might contribute |
Open On-Chip Debugger | on-chip programming and debugging support with a layered architecture of JTAG interface and TAP support | Active development under the lead of Tim Newsome | Need inputs | |
DynamoRIO | instrumentation, binary translation etc. | PLCT lab & SemiHalf: DynamoRIO now has initial support for RISC-V | Extensions other than GC | |
Valgrind | instrumentation, debugging etc. | GC is waiting for upstream and RVV is still in prototype mode | Help review and upstream Enable other extensions | |
SimplePerf | native profiling tool for Android |
|
| Atish Patra: There are few moving pieces that need to be straightened out before we can have better support for simpleperf. Until then, we have to rely on SBI PMU & static event encoding for platforms via EVENT_TYPE_TABLE_ENTRY in simple perf |
RISC-V Optimization Guide Discussion and Inputs (10 mins)
Open Items add here
Next steps
11/06/2023 - 12/15/2023 Seeking feedback from RISE
12/15/2023 Inform RVI Optimization coming
Week of Jan 8th, 2024
Open up to RISC-V ecosystem - public, git repo, PDF/website/other
Publish on RISE Social Media
RFP LLVM CI Announcement Draft
AIs from last week
Slack Privacy/ Best practices
RISE Slack is for members only. Do not share invites with people outside of your organization.
For private conversations please configure a private channel for your working group that is invite only.
To remove non-members please ping Michelle or Evan.
Code of conduct policies apply to Slack please inform
Jefro of any violations.
WG Updates/Challenges & Future Topics
Future Topics Parking Lot
Please add topic to be discussed for future meetings
Define intended audience for RISC-V Optimization Guide
Leads Assigned (Ludovic? & Simon Harvey)
Move to GitLab Repo when complete
Action Items This Week
Public Distro and Integration Public meetings Scheduled
Create publicly accessible docs for D&I Community
Valgrind: Follow up with broader community
Debug and Profiling to focus on the first three items ( Open On-Chip Debugger, DynamoRIO, Valgrind) and hold for SimplePerf for now.
30 Nov 2023
Attendees:
Ammone Chapackdee, Rivos X
Nathan Egg, Google X
Barna Ibrahim, Rivos X
Andrei Warkentin, Intel X
Ludovic Henry Rivos X
Tim Ouyang, Andes X
Kumar Sankaran, Ventana X
Daniel Barboza, Ventana X
David Weaver, Akeana X
Brian (Redbeard) Harrington, Red Hat X
Terje Bergstrom, NVIDIA X
Paul Walmsley, SiFive X
Andrew (Adlr), Rivos X
Heinrich Schuchrdt, Canonical X
Mason Li, Meditek X
Trilok Soni, X
Wei Wu, ISCAS X
Evan Harrison
Agenda
New RISE Slack Channel
RISE GitLab Established
RFP Updates
Distro Integration Meeting Update
System Libraries Deep Dive
WG Updates
AIs from last week
Join the Conversation!!
RISE Slack Channel
Q: What will we use Slack For?
A: WG collaboration and community conversations
Q: Does this replace the mailing lists or Wiki?
A: No. There will be no decision making or important announcements only shared on the slack.
Q: Is the RISE Slack Members only?
A: No, anyone who wishes to collaborate with RISE may join.
- There is confidentiality, is this under the same usage guidelines as the mailing list, or is it more of an open.
- Kumar may want to keep this as a private chat with only RISE members as opposed to keeping it open to everyone.
- I’d be in favor of restricting this to RISE member employees and selected partners (eg contractors we RFP with). Access control and revocation could be a challenge
Q: Is joining Required?
A:No, this is 100% optional
Q: How Do I configure my notifications?
A: Find helpful tips and tricks HERE
GitLab Established for RISE
Registered the RISE Project as an Organization with GitLab
Reserved https://gitlab.com/riseproject for hosting projects
RFP Updates
RFP Pipeline
RP006 - Language Runtime; v8 bringup; Analyze where v8 is vs needs to be, with a focus on Node.js and Android WebView (Ludovic)
The TSC has agreed to move forward with this project for Ludovic - Ludovic is going to prepare so that we can potentially greenlight this on the 12/14 meeting
RP013 - GCC Test Failures (Jeff Law)
Action: Bring up for next weeks 12/7 meeting.
RP016 - Valgrind for RISC-V (Fei)
In the next TSC meeting we want to ensure Fei can attend so we can know
ACTION: We will work with Fei to draft up the RFP and what are the milestones we want to identify. We will then take it to the 12/14 meeting and so we greenlight and start this project in January.
RISE Distro Integration Meetings
Occurring bi-weekly, Tuesdays at 4PM UTC
We will be creating agendas based on Slack messages and e-mail list traffic.
Feel free to join to participate. First meeeting is on 12/5 at 8AM PST.
System Libraries Deep Dive
There are 16 slides that Nathan added, he has put this in a separate slide deck. The slide deck can be found here
Reminder: RISC-V Optimization Guide Next Steps
11/06/2023 - 12/15/2023 Seeking feedback from all RISE members; Email Next steps to TSC mailing list?
12/15/2023 Inform RVI Optimization coming (Mark H. and RVI TSC leads)
Week of Jan 8th, 2024
Open up to RISC-V ecosystem - public, git repo, PDF/website/other
Publish on RISE Social Media
Working Group Challenges
Open Discussion
AIs from last week
This doesn’t include WG-specific AIs, just the ones that have a global effect.
RISE Slack Channel
ACTION: We will work with Fei to draft up the RFP and what are the milestones we want to identify. We will then take it to the 12/14 meeting and so we greenlight and start this project in January.
Action: RISC-V Optimization guide: continueation of discussion in next TSC meeting.
Barna has tagged a slide for the next meeting.
ACTION: Speak to Michelle about the policies that the RISE team would like to institute for the RISE slack channel. If there are already policies, how can we update the policies so that we can set what expectations we want to set for what to post and what not to post on the RISE slack channel.
16 Nov 2023
Attendees:
Simon Harvey, Imagination
Ammone Chapackdee, Rivos
Nathan Egg, Google
Rick Leatherman, SiFive
Anup Patel, Ventana
Barna Ibrahim, Rivos
Andrei Warkentin, Intel
Ludovic Henry Rivos
Tim Ouyang, Andes
Cyril Jean, Microchip
Jian Xiong, Alibaba
Kumar Sankaran, Ventana
Daniel Barboza, Ventana
David Weaver, Akeana
Robin Randhawa, SiFive
Victor Costan, Google
John Hengeveld, Intel
Brian Harrington, Red Hat
Terje Bergstrom, NVIDIA
Fei Wu, Intel
Brian (Redbeard) Harrington, RedHat
Erich Hanke, AMD
Gordan Markus, Canonical
Ming-Yu Hung, MTK
Agenda
2FTE Reminder Deadline & Process
RFP Decline Approach
RFP Reviews
Debug and Profiling Deep Dive
Optimization Guide Next Steps
WG Opens - RVI server platforms team
AIs from last week
2FTE Reminder Deadline & Process
Sponsors will report quarterly on the contributions of their allocated support for RISE Projects.
Up to 10 contributions can be reported per form, multiple forms can be submitted.
Forms will be reviewed/audited by RISE TSC Co-Chairs.
Please find the quarterly Reporting form HERE Please complete ASAP.
Reporting Surveys were due 11/1 please submit yours by EOD tomorrow 11/16.
Ventana
SiFive
T-Head (Alibaba)
Nvidia
Akeana
Meeting Schedule 2024
2024 Board Meetings Currently Conflict with RISC-V Board Meetings
To solve this we will swap GB meetings with TSC meetings again to make RISE GB Meetings on alternating weeks. Everyone should have received the new series invites yesterday.
If you do not have TSC meetings on your calendar please let me know.
mmartineau@linuxfoundation.org
RFP Decline Approach
Vendors/Contractors should be informed when their bids are not accepted. While a generic template should be standard, additional details around why decisions were made should be provided verbally to encourage re-application by the vendor to future RFPs. This also adds visibility and prevents any optics of preferential treatment.
The LF PM team will send the email copying the technical leads that evaluated the RFP. If the vendor wants to meet to learn more, they would meet with one of the technical leads copied.
Please find the proposed template HERE
RISE GitHub Proposal
Request for an official RISE github / gitlab account for collaboration on public documents, e.g., RISE Optimization Guide. LF does not administer GitHub spaces, so we will need someone from the RISE TSC to set up a RISE Projects repo.
Open Discussion
Debug and Profiling Deep Dive
Valgrind RVV Support
Petr had the ARM SVE prototype recently and I had the RVV one, now we are discussing a unified solution for both and other vector ISA.
RVV looks more generic than ARM SVE, e.g. VL in RVV is not expressible by SVE primitives.
The major concern on RVV prototype from Petr is that it embeds VL into each type and ops, but we need to find a method to figure out the precise size of these types/ops as Valgrind requires.
GDB Simulator - Add Zc support
Submitted first patch that implements compressed integer instruction set ("c") and semi-hosting for review.
Finished implementation of F and D instructions, and will start upstreaming these patches soon.
AddressSanitizer
The dependency on kernel TASK_UNMAPPED_BASE has been addressed
Upstreaming is working in progress
Challenges
No new projects proposed for 2024-1H
Will contact the individuals in private
Optimization Guide Next Steps
11/06/2023 - 12/15/2023 Seeking feedback from all RISE members
12/15/2023 Inform RVI Optimization coming
xx/xx/2024 Open up to RISC-V ecosystem - public, git repo, PDF/website/other
WG Opens - RVI server platforms team
Andrei Warkentin is the chair of the RVI Server Platform TG
Andrei would like RISE input on recommendations & requirements for this new specification
Andrei believes system software engineers from RISE members, spanning from silicon to OS experts, are perfectly placed to provide input based on their understanding of workload requirements and long-term trends
Open Discussion
AIs from last week
RISE Slack Channel
06 Nov 2023
Attendees:
Bjorn Topel, Rivos
Jeff Law, Ventana
Simon Harvey, Imagination
Ammone Chapackdee, Rivos
Kumar Sankaran, Ventana
Daniel Barboza, Ventana
David Weaver, Akeana
Paul Walmsley, SiFive
Ludovic Henry, RIvos
Daniel Barboza, Ventana
John Hengeveld, Intel
Brian Harrington, Red Hat
Terje Bergstrom, NVIDIA
Tomas Anderson, AMD
Brian (Redbeard) Harrington, RedHat
Jefro, RedHat
Ken Unger, Microchip
Erich Hanke, AMD
MyungJoo Ham, Samsung
Barna Ibrahim, Rivos
Andrew de los Reyes (Adler), Rivos
Evan Harrison, Linux Foundation
Amit Pabalkar, Nvidia
Stefano Stabellini, AMD
Larry Wikelius, Qualcomm
Aaron Durbin, Rivos
Steve Wanless - RedHat
Agenda
F2F Intros
Language Runtime Deep Dive
RFPs
WG Updates
Open Discussion
F2F Intros
2H2023 Goals: Java
Backport RISC-V Support to OpenJDK 17 - Completed
Backport RISC-V Support to OpenJDK 11 - Ongoing
Pull request at openjdk/riscv-port-jdk11u#3
Distribute Java 11, 17, 21 with Adoptium - Ongoing
Lack of hardware, exploring using QEMU for CI machines
Various compiler optimizations - Ongoing
Intrinsics, code lowering: TSO, chacha20, unsigned integers division/modulo/compare, copy sign, …
Porting ecosystem libraries - Ongoing
zstd-jni, brotli4j, netty, commons-crypto
lz4-java: library is unmaintained, forking
2H2023 Goals: Go
Build and Test Go runtime on RISC-V - Ongoing
Support for hardware feature detection - Ongoing
Accelerate crypto/md5 - Ongoing
rv64g, rva20u64, rva22u64, rva23u64
No support for C (for now)
Various compiler optimizations - Ongoing
2H2023 Goals: Python
Porting ecosystem libraries - Ongoing
PyTorch, scikit-learn
Native dependencies: SLEEF, oneDAL, TBB, …
RISE Optimization Manual
Discussed at last System Libraries sync
Seeking feedback from all members
Target hardware: smartphone, laptop, desktop, server; OoO; rv64gv*
Long-term: public, git repo, PDF/website/other
It’s collaborative, need your feedback!
WG Updates
Open Discussion
Robin Randhawa - Kumar has requested that Robin is on next week's TSC call.
02 Nov 2023
Attendees:
Bjorn Topel, Rivos
Ming-Yu Hung, MediaTek
Jian Xiong, Alibaba
Jeff Law, Ventana
Simon Harvey, Imagination
Ammone Chapackdee, Rivos
Kumar Sankaran, Ventana
Daniel Barboza, Ventana
David Weaver, Akeana
Paul Walmsley, SiFive
Ludovic Henry, RIvos
Daniel Barboza,
Fei Wu, Intel
John Hengeveld, Intel
Brian Harrington, Red Hat
Sunil L, Ventana Micro
Terje Bergstrom, NVIDIA
Michelle Martineau, Linux Foundation
Nathan Egge, Google
Agenda
RISE and LF PMO Collaboration
Compilers and Toolchains Deep Dive
Developer Infrastructure Deep Dive
Go Runtime RFP
TSC F2F Agenda
WG Updates
AIs from last week
RISE and LF PMO Collaboration
In the absence of an Executive Director, direction for the LF PMO should come from RISE Leadership. This includes the RISE TSC and GB co-chairs, Treasurer, and Outreach chair. If a tracking system is required it would be determined and managed by the Leadership.
GB/TSC Requests
New Processes
Budget
Governance Changes
New Projects or Workgroups
Recurring Requests
Direct Requests- Member support
Email lists
Meeting invites
LFX troubleshooting
Renewals/Invoicing
Contact changes (Voting & Billing)
Code of conduct issues
Antitrust
Note: Requests small or large should be detailed to enable PMO to execute
RISE TSC SCOPE
Coordinate agenda for top level technical body (TAC/TOC)
Run meeting for top level technical body (TAC/TOC) out of scope
Take / distribute notes for top level technical body (TAC/TOC)
Required attendance for top level technical body (TAC/TOC)
Manage permissions / access to restricted mailing lists
Create / manage other mailing lists
Manage permissions / access to other community platforms
Advise on Governance issues
Advise on other project needs (community, events, marketing)
Monitor for IPR issues and other legal questions
Coordinate Document Management (technical community documentation)
Manage Mentorship Program out of scope
Manage Grants Program out of scope
This is the comprehensive scope for what LF PMO provides in supporting the RISE Technical community. Working Group management is not included however some of the items are associated with included scope items. Any additional requests would result in rescoping and increased PMO fees.
Compilers and Toolchains Deep Dive
GCC – feature freeze for gcc-14 release in ~2 weeks
Generic new pass, so need to test and fix bugs across many targets
Implementation cleanup
Last feature (strided loads/stores) likely landing this week
Testsuite trends are a slight concern, but expectation is we know why the results differ between Embecosm and everyone else
Avoid losing track of extension status for incoming arguments has landed
Avoid creating redundant extensions by querying that extension status when generating comparisons should be landing this week
Hoping to get extension DCE submitted next week, likely last feature in this space to make gcc-14 feature freeze deadline
Remaining items will be split off into a 1H2024 project
Autovectorization
Redundant extension elimination – umbrella for many little subprojects
Address rewriting – another umbrella for many subprojects
New target independent pass to simplify complex address computation sequences
Being a target independent pass meant much higher bar for integration
Avoids pushing invariant address computations back into loops
Again, target independent fix, high bar for integration
Manolis’s patch (VRULL) has finally been integrated
Register allocation issues have been fixed, reverted and fixed again
One remaining item (reassociate symbolic address computations) being debugged, still hoping it’ll make it in time for gcc-14 feature freeze
If-conversion
Eswin has updated their patches, much cleaner now
Both eswin and VRULL/Ventana variants break x86
So more debugging & analysis needed. Reasonable chance this will make it in tie for the deadline as well
Large code model – first drop from Andestech, generally in good shape. Reasonable chance this will make gcc-14 feature freeze
Target attribute work mostly done, minor API changes in the works
Developer Infrastructure Deep Dive
Introduction
RISE Build Farm
Linux Kernel CI Status
GCC CI Status
Current Status
Budget Review
What We’ve Learned
Next Steps
Next Steps
RISE Board Farm
RISE Developer Tools
Charter
The Developer Infrastructure WG focuses on software and services to support open-source developers - both RISE members and the broader open-source community.
Current Projects
RISE Build Farm
In Planning
RISE Board Farm
RISE Developer Tooling
Objective
Cross-build and test (in simulation) RISC-V ports of key open source software
Running in Google Cloud
Google has graciously donated USD 250,000 of cloud computing credits
Status
Linux kernel pre-commit CI: up and running
gcc CI: getting started
Exiting the initial experimental phase
Moving into production
Two build farm projects in progress
Builds the RISC-V Linux kernel https://github.com/linux-riscv/
“Is this patch Good Enough?”
Gap: Many post-merge CIs, but no pre-merge
Patchwork scrapes the mailing lists
Daemon synchronizes Patchwork <=> Github
Build/tests on RISE dedicated runners
Feedback to maintainers, reviewers, and contributors
All in the open – community involvement
Sponsors: Björn Töpel (Rivos) and Conor Dooley (Microchip)
Next Steps
Improve build time/farm utilization
Today: ~20m per patch
Expand tests
More configurations
Boot tests
Goal: Release test pre-commit
Maintainers: “This patch will not break upstream”
Boot on Real Hardware
Deep-dive at Linux Plumbers Conference, RISC-V MC, Nov 13
GCC CI Status
RISC-V GCC https://github.com/riscv-collab/riscv-gnu-toolchain/
Currently running post-merge CI on non-RISE systems; missing dedicated runners
Pre-merge CI under development
Move to dedicated RISE build farm systems is in progress
Sponsors: Patrick O’Neill & Edwin Lu (Rivos)
Budget Retrospective
Spend: USD ~4900
Initial budget: USD 9000
Donated credits from Google: USD 250,000
Key factors
Slower project ramp than planned
Systems still running 24/7 rather than on-demand
Budget Forecast 2023 Q4
Build farm usage expected to increase significantly
More projects coming online
Existing projects scaling up
Reduce per-instance spend with spot instances and on-demand instance power control
Target: cut per-instance spend by 30%-50% by the end of Q4 2023
Lessons Learned
Monitoring of system resource usage is key to using resources efficiently
Regular management of projects is key to ensuring that they are making initial progress
Broadening the administration base is key to ensuring timely action
Build Farm Next Steps
Moving from experimental to production phase
Policies & procedures
Documentation
Broader administration base
Spot instances
Control machine set up
Bringing on more RISE WG build projects
Driven by RISE member sponsors
Expanding existing Linux and GCC build projects
Investigating third-party build and test projects
Investigating external IT
Future RISE Board Farm integration
TSC F2F Agenda
Don’t forget to sign up: Link
Intro/Ice Breakers
RFPs
Review and updates
Vendor submitted
Deep Dives
Language Runtime
Logistics:
Monday, November 6, from 1-2pm PT @ NVIDIA campus in Santa Clara
Link to Directions/Instructions INVITE SENT
Microsoft Teams invite has been provided for those not joining in person
WG Updates
AIs from last week
26 Oct 2023
Attendees:
Ammone Chapackdee, Rivos
Kumar Sankaran, Ventana
Jian Zhang, BOSC
Daniel Barboza, Ventana
David Weaver, Akeana
Andrei Warkentin, Intel
Paul Walmsley, SiFive
Tim Ouyang, Andes
Brian Harrington,
Ken Unger
Terje Bergstrom
Evan Harrison, Linux Foundation
Amit Pabalkar
Andrew de los Reyes, (Adler) Rivos
Thomas Evensen, AMD
Nathan Egge, Google
Agenda
New Member! AMD 🎉
Simulator Emulator Deep Dive
RISE TSC Slide for RVI Summit
New Projects
WG Updates
AIs from last week
Simulator Emulator Deep Dive
Agenda
2023-2H
Updates on projects
2024-1H
Overall status
2023-2H: Updates on projects
QEMU code freeze for new features: Nov 7th 2023
SE_01_002 - QEMU Virtual IRQ and IRQ filtering support
Moved from “Under Review” to “Queued”
On track for QEMU 8.2 (Dec 2023)
SE_01_014 - QEMU query-cpu-model-expansion API
Moved from “Under Review” to “Queued”
On track for QEMU 8.2 (Dec 2023)
SE_01_011 - QEMU RVA22U64 profile support
Moved from “Not Started” to “Under Review”
On track for QEMU 8.2 (Dec 2023)
2023-2H: Updates on projects
Projects moved to 2024 (not enough time to meet project freeze)
SE_01_003 - QEMU WorldGuard support support
Status: Not started
Moved to 1H 2024
SE_01_014 - QEMU IOPMP support
Status: Not started
Moved to 1H 2024
SE_01_015 - QEMU RISC-V IOMMU support (new)
Status: Under review
First version sent for review in July 2023. No new versions sent
2023-2H: Updates on projects
2024-1H: Updates on projects
New projects planned for 2024-1H
SE_01_003 - QEMU WorldGuard support support
SE_01_014 - QEMU IOPMP support
SE_01_015 - QEMU RISC-V IOMMU support
From 2023 priorities
SE_01_016 - QEMU linux-user hwprobe kernel parity (new)
Long term project without deadline
Valid as long as the kernel hwprobe syscall is being updated
2024-1H: Updates on projects
List including projects coming from 2023
RVV performance enhancements
Vector TCG Host-Native implementation
Cleanup: remove prematurely merged non-standards
SLX32 support
QEMU RISC-V TCG target support
Vendor extension framework support
QEMU WorldGuard support*
QEMU IOPMP support*
QEMU RISC-V IOMMU support*
QEMU linux-user hwprobe kernel parity*
Wiki pages are still pending for most projects
Projects with (*) has pages
RISE TSC F2F Logistics
Reminder to Sign Up: Here
Monday, November 6, from 2-3pm PST @ NVIDIA campus in Santa Clara
Link to Directions/Instructions INVITE SENT TODAY
Microsoft Teams invite has been provided for those not joining in person
TSC may have to wait in the lobby until 2pm PST
RISE Lounge request for Board and TSC members to host sessions
SIGN UP!
RISE is sponsoring a lounge with couches at the Summit, and we'd like to have people from the Board or TSC there, particularly at busy times such as coffee breaks. Let’s fill in the final slots together now! :-)
Link: https://docs.google.com/spreadsheets/d/1Y8L0We5GZCbW8I1s8ruD-U9j6BgSs6DHRIwJ8R7U1fc/edit#gid=0
RISE TSC presentation for RVI Summit
RISE RVI Summit Preso (Barna, Nathan, and Kumar)
Agenda
Platforms: Kernel & Virt, FW, Simulation
Dev Tools: Toolchain & Compilers, Distro Integration, Profile & Debug
Libs/Middleware: System Libs, Language Runtime
Developer Infrastructure
RFP Projects
RISE Intro
RISE Org
Working Model
TSC Leadership & Working Groups
Priority and Accomplishments
Roadmap
New Projects
Anyone can submit projects
https://lf-rise.atlassian.net/wiki/display/HOME/RISE+RFP+Process
RISE project form: RISE Form
Email to WG group mailing list
Prioritization for all projects follows:
Already contributed to by a RISE member and require additional resources (developers, reviewers, testers)
Gaps that need a level of investment (e.g. into design/implementation), where a concrete focused effort by strongly-interacting (WG) participants would be more efficient than some eventual convergence by a group of weak-interacting (upstream project mailing list)
Proof of Concepts (e.g. from RVI spec work) that need to be matured into upstream.
Projects that are necessary to unblock RISE efforts in other area.
In alignment with the upstream project roadmap, goal, etc.
In alignment with RISE member goals.
Are either:
ACTION: Work with Ammone and Michelle to better document how new members can submit projects on the Wiki.
Revist the RFP process page and see how we can fill in any gaps for new members.
Working Group Challenges
Open Discussion
Action: How are tasks/requests being tracked?
Can we create a spreadsheet that tracks all RISE requests tasks. And go over this spreadsheet during the last 15 mins of the TSC call.
AIs from last week
This doesn’t include WG-specific AIs, just the ones that have a global effect.
Update from Evan - converting Google drive “inbox” spreadsheets to Wiki
This has been completed
There seems to be a reduncy with some of the info on the WG wiki pages in terms of the spreadsheet
Finishing up setting up WG infrastructure
The WG leads will look into incorporating the spreadsheet template - however the team agreed that the WG pages don't all have to follow the same format.
Distro Integration
Developer Infrastructure
ACTION: Work with Ammone and Michelle to better document how new members can submit projects on the Wiki.
Resolved 10/30, Michelle will work with Ammone.
Revist the RFP process page and see how we can fill in any gaps for new members.
Action: How are tasks/requests being tracked?
Can we create a spreadsheet that tracks all RISE requests tasks. And go over this spreadsheet during the last 15 mins of the TSC call.
Michelle will bring up as a topic of discussion for the TSC group.
19 Oct 2023
Attendees:
Michelle Martineau, The Linux Foundation
Heinrich Schuchardt, Canonical
Jeff Law,
Ammone Chapackdee, Rivos
Kumar Sankaran, Ventana
Simon Wang, Andes
Nathan Egge, Google
Jian Zhang, BOSC
Randall Bosetti, Google
Ming-Yu Hung, Mediatek
Daniel Barboza, Ventana
Anup Patel, Ventana
David Weaver, Akeana
Andrei Warkentin, Intel
Simon Harvey,
Wu Fei, Intel
Gordan Markus, Canonical
Paul Walmsley, SiFive
Tim Ouyang, Andes
Agenda
Welcome BOSC!
RISE RVI Summit F2F
RISE 2FTE Reporting
RISE Social Media Integration
Kernel and Virtualization Deep Dive
WG Updates
AIs from last week
Welcome BOSC!
RISE RVI Summit F2F
SIGN UP!
RISE is sponsoring a lounge with couches at the Summit, and we'd like to have someone from the Board or TSC there, particularly at busy times such as coffee breaks. If you can set aside an hour, please add your name to the schedule so we know to expect you.
https://docs.google.com/spreadsheets/d/1Y8L0We5GZCbW8I1s8ruD-U9j6BgSs6DHRIwJ8R7U1fc/edit#gid=0
REMEMBER:
All members attending the F2F GB or TSC meetings in November will need to register via the Signup Sheet. If you are not sure, please still add your name. The final list is due to NVIDIA by today.
https://docs.google.com/spreadsheets/d/1dNK8asRHHlCcU-1OJ7mP-5uTC8fR5IVDvpOXZipI4tA/edit#gid=0
RISE 2FTE Reporting
RISE will implement a reporting cadence for Sponsors who have elected to contribute 2FTE.
Sponsors will report quarterly on the contributions of their allocated support for RISE Projects.
Up to 10 contributions can be reported per form, multiple forms can be submitted.
Forms will be reviewed/audited by RISE TSC Technical leads.
Please confirm the reporting contact for your organization.
RISE 2FTE Reporting Contacts
RISE 2FTE Quarterly Reporting Form
RISE Sponsorship Agreement:
Sponsors agree to pay the fees specified in Exhibit C and provide (if the Designated Engineering Resources option is selected) at least 2.0 full-time engineers, or the equivalent of appropriate technical ability who will contribute towards the prioritized agreed-upon RISE technical roadmap following the directions of the TSC (as defined in the Charter). Sponsors are encouraged to make additional technical contributions beyond the minimums required in this Agreement.
RISE Social Media Integration
We are excited to announce that RISE is now on social media!
Coming soon: Facebook, X/Twitter
At this time we will not be on Instagram
There is also now a new mailing list social@riseproject.dev for coordination. Please contact us at that address if you would like anything posted or have any comments, questions, or concerns.
Kernel and Virtualization Deep Dive
Link to slides
https://docs.google.com/presentation/d/1a2Ph1nKlet2x2vCpDPks7PA2v61cn0EuUIzJyGByqLQ/edit?usp=sharing
WG Updates
AIs from last week
Responses for Go Runtime Priority
Access to Toolchain CI boxes
How is roadmap planning for 1H24 going?
Survey results
Update from Evan - converting Google drive “inbox” spreadsheets to Wiki
Finishing up setting up WG infrastructure
Distro Integration
Developer Infrastructure
12 Oct 2023
Attendees:
Brian Harrington, Red Hat
Ammone Chapackdee, Rivos
Kumar Sankaran, Ventana
Nathan Egge, Google
Daniel Barboza, Ventana
David Weaver, Akeana
Mason Li, Mediatek
Amit Pabalkar, NVIDIA
Terje Bergestorm, NVIDIA
Evan Harrison, LF
Andrew de los Reyes (Adler), Rivos
Paul Walmsley
MyungJoo Ham, Samsung
Tim Ouyang, Andes
Trilok Soni
Agenda
RISE Lounge and F2F Meeting Sign Up
2FTE Reporting Forms/Process
GCP Check In
RFPs
WG Open Discussion
AIs from last week
RVI RISE Lounge/ F2F Meeting Signup
SIGN UP!
RISE is sponsoring a lounge with couches at the Summit, and we'd like to have someone from the board there, particularly at busy times such as coffee breaks.
If you can set aside an hour, please add your name to the schedule so we know to expect you.
REMEMBER:
All members attending the F2F GB or TSC meetings in November will need to register via the Signup Sheet.
If you are not sure, please still add your name. The final list is due to NVIDIA by today.
2 FTE Reporting Form
RISE will implement a reporting cadence for Sponsors who have elected to contribute 2FTE.
Sponsors will report quarterly on the contributions of their allocated support for RISE Projects.
Up to 10 contributions can be reported per form, multiple forms can be submitted.
Forms will be reviewed/audited by RISE TSC Technical leads.
RISE 2FTE Reporting Contacts
RISE 2FTE Quarterly Reporting Form
Please confirm the reporting contact for your organization.
Action: When does the first quarter start? And when does the reporting start
RISE Sponsorship Agreement:
Sponsors agree to pay the fees specified in Exhibit C and provide (if the Designated Engineering Resources option is selected) at least 2.0 full-time engineers, or the equivalent of appropriate technical ability who will contribute towards the prioritized agreed-upon RISE technical roadmap following the directions of the TSC (as defined in the Charter). Sponsors are encouraged to make additional technical contributions beyond the minimums required in this Agreement.
GCP Check In
Toolchain CI
Jeff – due to personal issues, my time will continue to be very limited in the near term. I recommend Rivos take the lead on this as they have a gitlab based CI system and can utilize additional runner capacity
Kernel CI update
Patchwork CI migration is complete
Next phase - extending build/tests
Setup info: https://github.com/linux-riscv/github-ci/wiki
Build info: https://github.com/linux-riscv/linux-riscv/actions
Results: https://patchwork.kernel.org/project/linux-riscv/list/
Questions: bjorn@rivosinc.com
Next steps from Dev Infra WG
RFP Update
Go Runtime
3 bids submitted/reviewed
Waiting on feedback from one contractor
Need priority from TSC members
libjpeg turbo
LF to work directly with maintainer
Multimedia - hold for Nathan
Review priority from proposed project list
Select Q1 2024 projects
Action: Request to send out a note to the TSC for priority for the RFP, if people have specific priorities they can provide the detail/s.
Email the TSC Public mailing list
And Language Runtime WG, email the whole group on the priority list - 54 down to 72
What area do we want the contractor to work on first
Working Group Challenges
[Rivos] Software Optimization Guide
AIs from last week
Action: When does the first quarter start? And when does the reporting start
Action: Request to send out a note to the TSC for priority for the RFP, if people have specific priorities they can provide the detail/s.
Email the TSC Public mailing list
And Language Runtime WG, email the whole group on the priority list - 54 down to 72
What area do we want the contractor to work on first
05 Oct 2023
Attendees:
Brian Harrington, Red Hat
Ammone Chapackdee, Rivos
Kumar Sankaran, Ventana
Randall Bosetti, Google
Nathan Egge, Google
Daniel Barboza, Ventana
Felix Freiman, MediaTek
Sunil V L, Ventana
Ludovic Henry, Rivos
Simon Harvey, ImgTec
Brian Harrington, RedHat
Anup Patel, Intel
David Weaver, Akeana
Agenda
Firmware Deep Dive
WG Challenges - Open Discussion
AIs/Opens
Firmware Deep Dive
Completed projects
New projects created / added
EDK2_00_17 - Extension Discovery - UEFI PI spec change being proposed.
UBOOT_00_01 - PCIe Passthru - Upstream patch under review.
SBI_00_01 - Sparse HARTID Support in OpenSBI - Upstream patches under review.
Development Completed
EDK2_00_16 - Svpbmt support - Development Complete, waiting for EDK2_00_17.
EDK2_00_09 - CMO support - Development Complete, waiting for EDK2_00_17.
EDK2_00_06 - SSTC support - Development Complete, waiting for EDK2_00_17.
EDK2_00_01 - MultiArchUefiPkg - Validation completed by two semiconductor companies.
Long-term Projects
EDK2_00_02 - StandaloneMmPkg - RPMI spec updates proposed, initial evaluations done, Patches to unify ARM and RISC-V code.
Need to create wiki pages for individual projects.
Firmware-first RAS error handling
Being discussed / specification changes proposed in RVI forums.
PoC in progress.
Universal Payload (UPL) specification impacts on various FW
Ecosystem Enablement
EDK2 support being added on vendor hardware platforms.
Sophgo SG2042 and MILK-V Pioneer.
StarFive VisionFive 2.
Intel and Ventana helping to upstream the support.
WG Challenges - Open Discussion
AIs/Opens
GCP Update: Any news on Toolchain CI?
RFPs in flight - updates
Go Runtime - 3 bids to review
libjpeg-turbo - ?
Multimedia - ?
28 Sep 2023
Attendees:
Andrei Warkentin, Intel X
Brian Harrington, Red Hat X
Ammone Chapackdee, Rivos X
Evan Harrison, The Linux Foundation X
Paul Walmsley, SiFive X
Kumar Sankaran, Ventana X
Randall Bosetti, Google X
Tim Ouyang, Andes
Nathan Egge, Google X
Daniel Barboza, Ventana X
Felix Freiman, MediaTek
Ludovic Henry, Rivos
Simon Harvey, ImgTec
Fei Wu, Intel
Anup Patel, Intel
David Weaver, Akeana X
Andrew De Los Reyes
Jeff Law
Kris Murphy
Agenda
TSC Chair Update
System Libraries Deep Dive
libjpeg turbo Proposal
WG Updates
Board Meeting Recap
AIs from last week
Future Topics
FW Deep Dive (next week)
RFP Project Review
TSC Update Preso for RVI Summit
RISE TSC Chair Closure
The only candidate for the RISE TSC Chair was Nathan Egge of Google
There are a few concerns raised:
Google is already the GB Chair; optics concern for Google to also chair TSC
The workload for the TSC Chair position is viewed as high, so there is a desire to make it more manageable
Proposal: Have 3 equal RISE TSC co-chairs (Nathan, Kumar, Adlr) where each focuses more deeply on particular Workgroups / areas
TSC Co-chair | Workgroup 1 | Workgroup 2 | Workgroup 3 |
Nathan | System Libraries | Language Runtimes | Developer Infrastructure |
Kumar | System Firmware | Kernel | Simulation |
Adlr | Linux Distro | Compiler & Toolchains | Debug & Profiling |
System Libraries Deep Dive
libjpeg turbo Proposal - review
Open discussion on concerns
Email shared with TSC chairs - details from libjpeg turbo
Working Group Challenges
Open Discussion
Board Meeting Recap
TSC Chair update
2 FTE tracking and WG Engagement Expectations
RVI meeting
RISE Feedback on RVI Specs
AIs from last week
This doesn’t include WG-specific AIs, just the ones that have a global effect.
How is roadmap planning for 1H24 going?
Survey results
Converting Google drive “inbox” spreadsheets to Wiki
Wiki quality and overall TSC accountability
Identify RISE member engineers assigned to projects (AI: WG leads)
Ensure they have access (AI: TSC reps + PMs)
Ensure they update project pages (AI: TSC reps + internal company mgmt)…
Why is attendce so low for today's meeting?
21 Sep 2023
Attendees:
Andrei Warkentin, Intel
Brian Harrington, Red Hat
Ammone Chapackdee, Rivos
Evan Harrison, The Linux Foundation
Paul Walmsley, SiFive
Kumar Sankaran, Ventana
Michelle Martineau, Linux Foundation
Randall Bosetti, Google
Tim Ouyang, Andes
Nathan Egge, Google
Daniel Barboza, Ventana
Felix Freiman, MediaTek
Ludovic Henry, Rivos
Simon Harvey, ImgTec
Fei Wu, Intel
Anup Patel, Intel
David Weaver, Akeana
Agenda
RFP Bid Process
Debug and Profiling Deep Dive
Language Runtimes Deep Dive
WG Updates
AIs from last week
RFP Bid Process
Projects up for bidding will be featured on the RISE wiki and advertised on RISE social media accounts.
TL will be responsible for adding summaries to their Project Wiki page in enough detail to allow vendors/individuals to accurately bid on the work.
Bidders are required to submit:
Project Scope and Requirements
Cost Breakdown
Payment Schedule
Timeline and Schedule
Qualifications and Experience
References and Testimonials
Additional Services and Options
Contract Terms and Conditions
Debug and Profiling Deep Dive
Activities
Had WG meeting on Sep 12
Added DP_01_003 for 2023-2H
Projects Status Updates
All RVV instructions except floating-point and fixed-point have been enabled
Implemented simulation of compressed integer instructions and testing is in progress
Code is ready, but depends on kernel to define TASK_UNMAPPED_BASE for 32bit RISC-V
I saw it’s upstreamed, need to confirm with the owner
Got the current status of these tools
DP_00_001 - Valgrind vector support
DP_01_003 - GDB Simulator - Add Zc support
DP_05_001 - Address Sanitizer (for 32bit)
DP_04_001 - Userspace Cycle/Instret access
Evaluate GDB/LLDB/OpenOCD
2024-1H Plan
Simpleperf, Valgrind, Perf CTR, OpenOCD - Not finalized
Challenges
More projects
Language Runtimes Deep Dive
Scope (refresher)
The Languages identified to focus by Rise Members - Java (OpenJDK), Go, Python, Android Runtime, .NET Runtime
Build and test on RISC-V Hardware
Accelerate the runtimes
Add support to most common libraries
2H2023 Goals:
Java - Backport RISC-V Support to OpenJDK 17 - Completed
Java - Backport RISC-V Support to OpenJDK 11 - Ongoing
Pull request at openjdk/riscv-port-jdk11u#3
Java - Distribute Java 11, 17, 21 with Adoptium - Ongoing
Lack of hardware, exploring using QEMU for CI machines
Java - Various compiler optimizations - Ongoing
Go - Build and Test Go runtime on RISC-V - Ongoing
Go - Support for hardware feature detection - Ongoing
Go - Accelerate crypto/md5 - Ongoing
Go - Integrate RVI Profiles as baseline compilation - On hold
Go - Various compiler optimizations - Ongoing
Challenges
Access to machines for CI (boards and/or QEMU+x86)
User-space emulation too “weird” for some applications (application says riscv, kernel and /proc says x86)
Slower per-core, but can do 64+ cores. Great for parallelizable testing, terrible for single-core tasks (ex: linking)
Still faster than fastest RISC-V board (ex: VisionFive 2), also supports V and other extensions
Exploring using QEMU+x86 for lack of performant RISC-V boards
Need to use QEMU System Emulation
Uncertainty about RVI profiles:
To C or not to C
Most problematic in Go - AOT compilation
We don’t care that anyone adds support for it, but it’s hard to say “it can’t be part of the baseline profile”\
Low engagement in WG
Plenty of actions happening in upstream communities
But, little to no engagement in RISE WG mailing lists and meetings
Discussions
Involved in RVI J-Extension WG
Bringing JIT expertise for spec definition
Trying to figure out usability and usefulness for Concurrent GCs
Zjid - I/D Cache Coherency
Zjpm - Pointer Masking / Memory Tagging
Interest in nodeJS.
Employee from RedHat
AIs from last week
How is roadmap planning for 1H24 going?
Survey results
Converting Google drive “inbox” spreadsheets to Wiki
Converting Google drive “inbox” spreadsheets to Wiki
Wiki quality
Identify RISE member engineers assigned to projects (AI: WG leads)
Ensure they have access (AI: TSC reps + PMs)
Ensure they update project pages (AI: TSC reps + internal company mgmt)
WG Updates
14 Sep 2023
Attendees:
Andrei Warkentin, Intel
Brian Harrington, Red Hat
Andrew De Los Reyes, Rivos
Ammone Chapackdee, Rivos
Evan Harrison, The Linux Foundation
Paul Walmsley, SiFive
Kumar Sankaran, Ventana
Michelle Martineau, Linux Foundation
Randall Bosetti, Google
Tim Ouyang, Andes
Nathan Egge, Google
Kris Murphy, Red Hat
Daniel Barboza, Ventana
Trilok Soni, Qualcomm
Agenda
RVI Nov Summit: RISE F2F
RISE TSC Changes
WG Updates/Challenges
RFP Update
AIs from last week
RVI Nov Summit: RISE F2F
Opportunity for team building at RVI November Summit
Monday November 6th
2:00pm-3:00pm TSC
Location NVIDIA
RISE TSC meeting:
Then join RISC-V Member Day and Reception at 5:00pm
Register to attend no later than 10/15
RISE TSC Changes
Andrie Warkentin will be stepping down from the TSC Chair position and a nomination period will open later today with Lars Bergstrom acting as Election official.
WG Updates/Challenges
How is roadmap planning for 1H24 going?
Survey results - 3/9 completed.
Converting Google drive “inbox” spreadsheets to Wiki
Wiki quality
Identify RISE member engineers assigned to projects (AI: WG leads)
Ensure they have access (AI: TSC reps + PMs)
Ensure they update project pages (AI: TSC reps + internal company mgmt)
Open Discussion
RFP Update
Board approved RFP Process
Denial Workflow
Management of Contractor
Intake of projects blending with TSC projects
Board approved projects to move forward
Multimedia Enablement on RISC-V - FFmpeg H.264 decode
Feedback: Need clear understanding of deliverables and what ISA is being targeted
Next Steps
Post Proposals for open bidding process (set to 1 week max for these)
Release RFP to the public
TSC to review list of RFPs
Unify RFP and non-RFP processes (streamlining these to avoid two processes)
07 Sep 2023
Attendees:
Andrei Warkentin, Intel
Brian Harrington, Red Hat
Ludovic Henry, Rivos
Andrew De Los Reyes, Rivos
Ammone Chapackdee, Rivos
Simon Harvey, Imagination
Fei Wu, Intel
Felix Freimann, MediaTek
Anup Patel, Ventana
Evan Harrison, The Linux Foundation
Jian Xiong, T-Head
Jeff Law, Ventana
Paul Walmsley, SiFive
Kumar Sankaran, Ventana
Michelle Martineau, Linux Foundation
Randall Bosetti, Google
Tim Ouyang, Andes
Agenda
Upcoming Events
WG Updates
AIs from last week
Upcoming Events
Roll call for RISE attendees/representation and discussion around activities (if needed)
UEFI FALL 2023 DEVELOPERS CONFERENCE & PLUGFEST (Oct 9-12) - Hillsboro, OR: couple firmware projects, RISE plug.
LF Member Summit (Oct 24-26) - Monterey CA
RVI NA Summit (Nov 7-8) - Santa Clara CA
TSC F2F meeting - Nov 6, location TBD
RISE Lounge - more details to come
LPC - Linux Plumbers Conf (Nov 13-15) - Richmond VA
RISC-V MC - plug for RISE; GCP Instance running Kernel CI
Any other events to consider?
WG Updates
How is roadmap planning for 1H24 going?
Open Discussion
AIs from last week
RISE Position on RVI Profile Gaps
The RISC-V Software Ecosystem (RISE) project focuses on commercial software readiness for RISC-V. Member companies include both OS and hardware vendors spanning the mobile, consumer electronics, datacenter, and automotive markets. RISE is not responsible for specifying the RISC-V ISA but does have a vested interest in ensuring the ISA has features that enable commercial software markets. Towards that end, we have developed the following position statement on RVI Application Profiles (e.g., RVA22).
To be done in the Distro Integration WG…
Tight deadline (1 week!)
Cloud Instance: have we shut down the AWS service?
Replacing incoming project spreadsheets with wiki: still to be done. How do we plan and do this?
Developer Infrastructure WG finish setting this up
32-bit support (e.g. for asan)
Ventana says - no to 32-bit
Imagination says no (even for non-Gen. Purpose compute)
Came up in https://lf-rise.atlassian.net/wiki/display/HOME/DP_05_001+-+Address+Sanitizer
Do we care for 32-bit beyond MCU space? Come back to this
31 Aug 2023
Attendees:
Andrei Warkentin, Intel
Ludovic Henry, Rivos
Andrew De Los Reyes, Rivos
Ammone Chapackdee, Rivos
Chris Smith, Imagination
Kris Murphy, Red Hat
Fei Wu, Intel
Daniel Barboza, Ventana
Felix Freimann, MediaTek
Anup Patel, Ventana
Raul Xiong, T-Head
Brian Harrington, RedHat
Jeff Law, Ventana
Kumar Sankaran, Rivos
Michelle Martineau, Linux Foundation
Nathan Egge, Google
Randall Bosetti, Google
Tim Ouyang, Andes
Agenda
Compilers and Toolchains Deep Dive (Jeff Law)
RFP Process (Ammone)
WG Challenges
AIs from last week (go over assorted notes from last week)
Compilers and Toolchains Deep Dive (Jeff Law)
Status
Tracking ongoing projects in GCC and LLVM upstreams
Primarily 2023 work, but a bit of 2024 stuff
Weekly updates to the wiki
LLVM 17 (Fall 2023) and GCC 14 (Spring 2024) targets for 2023 work
Coordination primarily through existing upstream meetings rather than RISE specific meetings
Haven’t started standing up POC CI/CD for GCC and LLVM using RISE resources
Should have been trivial, but I’ve just been crazy busy last 2 weeks
Scope
Primary focus on GCC and LLVM projects
Code optimization
Solve various problems for downstream consumers (distros)
CI/CD
Binary distribution of cross toolchains to other developers
Occasionally covering binutils or glibc when there’s clear overlap
Fairly natural as many of the developers are active in closely related projects
Expecting to touch on other areas such as debugges, profilers, system libraries, distros, etc on an as-needed basis
Priorities
Code Optimization
Clear need to support/improve autovectorization
Other extensions as they land (Zfa, Zicond, etc)
Other targeted improvements based on benchmark analysis
Address compatibility issues to ease distro consumption issues
Fix atomics to be compatible across toolchains, including inlining subword atomics
Other ABI concerns WRT gp relaxation, vector, shadow stacks, large code model, etc – closing loops with RVI PSABI WG
Support other groups
Backtracing w/o dwarf unwind tables for firmware and profilers
System libraries via ifuncs, function multiversioning, etc
Binary distribution of cross compilation toolchains
Challenges
Hardware access
Bootstrapping & testing GCC takes ~28 hours, without testing the various extensions – QEMU user mode emulation, 40c systems, “primary” GCC targets on modern hardware – 1 hr
Benchmarking is virtually impossible outside a very small group of developers due to lack of hardware
Compiler community involvement
Much of the GCC development coordination effort falling on my shoulders
I’m struggling with visibility into upstream LLVM work
RFP Process (Ammone)
Background
Tim Kilbourn
Ammone Chapackdee
RFP Process Doc:
RISE improves the software ecosystem for RISC-V by working directly with upstream open source projects to support the RISC-V architecture.
Companies that have pledged support to RISE will make some contributions to these projects, but it is not expected that they will have all the needed expertise.
The Request for Proposal (RFP) process allows RISE to extend its impact by supporting others to do the work that the Technical Steering Committee (TSC) identifies. The RFP process strives to be open and transparent, in the spirit of the open source communities in which it participates.
Process - Entire Lifecycle of a Proposal
All Rise Members are invited to propose projects
Link to be shared on wiki for members ONLY.
TSC/WG will review and recommend Proposal Projects to GB
Proposals will be reviewed in GB and be subjected to voting
GB will have final approval
Public forum ex: LinkedIn Post, Wiki etc
Quotes/SOW submission will be collected via Google Form
Bidding will be open for 1 week
Proposals will be public for contractors to submit quotes/SOW
Status of contracts will remain public
Open/New, Closed/Awarded
Will have no mention of cost
TSC/WG will review and recommend bid(s) to GB
Bids will be reviewed in GB and be subjected to voting
GB will have final approval
Award Contract will follow LF Contractor Request Process
WG/Tech Lead will manage engagement with contractor
Ensuring contractor is delivering per SOW
Updates are expected as an open project
Wiki, DeepDives
Challenges to be brought to TSC/GB
WG/TL will monitor the contractor until tasks are complete (per SOW)
WG/TL will conclude all work with contractor
All invoices are to be approved by WG/TL for payment
LF Contractor Request Process (covers payment process)
Conception: Identification, Socialization and Collection
Recommendation and Approval
Publication and Bidding
Publication and Bidding - cont’d
Bid Review > Approval > Award Contract
Execution
Execution - cont’d
Conclusion of Work/Contract
Next Steps
Please provide feedback to the RFP Process
Add Project Proposals to the RISE: Contractor Project Proposal list
Present RFP Process to GB for approval 9/14/2023
Present recommended Projects from list on 9/14/2023
Push 2-3 projects through RFP process
Award Contracts by Mid Oct.
WG Challenges
AIs from last week (go over assorted notes from last week)
Cloud Instance: Can we deprecate AWS service?
Public access to spreadsheets (RO access to google drive [andreiw: meh] or just replace with a spreadsheet on the Wiki [would simplify process])
Developer Infrastructure WG finish setting this up
32-bit support (e.g. for asan)
Came up in https://lf-rise.atlassian.net/wiki/display/HOME/DP_05_001+-+Address+Sanitizer
Do we care for 32-bit?
Other assorted notes
24 Aug 2023
Attendees:
Andrei Warkentin, Intel
Andrew De Los Reyes, Rivos
Kris Murphy, Redhat
Trilok Soni, Qualcomm
Ammone Chapackdee, Rivos
Brian Harrington, RedHat
Amit Pabalkar, NVIDIA
Daniel Barboza, Ventana
Jeff Law, Ventana
Jenn Bonner, Linux Foundation
Kumar Sankaran, Rivos
Michelle Martineau, Linux Foundation
Nathan Egge, Google
Randall Bosetti, Google
Simon Harvey, Andes
Tim Ouyang, Andes
Agenda
Assorted Notes (Andrei)
Distro and Integration Deep Dive (Brian Harrington)
WG Challenges?
AIs from last week
Assorted Notes (Andrei)
Public access to spreadsheets
Role of spreadsheet vs wiki
Need for public (RO) access
Developer Infrastructure WG
Need a WG lead!
Finish setting it up (Google drive, Wiki Pages, project spreadsheet)
Build Farm project needs a project page.
Reporting project status
Use wiki page
Not the WG lead’s job (to fill it or to prod project owners to do so). How do we encourage desired behavior?
Board Update
2H23 - https://lf-rise.atlassian.net/wiki/pages/viewpage.action?pageId=8588062
1H24 - https://lf-rise.atlassian.net/wiki/pages/viewpage.action?pageId=8589314
Need to figure out 1H24 priorities for all WGs.
Board request to align towards long term priorities (e.g. ‘server’ and ‘mobile’.)
It’s pretty hard to create an update, and this is a Wiki quality problem.
Next time, I’ll ask (some) WG leads for an update.
The WG leads will ask the project owners for an update… it might take forever.
(isn’t it easier to just keep the wiki up-to-date :-))?
Page quality
Pages directly under the WG root represent active projects. Projects are active until the reporting period is over.
Completed/Retired projects will move under the a page similar to “2H23 Projects”.
Anything not in the current reporting period and not completed needs to be in a WIP/Attic/whatever.
Page quality
Still have blank pages
pages with no project scope,
updates and status.Some WGs have no status roll up
Reporting progress is hard if there’s no way to discern progress.
If your project references a laundry list of upstream contributions, it is even more important to keep the apparent status updated. For example, I have no idea what the status for https://lf-rise.atlassian.net/wiki/display/HOME/LR_00_004%3A+Backport+RISC-V+support+to+jdk11u is.
Want to avoid clutter
Tracking dependencies - what if you identify a dependency in another WG
No - Send email to WG list identifying as being dependent, requesting project to be selected.
Yes - Update the project wiki page adding yourself as a dependent project. Update YOUR project page listing the dependency.
Yes. Is it prioritized?
No. Send email to WG list asking for project to be added (by lead) to spreadsheet (and be prioritized). Follow up with the lead.
Hit up the spreadsheet. Is the project listed there?
What about specs?
Note the dependency. Is this a change to an existing spec? Is this a non-existing spec or a spec that isn’t invested enough in?
RISE will report this info to RVI via a liaison meeting.
Contractor Proposal
Each prioritized project started as a spreadsheet item.
Then it gets a Wiki page, with the requirements, dependencies, measure of success, etc.
At some point everyone realizes the project isn’t moving forward and needs a contractor proposal.
I understand contractor spend needs to be private. Can keep sequestered in a spreadsheet, associated with the project ID.
Or at least start “wiki first”.
Came up in https://lf-rise.atlassian.net/wiki/display/HOME/DP_05_001+-+Address+Sanitizer
Do we care for 32-bit?
Can we consider doing these directly in the Wiki instead of having this be another document? The template sees pretty similar to a project write up.
Doing these in the Wiki would save having to convert said document into a wiki page…
Doing these in the Wiki would keep to the open nature of how we operate.
32-bit support (e.g. for asan)
Distro and Integration Deep Dive (Brian Harrington)
Status
Assembling an entire distro exists as a race condition:
Some truly are waiting for systems with vector processing, et al
Most are folks used to building things on the OS, not the OS itself. This leads to confusion because it straddles vendor and upstream work.
Some developers are waiting to have “hardware available”.1
Other developers are see the large numbers of compiled packages and assume work nears completion. (“90% of packages successfully compile)
Yet others are (rightfully) noting that the stability and performance of hardware is “not ready” or “too slow”, but this is a matter of perception.
The work proceeding at the fastest pace is that driven by single members with a clear vision and need (e.g. Fedora which is currently receiving direct contributions from RISE members: Rivos & Red Hat).
Scope
Currently the scope of projects is still mostly focused at a single member level.
There are exceptions, like Nathan Egge from Google proposing a straw man Gentoo build for the community.
Non-member updates continue to be monitored by Redbeard.
Debian is at the early stages of development (they’re discovering odd issues in fakeroot and other packages which are causing systemic build issues).
Priorities
Member companies proceed independently with the hope of later coordination
Samsung has been reporting regular progress on Tizen
Red Hat continues to see interest around automotive use cases, but this will require a multi-year timeline around achieving functional safety certification (i.e. ISO 26262 certification) for anything related to RISC-V
Challenges and Needs
Ambiguity about working group participation has lead to sporadic participation from community members. We languish with the awkwardness of trying to coordinate communities from behind closed doors.
There seems to be trepidation about “not doing the right thing” or “stepping out of [a members] lane”. This is a missed opportunity for identifying the organization’s blind spots.
More hours in the day to complete what needs to be done. 😁
WG Challenges?
Developer Infrastructure WG
Lead and scope?
AIs from last week
Contractor Proposal Spreadsheet add your projects ASAP!
Schedule your PM support meeting with Jenn
Meeting Scheduling
Attendance
Follow up emails w/ action items
Next Week:
2 FTE Contributor Audit Discussion
17 Aug 2023
Attendees:
Ammone Chapackdee, Rivos
Anup Patel, Ventana
Daniel Barboza, Ventana
Fei Wu, Intel
Jeff Law, Ventana
Jenn Bonner, Linux Foundation
Kumar Sankaran, Rivos
Ludovic Henry, Rivos
Michelle Martineau, Linux Foundation
MyungJoo Ham, Samsung
Nathan Egge, Google
Paul Walmsley, SFive
Randall Bosetti, Google
Raul Xiong, Alibaba
Simon Harvey, Imagination
Sunil V L, Ventana
Tim Ouyang, Andes
Uli Drepper, Red Hat
Agenda TBD
10 Aug 2023
Attendees:
Andrew De Los Reyes, Rivos
Andrei Warkentin, Intel
Mason Li, Mediatek
Jeff Law, Ventana
Jenn Bonner, Linux Foundation
Michelle Martineau, Linux Foundation
Daniel Barboza, Ventana
Paul Walmsley, SFive
Tim Ouyang, Andes
Simon Harvey (Imagination)
Kumar Sankaran, Rivos
Ammone Chapackdee, Rivos
Agenda
Simulation and Emulation WG Deep dive (Daniel Barboza)
Status
Scope
Priorities
Challenges and needs
The Working Group is committed solely to QEMU at this moment
QEMU supports RISC-V for 6 years, but advanced features, new extension/feature support and ecosystem enablement need focused
efforts.
This Working Group focus on:Add support for new extensions and features
Bridge gap between QEMU RISC-V support and other mature architectures like x86 and ARM64
Collaboration to avoid duplication of work
Ecosystem enablement
WG meets first Wednesday of every month at 7AM PT.QEMU virtualization support (KVM and Emulated)
Full system emulation mode
KVM support: shared goal with Kernel and Virtualization WG
Emulation support: required to support virtualization development when hardware is not readily available
QEMU linux-user support
"Docker mode": binaries are run in the target environment (architecture/chip/board)
Use by Toolchain/general application development
Based on deduplicated projects with highest priorities, WG selected:
Already accepted. Will be available in QEMU 8.1 (to be released this month)
Patches sent for review. En route for QEMU 8.2 (Q4 2023)
Patches sent for review. Design discussions happening
Patches sent for review. En route for QEMU 8.2 (Q4 2023)
Patches sent for review. En route for QEMU 8.2 (Q4 2023)
Upstreaming not started
Requires ACPU support for AIA to be accepted first
Upstreaming not started
Upstreaming not started
Upstreaming not started
QEMU linux-user riscv_hwprobe syscall support
QEMU Virtual IRQ and IRQ filtering support
QEMU PCIe passthru on x86 hosts
QEMU Vector Crypto Support
QEMU ACPI support for AIA
QEMU ACPI support for PLIC
QEMU RVA22U64/S64 profile support
QEMU IOPMP support
QEMU WorldGuard support
Other projects worked on by RISE members tracked in the wiki and spreadsheet
QEMU
RVV performance enhancements
Vector TCG Host-Native implementation
Cleanup: remove prematurely merged non-standards
SLX32 support
Vendor extension framework support
Promote more participation in the community mailing lists
More tests and reviews
Avoid long delays in posting follow-up versions
Include more simulators and emulators
2 Spike projects in the spreadsheet without owners/ETA
Other open source projects (e.g. gem5) that might be of RISE interest
Agenda
Status
Scope
Priorities for 2H23 (Q3 & Q4 2023)
Priorities for 1H24 (Q1 & Q2 2024)
Challenges and Needs
AIs from last week
scaling back weekly WG updates (but everyone can put a problem they are having on the agenda at any time, not having to wait for a WG deep dive)
Discussion/Questions:
Jeff Law and Andrew De Los Reyes prefer not to have weekly updates in favor of deeper conversation on the deep dives.
The group agreed.
Update on Build Farms
Cloud instance is where we are stuck.
Cloud environments are being established through LF, Google credits are pending.
Paul Walmsley provided a timeline for the Build Farm Project
Discussion/ Questions
WG Updates
System Libraries, Provided Deep Dive last week
Distro and integration. Brian OOO
Firmware, Provided Deep Dive Last week
Language Runtimes, no update
Summary
Discussion/ Questions
Kernel and Virtualization Working Group
Development completed and upstreaming started (patches)
Discussion/ Questions:
Debug and Profiling Working Group
An attempt of RVV 0.7 on Valgrind from T-Head using the dirty helpers for all instructions
Discussion/ Questions:
Compiler/Toolchain Working Group
WIll spin out at least two more small efforts to optimize away unnecessary arithmetic involving stack addresses
More generally useful of the two major bodies of work (targets 3-4 workloads within specint)
Work targeting leela integrated as well as work fixing deficiency in copy propagation found while evaluating leela work
3rd version of new fold-mem-offsets pass posted. 4th will be needed
Costing model still goofy – may spin subproject for this
Unification of target patterns from 4 submissions integrated
Diving into 3 implementations of enhancements to generic if-conversion
LLVM project more release than development focused (as expected)
PSABI proposal to provide unified attribute across LLVM/GCC to control architecture specifications for function multiversioning and optimization
GCC auto vectorization – improving code when we know loop trip counts and for loops with control flow that maps well into masked vector ops
GCC address rewriting to eliminate unnecessary arithmetic
zicond/if-conversion – improve performance by using branchless sequences for various idioms (conditional moves, conditional arithmetic/logicals, etc)
Discussion/ Questions:
Nathan Egge: The developer environment is now on the wiki and available for those outside RISE to use
03 Aug 2023
Attendees:
Daniel Barboza (Ventana)
Paul Walmsley, (SiFive)
Randall Bosetti, (Google)
Ludovic Henry (Rivos)
Felix Feeman (Mediatek)
Ammone Chapackdee (Rivos)
Barna Ibrahim, (Rivos)
Nathan Egge, (Google)
Kumar Sankaran, (Ventana)
Jenn Bonner (The Linux Foundation)
Sunil V L (Ventana)
Andrei Warkentin (Intel)
Anup Patel (Ventana)
Drew Fustini (BayLibre)
Michael Turquette (BayLibre)
Simon Harvey (Imagination)
Tim Ouyang (Andes)
Fei Wu (Intel)
Agenda
Introducing Jenn Bonner
Bio:
With nearly two decades of experience in technology ecosystems, Jenn has navigated her career from interoperability standards to supporting open source innovation with the Linux Foundation since 2021. As a Senior Program Manager, she plays a critical role in the operational success of organizations like the OpenWallet Foundation and RISE, and previously the Open Source Security Foundation. Her combination of operational expertise and keen business judgment positions her as a trust-building partner within the tech community. Jenn's academic accomplishments include a Graduate Certificate in Business Management from Indiana University's Kelley School of Business and a BA in Communications from the University of California, Davis.
How will Jenn support RISE?
Jenn brings a broad program management and community management background, she will be helping organize workflows and documentation associated with RISE Working Groups. She'll begin meeting with working group leads as well as TSC chairs to help focus her efforts in the coming weeks.
Firmware Deep Dive (Sunil VL) (Status/Scope/Priorities/Gap Analysis/Challenges)https://docs.google.com/presentation/d/1tcfjcTys7SoYE_sDqPwwe1ozUm36Ixy8-dSLCvy_4Zk/edit?usp=sharing
Firmware WG Status
Basic Open Source Firmware Solutions for RISC-V already present. However, advanced features, new extension/feature support and ecosystem enablement need focussed efforts.
The RISE effort will focus on
Collaboration to avoid duplication of work
Ecosystem enablement
Add support for new extensions and features using virtual platforms.
Make it easy for new platform vendors to support the firmware solution.
Bring gaps in standards/spec to RVI TG or appropriate Industry standard body.
Focus: Accelerating RISC-V adoption by upstream developers
Firmware WG meets first Wednesday of every month at 8AM PT.
Firmware WG Scope
Different Open Source Firmware projects are available. Current RISE focus is on below projects.
EDK2 (a.k.a Tianocore)
Reference implementation of complete UEFI specification and UEFI PI specification.
Supports all the features like ACPI required by the Server class platforms.
Supports Qemu virtual platform.
OpenSBI
Reference implementation of RISC-V SBI specification.
Dominant M-mode firmware solution today.
TF-M equivalent for RISC-V
Provide a secure boot implementation for RISC-V microcontrollers and other embedded processors, typically running in M-mode or M+U-modes.
Priorities for 2H23 (Q3 & Q4 2023)
Based on deduplicated projects with highest priorities, WG selected:
MultiArchUefiPkg
Ability to run non-native UEFI drivers.
Required for OptionROM.
MMU Support in EDK2
Support basic MMU (Sv57 etc) first and then Svpbmt
It is a dependency for MultiArchUefiPkg
StandaloneMMPkg in EDK2
Long term project to provide secure EFI variable access, secure boot etc.
Depends on APTEE/ COVE specs.
CBO extension support in EDK2
Support CBO extensions (Zicbo*) in EDK2 for cache management
SSTC Support in EDK2
Support SSTC extension for timer implementation in EDK2.
CLANG support in EDK2
Big ask from senior EDK2 maintainers maintaining common modules across architectures.
CLANG doesn’t need to be different to cross build EDK2 for different architectures.
Upstreamed this week.
TF-M secure bootloader for RISC-V
Provides a secure boot implementation for RISC-V microcontrollers and other embedded processors.
Other projects worked on by RISE members tracked in the wiki and spreadsheet
Andrei Warkentin (Intel): minor clarification - MultiArchUefiPkg enables existing and future off the shelf discrete PCIe devices to "just work" in the UEFI boot/preboot envo on RISCV PCs and servers.
Priorities for 1H24 (Q1 & Q2 2024)
EDK2
Backtrace support
UefiPayloadPkg
StandaloneMMPkg
DynamicTablesPkg
EasyDriversDxe
FdtBusDxe
CompilerIntrinsic Libs
Build Size reduction
Firmware First RAS handling
OpenSBI
RAS/SSE
Sparse HartID support
Native/hosted debug support
TF-M Run time features
Gap Analysis
StandaloneMMPkg project has identified few dependencies on COVE spec changes and implementation
Discussion with COVE/APTEE leads in progress
Coreboot / linuxboot related project proposals from member companies.
Drew Fustini (BayLibre): clarification - FdtBusDxe allows EDK2 to make use of device trees?
Andrei Warkentin (Intel): fdtbusdxe allows platform drivers to follow the uefi driver binding model instead of just hardcoding some mmio address at build time, so yes using fdt to configure drivers on the fly - just like uboot does today – the net goal here is to make it easier to port edk2, but also to avoid having to do separate builds for minor board/soc variations
Challenges
Build and test system for EDK2.
Request for 1 node added in Build Farms proposal.
Not urgent, so not required to be part of rapid build farm pilot.
BayLibre Presentation
Michael Turquette – joined by Drew Fustini (BayLibre)
WG Updates (not discussed due to time constraints, but updates listed in slides)
System Libraries Working Group
Released updated RISC-V developer environment [1]
gcc-13.2.0 (2023-7-27)
cmake-3.27.1 (2023-7-25)
Fixed QEMU user bug with getauxval() and sent patch upstream [2]
Wrapped qemu-riscv64 to pass -cpu rv64,v=true,vext_spec=v1.0
Bumped toolchain package versions
Larger disk image, ~74M smaller download
libyuv RVV bug fixed upstream, pulling into AOSP surfaced clang rounding issue [3]
Fixed minor warnings when building gcc-13.2.0 riscv/atomic.c [4], patch in flight
Started “Best Practices” document for RVV development and optimization
[1] https://people.videolan.org/~negge/RISCV-DevEnv-2023-07-31.tar.gz
[2] https://lists.nongnu.org/archive/html/qemu-devel/2023-08/msg00454.html
[3] https://lists.riscv.org/g/sig-android/topic/100508949#270
[4] https://lists.riseproject.dev/g/RISE-Compilers-and-Toolchains-WG/message/39
Simulator Emulator Working Group
WG monthly meeting yesterday
Covered general updates
New project added:
Assignee: Daniel Barboza (Ventana)
ETA: end of 2023 (QEMU 8.2)
Language Runtimes Working Group
Support for hardware feature detection
MD5 Intrinsics
Long-time contributors to Go on RISC-V may do contract work for RISE
Kernel and Virtualization Working Group
Development completed and v1 patches will be out soon
Development completed and upstreaming started (patches)
Firmware Working Group (deep dive, see above)
Distro and Integration Working Group
(No update provided)
Debug and Profiling Working Group
SiFive added simpleperf, which is primarily used on Android
Andes updated the status of gdb/lldb on RISC-V
Compiler/Toolchain Working Group
Crazy busy week. Update just GCC focused
Vectorization work continues – dynamic rounding, x264 specific opts, ABI annotations, etc).
Atomics – Ztso bits landed in GCC, PSABI moving forward on this issue
a.6/a.7 mappings got lost in the gcc-13.2 shuffle. Rescheduled for gcc-13.3 in the winter
Address rewriting – path forward for Jivan and Manolis’s work found. Closing investigation phase of adjusting large offset addresses
Zicond moving along. Cost model problem deeper than anticipated, may spin out distinct task for that. May spin out some generic work that will allow zicond to slightly improve CRC computations (when not using clmul or table lookups)
Bugs highlighted need for testing code generation of various extensions
Rivos indicated they’re using free github runners – working better than expected. Need to figure out how that fits into the overall CI plan
Scaling back WG updates
The original value prop behind the weekly WG updates was motivated by two needs:
Having something “to do” and talk about in the weekly TSC calls.
Having the necessary sync-ups as the TSC spun up to prepare the 2H23 priorities for the Board
Now we have weekly deep-dives and other material (external guests/presos or project reviews). Do we still want to continue with the weekly WG updates? Is this a useful tool for the leads?
AIs from last week
Not discussed
27 Jul 2023
Attendees:
Jeff Law (Ventana)
Mason Li (Mediatek)
Trilok Soni ( Qualcomm)
Brian Harrington, (RedHat)
Daniel Barboza (Ventana)
Paul Walmsley, (SiFive)
Randall Bosetti, (Google)
Ludovic Henry (Rivos)
Felix Feeman (Mediatek)
Elliot Hugues, (Google)
Ammone Chapackdee (Rivos)
Barna Ibrahim, (Rivos)
Nathan Egge, (Google)
Kumar Sankaran, (Ventana)
Michelle Martineau (the Linux Foundation)
Jenn Bonner (The Linux Foundation)
Agenda
System Libraries Deep Dive (Nathan Egge)
System Libraries WG Status
Large set of system libraries already build and run on RISC-V, however core optimization work is stalled due to lack of clear targets, available hardware, extension expertise, broken tooling and developer funding.
The RISE effort will focus on
Collaboration to avoid duplication of work
Ecosystem enablement
Engage OSS community to understand, remove blockers to RISC-V development
Produce “Best Practice” guides, developer & testing environments, CI/CD scripts
Identify key areas for investment: multimedia, AI/ML, scientific computing, HPC, …
Developer access to representative hardware
Focus: Accelerating RISC-V adoption by upstream developers
System Libraries WG meets every other Tuesday @ 8am PT - Please join us!
Scope
Extremely large: Potentially 1000’s of OSS projects need RISC-V code
Not possible for RISE to enable entire ecosystem, in some cases lack domain expertise
Focus on open source software for Linux (covers large set of users)
Only consider RVI ratified extensions, e.g., intentionally not supporting RVV 0.7.1
Work to enable RISC-V support for RISE high priority projects [1]
Find ecosystem dependencies on other WGs, file and fix bugs upstream
Document best practices, publicize RISE priorities, community outreach
Solve enablement problems where developers are. Need to unblock existing projects
Extremely large: Potentially 1000’s of OSS projects need RISC-V code
Not possible for RISE to enable entire ecosystem, in some cases lack domain expertise
Focus on open source software for Linux (covers large set of users)
Only consider RVI ratified extensions, e.g., intentionally not supporting RVV 0.7.1
Work to enable RISC-V support for RISE high priority projects [1]
Find ecosystem dependencies on other WGs, file and fix bugs upstream
Document best practices, publicize RISE priorities, community outreach
Solve enablement problems where developers are. Need to unblock existing projects
[1] https://lf-rise.atlassian.net/wiki/display/HOME/2023+H2+Priorities
Priorities for 2H23 (Q3 & Q4 2023)
Based on deduplicated projects with highest priorities, WG selected:
glibc
bionic
Openssl
BoringSSL
zlib
Other system libraries worked on by RISE members tracked in the wiki and spreadsheet
Gap Analysis for RISC-V Ecosystem
Identified need to target a specific ABI
May require coordination with Distro Integration WG
Combinatorial explosion of configurations not tractable for testing
Ecosystem has limited ability to optimize for RISC-V
RISE (this WG) should make a decision and publicize it
Request for turn-key development environment
Could also be repurposed for CI / CD on github or gitlab
Combination of QEMU + Kernel + Distro with all extensions and features enabled
Suitable for building, running and testing RISC-V code in repeatable fashion
Address near-term problem of patches not landing due to inability to test
Possible to wrap this with scripts that permute RISC-V hardware, e.g., RVV length
Developer Environment Update
Stood up QEMU + Kernel + Distro developer environment [1]
Source based, rolling release distro => easy to make and build packages
Contains developer tools by default, perfect to build OSS projects
clang-16.0.6 (2023-6-14)
gcc-13.1.1 (2023-5-5)
git-2.41.0 (2023-6-1)
python-3.12.0_beta4 (2023-7-11)
rust-1.71.0 (2023-7-12)
cmake-3.27.0 (2023-7-18)
make-4.4.1 (2023-2-26)
ninja-1.11.1 (2022-8-30)
flex-2.6.4 (2022-9-24)
bison-3.8.2 (2021-9-21)
Pros: easy-to-use, up-to-date Cons: qemu-system is slow
https://people.videolan.org/~negge/RISCV-DevEnv-2023-07-25.tar.gz
QEMU 8.0.3
Linux 6.5.0-rc3 (2023-7-23)
Gentoo userspace
Up-to-date developer tools, non-exhaustive list:
Developer Environment Kernel
nathan@vulpes ~/git/linux $ ARCH=riscv CROSS_COMPILE=riscv64-unknown-linux-gnu- make menuconfig
Developer Environment Booting
nathan@vulpes ~/RISE/DevEnv $ qemu-system-riscv64 -nographic -machine virt -cpu rv64,v=true,vlen=256,elen=64,vext_spec=v1.0 -smp 4 -m 8G -kernel Image -append "root=/dev/vda1 ro console=ttyS0" -drive file=gentoo.img,format=raw,id=hd0 -device virtio-blk-device,drive=hd0 -device virtio-net-device,netdev=usernet -netdev user,id=usernet,hostfwd=tcp::10001-:22 -object rng-random,filename=/dev/urandom,id=rng0 -device virtio-rng-device,rng=rng0
Gap Analysis for RISC-V Ecosystem (needed)
Best practices guide for optimizing RISC-V
How to translate existing packed SIMD to length agnostic RVV
Techniques to “validate” speed-up even in emulated environment, e.g. perf record
Preferred mechanism for runtime RISC-V detection
Pitfalls, gotchas to avoid “Things I wish I knew when I first started writing RISC-V”
Analyze dependency graph of linux packages
Look at top-K most depended on packages
Estimate “cost” for producing optimized routines by % SLOC of assembly
Potentially cluster these into related project areas, e.g. multimedia, AI/ML, HPC
Need for actual RISC-V hardware
Is there an interim solution we can document for performance testing?
May not be sufficient to just target QEMU when writing RISC-V optimizations
No suitable hardware currently available that matches ABI target
RISE (this WG) should make hardware available to OSS projects from top-K list
Challenges
Important APIs still not released upstream
RVV extension landed in 6.5 kernel
hwprobe() will not be exposed by glibc until 2.39 in Q1 2024
Immature tooling
QEMU support for RISC-V still has gaps
Debugging support limited
Even projects that advertise RVV support have bugs, see libyuv [1]
This is likely a bigger problem as no one is “checking” quality of implementations
Need to convince upstream to build and test yet another ISA
OSS projects notoriously underfunded and overtaxed, align on open ideology?
https://github.com/google/android-riscv64/issues/38#issuecomment-1652515652
Runtime Detection in QEMU Bug [1]
#include <sys/auxv.h>
#include <stdio.h>
#define ISA_V_HWCAP (1 << ('v' - 'a'))
void main() {
unsigned long hw_cap = getauxval(AT_HWCAP);
printf("RVV %s\n", hw_cap & ISA_V_HWCAP ? "detected" : "not found");
Case Study: libjpeg-turbo
Builds for RISCV, but has no SIMD
Case Study: libjpeg-turbo
Unit tests fail on RISCV
Case Study: libjpeg-turbo
Developer interested
Does not have funding
Can RISE fix this?
Next Steps
outreach
working on 3 identified gaps
WG Updates
Simulator Emulator Working Group (Daniel Barboza)
WG leader talked about RISE in the QEMU SIG meeting yesterday
People showed interest in how outsider could also collaborate/join meetings and mailing lists
"If meeting notes are in the wiki page, and the wiki is open, doesn't it mean that the meeting should also be open?"
We settled to keep using this QEMU SIG timeslot to talk about RISE related work in the future
Developer Infrastructure Working Group (Paul Walmsley)
Working group established. subscribe mailing list here; The Wiki page for this group has also been created and can be contributed to Here.
WG Lead: Paul Walmsley; Barna Ibrahim
Proposal to the board has been approved
Enabling Kernel & KV WG and Compiler WG
Using GCP with Google Support
Next Steps
Monitor, evaluate Build Farm usage from 2 Working Groups.
Propose Build Farm next steps to BoD in mid November
Start RISE TSC RISC-V Board Enablement needs effort
Inviting Open Source Project contributors (Barna Ibrahim)
Board Supported to have TSC decide to invite open source maintainers to specific WG.
Board Ask 1) Process 2) Keep a list
A lot of RISE prioritized initiatives are on specific Open Source projects. TSC Working Groups need a path to communicate and engage directly to maintainers/developers for their respective open source projects.
Currently the public/developers only sees the wiki and no two way engagements.
A TSC’s or WG ability to invite/add an organization (An open source project maintainer/delegate) to the specific working group mailing list and meetings. For example, right now the Distro WG needs to have a path to communicate with the is Debian maintainers.
Challenge
Request
Can this be decided on TSC or WG level for each invitation or does each of the invitation need to come to Governing Board?
Contractor Engagement Process - 7/27 BoD (Barna Ibrahim)
Goals
Define a streamlined process for selecting contractors that can help us with RISE TSC priorities
Provide transparency in our engagement process
Focus on projects with clear deliverables
Request for Proposals (RFP)
Driven by Working Groups, approved by the Governing Board
Published for the public on to submit bids
WG recommends a proposal and the board votes to approve
Next Steps
Set up communication channels with the public (wiki, mailing lists, etc)
Publish our template for RFPs
Work with LFEU on the details of setting up contracts and payments
Language Runtimes Working Group ( Andrew De Los Reyes)
Summer vacations, large slowdown in contributions to projects
Support for hardware feature detection
Discussions about RISC-V profiles on golang/go#61476
Patch 1 of 4 merged
Long-time contributors to Go on RISC-V may do contract work for RISE
Kernel and Virtualization Working Group (Kumar Sankaran)
No updates from previous meeting
Firmware Working Group (Kumar Sankaran)
StandaloneMMPkg
Staging branch published - https://github.com/tianocore/edk2-staging/tree/RiscV64StandaloneMm
CLANG support
Waiting for maintainer ACK. Hope to get included in August EDK2 release.
Preparing deep dive slides.
Distro and Integration Working Group (Brian Harrington)
No new work to speak of.
Community updates noted on the wiki:
Wipe and start over beginning with 90 packages:
The procedure is to rebootstrap the port within the official archive, which means we won't import the full debian-ports archive. Therefore our next step is to build a minimal set of ~90 source packages using the debian-ports archive and then import them into the official archive.Debian announces official support, target 2025.
Redbeard will be on PTO the next two meetings. Do we need coverage?
Action item: Redbeard will send any needed updates to mailing list.
Debug and Profiling Working Group (Ammone Chapackdee)
Presented to TSC and Board DP WG Deep Dive 7.27.2023
Andes will look for an internal owner for this
eBPF
gdb/lldb
Tasks ownership
Dependency/overlap with other WG
Start a WG meeting
Update wiki
Overall positive feedback
Community Engagement
Compiler/Toolchain Working Group (Jeff Law)
GCC
Double digit improvements in Imagemagik due to generic vector work
Low level vector refactor seems to be improving build times ~10%
Better understanding of how VRULL & RAU’s address simplifications will interact
Sorted out roughly 75% of basic Zicond support across the 3 “competing” implementations
LLVM
LLVM 17 branch imminent – last ~6 months of LLVM RV work going public
Large code model – need Zicfiss extension in spike to facilitate validation
Some discussions around FTZ semantics for denorms (need it or not?)
Zvfh support no longer considered experimental
Binary toolchains
Would like to know if building with the new branch is working with LTO
Do we want to have links to Simon’s work on the RISE website
How to drive folks this this version rather than others that are out there (gitlab).
AIs From Last Week
BayLibre will be presenting 8/3/2023
20 Jul 2023
Attendees:
Jeff Law (Ventana)
Brian Harrington, (RedHat)
Daniel Barboza (Ventana)
Paul Walmsley, (SiFive)
Randall Bosetti, (Google)
Andrei Warkentin (Intel)
Ludovic Henry (Rivos)
Felix Feeman
Ammone Chapackdee (Rivos)
Sunil VL (Ventana)
Uli Drepper ( Red Hat)
Anup Patel (Ventana)
Barna Ibrahim, (Rivos)
Nathan Egge, (Google)
Kumar Sankaran, (Ventana)
Simon Harvey (Imagination)
Fei Wu (Intel)
Tim Ouyang (Andes)
Ammone Chapackdee (Rivos)
Michelle Martineau (the Linux Foundation)
Agenda
Debug and Profiling Deep Dive (Fei Wu)
Debug and Profiling WG Status
RISE members have dedicated efforts on some debug and profiling tools, but have low investments on others.
The RISE Effort will focus on
Collaboration to avoid duplication of work
Communicate RISC-V ecosystem readiness
Focus: Facilitate Efforts and Communicate Ecosystem Readiness
Debug and Profiling Scope
Category | Examples |
Dynamic Binary Instrumentation (DBI) | Valgrind, DynamoRIO |
Profiler | perf-tools, gprofng, PAPI, libpfm4 |
Tracer | eBPF, ftrace, SystemTap |
Debugger | gdb, lldb |
Checker | Address/Thread Sanitizer |
Toolchain | binutils |
Benchmarking and Analysis | LKP, SPEC CPU |
Not In Scope-Language/Application specific tools
DBI Priorities
2H2023 Goals:
Framework for RVV on Valgrind
Tens of instructions enabled for basic testcases
Basic RISC-V Vector support for Valgrind
2024 Goals:
Full RISC-V Vector support for Valgrind
Other extension such as bitmanip on Valgrind
Longer Term Goals:
Investigate other DBI solutions such as DynamoRIO
Profiler Priorities
2H2023 Goals:
Userspace cycle/instret access
Perf event discovery & encoding from JSON file
Perf-tools
2024 Goals:
Perf CTR support
Perf-tools
Longer Term Goals:
New (if any) PMU relevant spec support
PAPI, libpfm4 & gprofng are candidates
Tracer Priorities
2H2023 Goals:
Bpftrace, bcc, bpftune, cilium
Evaluate the status of eBPF based tools on RISC-V (Looking for owner)
eBPF
2024 Goals:
Depend on the evaluation above
Add the packages to popular distros?
eBPF
Longer Term Goals:
SystemTap and others are candidates
Debugger Priorities
2H2023 Goals:
Evaluate the status on RISC-V (Looking for owner)
gdb/lldb
2024 Goals:
Depend on the evaluation above
gdb/lldb
Checker Priorities
2H2023 Goals:
Support it on GCC/LLVM
Address Sanitizer
Longer Term Goals:
Thread Sanitizer
Benchmarking Priorities
2H2023 Goals:
Enable LKP framework and several benchmarks on RISC-V
LKP
2024 Goals:
Enable profiling tools on LKP
Collect performance data on real hardware
LKP
Debug and Profiling Challenges/Needs
Needs
PMU development - with the extension such as CTR
Performance benchmarking - okay to publish performance data, good enough PMU support
People to take the initial work on eBPF, gdb etc.
Hardware
Challenges
Maintain an active WG with people working on very different projects
OPEN DISCUSSION
Build Farm Proposal
Feedback being collected through EOD 7/19 (yesterday)
Paul/Barna - Rapid Build Farm proposal: https://docs.google.com/document/d/1MkG19Kt4GwAnfI6M7YlkWj13-9woTejSjJ5rHFcE5TA/edit
Assist the community quickly
Gain experience with what works and what is needed in practice
Have some concrete results that RISE can share by the time of the RISC-V Summit.
Which other WG should be enabled now? (WG Needs)
WG Updates
System Libraries Working Group
SiFive has agreed to donate a BoringSSL port for vector crypto
Google working on libflac SL_01_001
Simulator Emulator Working Group
Upstream status changed to “Completed”
Upstream Version changed to “QEMU 8.1” (late August 2023)
Language Runtimes Working Group
Update to the RISE Board
Support for hardware feature detection
Support for V extension
Go: feature detection via hwcap, hwprobe is coming soon
Port libraries and frameworks
Backports:
Feedback for the Build Farm proposal
Integration of Android Runtime
Kernel and Virtualization Working Group
Upstreaming the IOMMU driver has started (patches)
Need to support Zba, Zbb, Zbc, and Zbc extensions in the KVM ONE_REG interface
Development and upstreaming completed (patches)
This will be available in Linux-6.6
Need to support various Zvk* extensions in the KVM ONE_REG interface
Development completed and upstreaming started (patches)
Dependency on kernel side patches so might be available in Linux-6.6
Firmware Working Group
MMU support in EDK2
Phase 1 (without Svpbmt) patches upstreamed
CLANG support
Final stages of community review.
CMO support
New design under community review.
Plan to discuss and finalize 1H 2024 projects/priorities in August Monthly meeting.
Distro and Integration Working Group
Fedora Updates
Fedora community members have currently built over 90% of the packages for the current release: Fedora 38
Presently this includes a full desktop environment (KDE), containerization (Kubernetes, Podman, Containerd), and some desktop applications (Firefox, Thunderbird)
The last 10% is going to be the hardest.
Package Name | Version | Status |
gcc | 13.1.1 | Complete |
glibc | 2.37.4 | Complete |
binutils | 2.39 | Complete |
binutils | 2.40 | Ongoing |
libffi | 3.4.4 | Complete |
LLVM/Clang | 16.0.4 | Complete |
LLVM/Clang | 15.0.7 | Complete |
LLVM/Clang | 14.0.1 | Complete |
Package Name | Version | Status |
Python | 3.11.4 | Complete |
Perl | 5.36.1 | Complete |
golang | 1.20.5 | Complete |
gnome | 44.1 | Ongoing |
KDE | 17.08.3 | Complete |
Firefox | 115.0 | Complete |
Thunderbird | 102.12.0 | Complete |
Podman | 4.5.0 | Complete |
Package Name | Version | Status |
Ceph | 17.2.6 | Complete |
Kubernetes | 1.26.4 | Complete |
Containerd | 1.6.19 | Complete |
Nginx | 1.22.1 | Complete |
NodeJS | 20.2.0 | Complete |
Conda | 23.3.1 | Complete |
Chromium | 113.0.5672.63 | Ongoing |
cowsay | 3.7.0 | Complete |
Compiler/Toolchain Working Group
GCC
Vector: Low level redesign, improves maintainability, extendability and may also help with recent compile-time explosions
Vector: memcpy with V discovery. Very early libm routines like sin/cos.
Slow, but important, progress on address reassociation work
“Competing” Zicond basic support implementation posted for review
Atomics reopened to cover Ztso optimizations from Rivos
LLVM
Major pseudo cleanup
BOLT post-link optimizer
Zcmp, Zacas, rounding mode control
First release with a variety of items of interest as well as various improvements to existing items of interest to RISE.
Not tracking by RISE
Progressing towards LLVM 17 release
GNU Cauldron – Sept 2023. Expecting to have some RISC-V BOFs, talks, etc
Expecting attendees from Rivos, RAU, VRULL, Embcosm, Ventana, etc
Opportunities to evangelize RISE
AI from last week
Invite BayLibre for a presentation on their priorities in the RISC-V ecosystem?
13 Jul 2023
Attendees:
Jeff Law (Ventana)
Nathan Egge (google
Andrei Warkentin (Intel)
Andrew De Los Reyes (Rivos)
Brian Harrington, (RedHat)
Daniel Barboza (Ventana)
Uli Drepper (RedHat)
Mason Li (MediaTek
Simon Wang ( Andes)
Paul Walmsley, (SiFive)
Kris Murphy, (RedHat)
Barna Ibrahim, (Rivos)
Kumar Sankaran, (Ventana)
Ammone Chapackdee (Rivos
Michelle Martineau (The Linux Foundation)
Agenda
WG Updates
System Libraries Working Group
System Libraries WG met 7/11 attended by Google, RedHat, Imagination, Intel [1]
Review 2023 H2 priorities on wiki [2]
Discussion about baseline ABI to support
Challenge: VectorCrypto not yet ratified, not full supported in HW
Consensus that RISE publishing a recommended target necessary
Straw man: RVA22 + Vector + VectorCrypto
Upstream OSS ask for RISE to provide turnkey RISC-V developer environment
QEMU + Kernel + Distro (Debian?) ideal for both dev and CI / CD uses
No good if only partially staffed, must just work and stay up-to-date
RedHat started working on top-K most depended-on packages
Potential to do analytics on this data, help set 2024 H1 priorities
https://docs.google.com/presentation/d/15FO-aYrFdRd0COlyO3ZUKJxS3FdGJTbUgPBiIOXpDjs
[2] 2023 H2 Priorities
Simulator Emulator Working Group
No Updates this week
Language Runtimes Working Group
Language RunTimes update was given to the bored today 7/13/2023
Overall positive reception
Asks:
Building a Visual status dashboard on status for reach language (ecosystem readiness)
Which Projects sees considers RISC-V is supported architecture - can be added to the dashboard
Look into V8 status
Functional maturity of each language compared with other architectures (x86, ARM) (Need volunteers)
Above items can be lined up for next deepdive 9/7/2023.
Kernel and Virtualization Working Group
One round of discussions happened on 1H24 priorities
Initial 1H24 priorities to be finalized by next monthly meeting
Started discussion on RAS software stack
This will be completed in the next monthly meeting
Work items will be defined as-part of this discussions
Build/CI Infrastructure
Overall Board was supportive of the idea and funding this project.
Start small maybe combination of HW and Cloud, then scale as the usage increases.
Next Steps:
GCP Usage (Nathan)
AWS Usage (Jeff Law) (AWS promotional credits for open source projects)
OSL-OSU (Barna, Nathan)
Kernel WG proposal spin this off to broader WG needs (Language Runtimes, System Libraries etc). Update the wiki accordingly w/o cost.
Dig Deeper on the cost:
Put a proposal together in the next couples weeks (Volunteers, Publish it in TSC list for inputs etc.)
Firmware Working Group
Monthly meeting happened on July 5th 2023
Based on feedback during presentation, a new version of patch sent upstream this week.
Wiki update guidance
CMO presentation
CLANG support patches sent upstream.
StandaloneMMPkg may need some help from RISE members.
Do we need to maintain both google spreadsheet as well as wiki? Can we have a single source of truth?
Distro and Integration Working Group
Debian:
riscv64
=======
Although it's not yet in the official architecture list, the riscv64 port
is making good progress. We expect to be in a position to ship trixie with
riscv64 support (subject to architecture qualification later in the cycle).
Bookworm releasing without RISC-V support, but it was close.
Now may be a good time to invest in Debian so Trixie (2 years out) supports RISC-V.
Project could use hardware and attention to build failures.
Brian will reach out to Debian and Fedora
Debug and Profiling Working Group
Valgrind
Sent basic Vector-IR prototype code for discussion
Address Sanitizer
Not too many updates this week
It’s valuable to get all the targeted tools’ status on RISC-V
Compiler/Toolchain Working Group
Haven’t covered this the last few weeks
Improving the confluence pages
Stakeholders (RISE and external), resourcing, dependencies, etc
Filling in more in-progress projects for 2H23 and 1H24 plan
Seeing others adding content – Simon Harvey (Imagination Technologies), Shao-Chung Wang (Andestech), Chibang Kuan (Mediatek)
Starting to get better wired into LLVM space
Coordination of changes across LLVM and GCC (ABI issues)
Slightly better understanding of ongoing autovec improvements
CRC optimization discussion – viable plan going forward
Need to sync with Philip R (he’s reached out, I just haven’t followed up)
Pushed quite a bit on Zfa, and vector crypto for upcoming binutils release
Really need to add this to the project pages as it makes sense going forward and there will be ongoing dependencies
CI/CD on GCC coordination branch just starting to fire up
WG Deep Dive Schedule
TSC Presentation(30min)
Governing Board Presentation(15min)
Presentation dates have been assigned for all WGs through the end of 2023
Ammone will be reaching out to groups in the weeks prior to their presentations to help them prepare.
Schedule and deck template can be found on the Wiki.
WoW/ Comms discussion
Slack
GChat
Discord
How are the email lists working for everyone?
Is email still the preferred comms method?
Should we consider a chat option? What is preferred?
06 Jul 2023
Attendees:
Jeff Law (Ventana)
Amit Pabalkar (NVIDIA)
Brian Harrington, (RedHat)
Daniel Barboza (Ventana)
Paul Walmsley, (SiFive)
Randall Bosetti, (Google)
Kris Murphy, (RedHat)
Elliot Hughes, (google)
Barna Ibrahim, (Rivos)
Nathan Egge, (Google)
Kumar Sankaran, (Ventana)
Trilok Soni (Qualcomm)
Tim Ouyang (Andes)
Ammone Chapackdee (Rivos
Agenda
Language Runtimes WG Deep Dive (20mins)
Build Farm Project Update (20mins)
RISE to fund RISC-V Linux Kernel and KVM Build Farm.
Start with 7-10 nodes (64 core machine) which will ensure proper tests. This includes two nodes dedicated for KVM tests.
Enabling RISC-V Linux Kernel and KVM maintainers with a stable build environment directly aligns with the RISE mission.
This will help to accelerate and mature RISC-V Linux Kernel and KVM.
RISC-V Linux Kernel and KVM Build Farm
Hosted by OSU-OSL
9 machines
RISC-V Linux and KVM Build Farm Full Proposal
Proposal:
Why should RISE Fund:
Request:RISC-V Linux and KVM Build Farm Full Proposal
WG Updates
Added a Project Tracking Spreadsheet [1]
Updated 2023 H2 priorities to include SL_00_005 - zlib-ng (SiFive)
Progress on zlib-ng added RVV support for compare256, slide_hash and alder32
https://docs.google.com/spreadsheets/d/1_jlbjggMfkyrl2giq_ktvlUAZ4RcoDRQTMsdFr94fFg
Monthly meeting happened yesterday (July 5th)
Covered wiki vs spreadsheet usage, went through priority items
New items added in the spreadsheet:
SE_01_009 QEMU ACPI support for AIA - Sunil V L (Ventana)
SE_01_0010 QEMU ACPI support for PLIC - Sunil V L (Ventana)
One round of discussions happened on 1H24 priorities
Initial 1H24 priorities to be finalized by next monthly meeting
Started discussion on RAS software stack
This will be completed in the next monthly meeting
Work items will be defined as-part of this discussions
Monthly meeting happened on July 5th 2023
Wiki update guidance
CMO presentation
CLANG support patches sent upstream.
StandaloneMMPkg may need some help from RISE members.
Do we need to maintain google spreadsheet?
How to assign IDs for each project?
New discussions about Yocto
Not much else to report
Discussing eBPF tasks, Bjorn Topel suggested try and evaluate the existing tools
Bpftrace
BCC
Cilium
Bpftune
Need to find someone for this
Improving the confluence pages
Slightly more detail on benchmarks improved by changes
Stakeholders (RISE and external), some resourcing information, etc
Update for additional dependencies and/or dependencies resolved
Filling in more in-progress projects for 2H23
Get backtracing item into the 2H23 plan
Starting to fill out 1H24 plan
Starting to get better wired into LLVM space
Coordination of changes across LLVM and GCC (ABI issues)
Slightly better understanding of ongoing autovec improvements
CRC optimization discussion – viable plan going forward
Need to sync with Philip R (he’s reached out, I just haven’t followed up)
Pushed quite a bit on Zfa, and vector crypto for upcoming binutils release
Really need to add this to the project pages as it makes sense going forward and there will be ongoing dependencies
System Libraries WG
Simulator Emulator WG
Kernel and Virtualization WG
Firmware WG
Distro Integration WG
Debug and Profiling WG
Compiler/Toolchain WG
AIs from last week
Is BT from {AArch64/AArch32} to RISC-V (gaming/mobile) a RISE target?
Establish WG lead terms and election process
This doesn’t include WG-specific AIs, just the ones that have a global effect.
29 Jun 2023
Attendees:
Andrei Warkentin, (Intel)
Jeff Law (Ventana)
Amit Pabalkar (NVIDIA)
Andrew de los Reyes (Rivos)
Brian Harrington, (RedHat)
Daniel Barboza (Ventana)
Paul Walmsley, (SiFive)
Randall Bosetti, (Google)
Kris Murphy, (RedHat)
Elliot Hughes, (google)
Kumar SanKaran (Ventana)
Barna Ibrahim, (Rivos)
Nathan Egge, (Google)
Kumar Sankaran, (Ventana)
Trilok Soni (Qualcomm)
Tim Ouyang (Andes)
Ammone Chapackdee (Rivos
Michelle Martineau (The Linux Foundation)
Agenda
Wiki access issues
RISE Wiki has been updated to read-only for the public, an email has been sent to RISE Authorized Contributors with a link to register for edit access. If you are not registered you will not be able to edit the pages. Please reach out to Michelle Martineau with the Linux Foundation for edit access.
Board update TODAY
Current prioritization activities were “bottom up” - getting the lay of the land.
Current individual RISE company priorities were collected.
Collaboration space (Wiki) created.
Work Groups spun up to parallelize analysis and group SMEs together, in order to:
Deduplicate, identify dependencies
Prioritize in order of importance.
Further dependency and trends analyzed at TSC level.
Working Group | 2H2023 Priorities |
System Libraries | Mostly standard C libraries (glibc, bionic) and SSL (OpenSSL, BoringSSL) enablement. Significant prioritization effort remains. |
Simulators/Emulators | Qemu: developer experience feature completeness for userspace and platform emulation: Hwprobe support, improved AIA support, WorldGuard, PCIe passhtru on x86 hosts, vector crypto. |
Language Runtimes | Focus on Java: jdk11u, jdk17 support. Python (NumPy), Go Runtime, .NET Runtime. Significant prioritization effort remains. |
Kernel and Virtualization | Core ISA (vector extensions), feature completeness (memory hotplug, KASAN), platform (ACPI, AIA, IOMMU) |
Firmware | Core EDK2 (MMU, CMO, SSTC), platform support (StandaloneMmPkg for secure flash, MultiArchUefiPkg for OpRom emulation). TF-M enablement. |
Distro Integration | Further scoping within Tizen enablement and the software compatibility / profile/extension-optimized distro track. Significant prioritization effort remains. |
Debug Profiling | Valgrind vector support and LLVM/GCC ASAN. Significant prioritization effort remains. |
Compilers & Toolchains | GCC/LLVM distro blockers (Zfa, shadow stacks, atomics), optimization (fusion, autovectorization), GCC-13 autovectorization support + binary distribution |
Three market direction trends are evident:
GP compute (aka “server”)
HPC (different software stack)
Consumer (Android/Tizen)
It's reasonable to work across a couple of directions that are different enough from each other to have the maximum impact from enablement activities. Such two directions could be server and consumer.
Need to come up with the representative software stack to align development (and WG prioritization activities), and identify requirements to report up to RVI to aid platform definition activities.
None of the current projects have a RISE requirement for funding or resourcing, which makes sense as all of the projects involve existing RISE member resources. Yet this is somewhat unhelpful is it doesn't communicate the overall level of RISE member engagement within a specific project/category.
AI: Board to advise on accounting for existing RISE member engineering engagement (including 3rd party contractors)
WG operation and “success rate” wrt. participation/prioritization varies wildly:
WGs with good momentum and prospects
WGs with no/weak momentum and negative prospects.
Some WGs have too broad a scope (and too little overlap between projects/companies). Some WGs have insignificant to none WG participation (i.e. lead is on hook for everything).
AI: TSC/Board activities to act as forcing functions to improve behavior.
Not every WG is a functioning team yet.
For at least half of the WGs, members are MIA and it’s a one person show. That’s not sustainable and it’s also not representative, violating the basic goals of the RISE membership.
What hasn’t worked well is asking for concrete deliverables and seeing these done in time in the manner requested:
We need to figure out what’s broken and how to fix it.
If WG leads can’t accomplish what the TSC has tasked them to do by a particular due date, complain loudly. Send that SOS signal. We can’t afford silent failures (like entirely empty project pages by 6/28).
It’s not a good use of PM or TSC chair time to prod people along.
We’re here to help and make you successful. But you need to try and be able to dedicate time.
Also, some process needs to be improved to avoid extra churn elsewhere.
if you identify a project dependency in another WG:
Check that WG spreadsheet
If it doesn’t exist or has the wrong due period - send email to that WG mailing list advising them to update/create/prioritize.
Remember - we can’t afford to operate as silos
“Forcing functions”
Each RISE member company needs to re-evaluate its interest in the System Libraries, Language Runtimes, Distro Integration and Debug and Profiling Work Groups and make appropriate recommendations to its WG representatives around participation and engagement.
Encouraging email-driven instead of meeting-driven collaboration.
Use TSC/Board meeting deep dives into a WG to help motivate measurable progress.
RISE Board members are encouraged to drill down into individual projects and reach out to the WG leads for clarification.
WG Updates
System Libraries WG
System Libraries WG meeting 6/27 attended by Google, RedHat, Imagination [1]
Key observation: potentially 1000’s of OSS projects missing RISC-V support
Current WG projects exercising dependencies on other RISE projects, e.g., vector, vector crypto, atomics, hardware breakpoints, etc.
Near term: Work to enable support for RISE high priority projects
Long term: Work on tooling and outreach with communities (multimedia, machine learning, HPC, scientific computing, etc.) and help them to enable
Work items coming out of meeting:
Need to advertise core set of extensions (profile?) for OSS to target
QEMU + kernel + distro image that just works for developers, CI/CD
Need for testing scripts, e.g., being able to instantiate all RVV lengths
RH: informational survey 28,000+ packages of dependencies & asm
System Libraries WG meeting 6/27 attended by Google, RedHat, Imagination [1]
Simulator/Emulator WG
https://lf-rise.atlassian.net/wiki/display/HOME/Simulator+Emulator+WG
Added missing fields for each priority project in the wiki
Email sent to every priority project contact
All contacts replied, wiki pages are getting updated
Language Runtimes WG
Kernel and Virtualization WG
RAS software proposal being presented by Himanshu (Ventana)
This presentation will complete in next meeting
https://docs.google.com/presentation/d/1QI7sLrOvdOliAF86CgefZK98WoZsLwiW8DoEkvWj2Vw/edit?usp=sharing
Kernel and Virtualization Board Farm Proposal
Summary:
RISC-V Linux Kernel and KVM Build Farm
Hosted by OSU-OSL
9 machines
Firmware WG
CLANG support EDK2 development complete.
MMU support patchset is in final stage of reviews. Next step would be to add support for Svpbmt once initial patchset gets merged.
Good progress on wiki page update for 2H2023 committed projects.
Requesting help from WG members to keep the wiki page up to date with as much details as possible.
Distro Integration WG
No actionable updates from the group.
Small number of updates to Confluence
Minimal traffic on the mailing-list
Debug and Profiling WG
Identified two projects for 2H 2023
Project such as perf CTR has work in progress but might not finish in 2H 2023 (depending on the spec ratification), another question is which WG the project should be, the major work is done in kernel, but it’s for the userspace perf tool
This WG is not active enough, one possible reason is that there is little in common among the tools, we are working on the different communities
Compiler/Toolchain WG
Improving the confluence pages
Slightly more detail on benchmarks improved
Rough cut at stakeholders information and resourcing
Update for additional dependencies and/or dependencies resolved
Filling in more in-progress projects for 2H23
Get backtracing item into the 2H23 plan
Starting to fill out 1H24 plan
Starting to get better wired into LLVM space
Coordination of changes across LLVM and GCC (ABI issues)
Slightly better understanding of ongoing autovec improvements
CRC optimization discussion – viable plan going forward
Pushing on some dependencies we have on binutils so they’re resolved for upcoming binutils-2.41 release
AIs from last week
This doesn’t include WG-specific AIs, just the ones that have a global effect.
Is BT from {AArch64/AArch32} to RISC-V (gaming/mobile) a RISE target?
Establish WG lead terms and election process
Reaching a conclusion on board farms
Reaching a conclusion on build farms
AIs for next week
Dedicate 20 min of the next TSC call to Language Runtimes and help stand up the group.
set up discu
22 Jun 2023
Attendees:
Andrei Warkentin, (Intel)
Jeff Law (Ventana)
Brian Harrington, (RedHat)
Daniel Barboza (Ventana)
Paul Walmsley, (SiFive)
Randall Bosetti, (Google)
Barna Ibrahim, (Rivos)
Nathan Egge, (Google)
Kumar Sankaran, (Ventana)
Agenda
WG Updates
Readiness update for Board call 6/29
Are your Confluence projects pages updated?
AIs from last week
AIs for next week
System Libraries WG- Nathan Egge
Scheduled System Libraries WG meeting
Compiling proposed list of RISE sponsored projects
Need for RISC-V hardware hosting
Andrei: Recommended Working groups not rely on meetings to drive the WG progress
Simulator/Emulator WG- Daniel Barbosa
https://lf-rise.atlassian.net/wiki/display/HOME/Simulator+Emulator+WG
Added wiki pages for all priority projects for 2023
Added a new wiki page for 2023 priorities
Removed redundant/generic projects from the tracking spreadsheet
Wiki pages will be assigned to individual contributors to ensure documentation is complete and clear.
Language Runtimes WG-
No updates provided
Projects identified on the wiki, will follow up with Ludovic
Kernel and Virtualization WG-Anup Patel
Wiki pages for 2H2023 projects available on confluence
Summary page: https://lf-rise.atlassian.net/wiki/display/HOME/2023-2H
Each project page will be maintained by owner/contact
Updates to “Status” of project page will reflect on summary page
Wiki pages for extension discovery
https://lf-rise.atlassian.net/wiki/display/HOME/RVA23+Profile
Kernel HWPROBE: Key-value pairs using VDSO for user-space apps
KVM ONE_REG: ioctl() interface to discover and manage extensions for each Guest VCPU
Track discovery of extensions mentioned in RVA23 profile
Extension discovery is through:
Benefits toolchain and distros
Next finalize 1H2024 priorities
Also create wiki pages for 1H2024 projects
Project pages inflight for the next 6 months have been identified.
Andrei- Requested requirements for extension discovery
Anup- Discovery of minimum and maximum vector lenses is also in progress, working on project list for 2024
Firmware WG- Sunil V L
Wiki pages for 2H2023 projects available on confluence
Summary page: https://lf-rise.atlassian.net/wiki/display/HOME/2023-2H+-+Firmware+Priorities
Project page will be maintained by owner/contact
Updates “Status” of project page will reflect on summary page
Other updates
StandaloneMMPkg - discussed the detailed plan
Ad-hoc meetings apart from monthly WG meeting.
Next
Finalize 1H2024 projects
Create wiki pages
Distro Integration WG- Brian Harrington
Andrei AI: GRUB2 “relocation overflow” bug
Projects that cut across multiple workflows
Andrei: Identify bottom up projects
Brian: Interested in converting space on MassOpenCloud to usable resources for RISE, waiting on direction
Debug and Profiling WG- Fei Wu (not in attendance)
I sent an email to mailing list to discuss the projects and meetings, I hope we can schedule a meeting next week. The risk is that no one replied yet.
I added two projects which I am working on to confluence for H2 2023:
https://lf-rise.atlassian.net/wiki/display/HOME/Debug+and+Profiling+WG
Andrei: much more detail is needed
Compiler/Toolchain WG- Jeff Law
Confluence wrangling, not done, but good progress
2H2023 wiki bits in place & some initial bits of 1H2024
Binutils-2.41 release being prepared, branch in ~2wks
Zicond, Zfa, Zc* looking to land which would unblock some GCC work
Fusion – GCC & LLVM. Generic infrastructure + Veyron V1 implementation
Address rewriting for GCC, two steps forward, one step back
Shadow Stacks – LLVM mtg next, hoping to have more state then
Will also be syncing with Philip and Andrew on Rivos’s plans in the LLVM space and get that reflected into the sheet & wiki
Some movement on binary releases, Simon pushing on this
Andrei: Bolt? Where does it belong, who’s doing work in this space? Please add to the spreadsheet.
Jeff: What is the value vs. effort for Bolt?
Randal: Google has interest in terms of the boarder ecosystem, this could fit with the distro and integration group?
AIs from last week
This doesn’t include WG-specific AIs, just the ones that have a global effect.
WG updates (slide vs wiki)
The default slide deck for each WG can contain the wiki link for the WG. If the lead thinks that the update in the wiki is too dense to cover in the call then the lead can provide a summary in the slide.
RVI spec dependencies
Vector calling convention for psABI
Unified Discovery
Is BT from {AArch64/AArch32} to RISC-V (gaming/mobile) a RISE target?
Establish WG lead terms and election process
Reaching a conclusion on board farms
Reaching a conclusion on build farms
AIs for next week
This doesn’t include WG-specific AIs, just the ones that have a global effect.
WGs to create write ups for their projects
2023
2024
About
Scope and timeline
components and repos
Stakeholders and partners
Dependencies
Measures of success
RISE Requirements
Status with table
WG Lead Election process and Terms
Prepare for GB meeting
Roll ups required, Leads will be contacted directly.
15 Jun 2023
Attendees:
Andrei Warkentin, (Intel)
Jeff Law (Ventana)
Brian Harrington, (RedHat)
Andrew De Los Reyes, (Rivos)
Uli Drepper, (RedHat)
MyungJoo Ham, (Samsung)
Daniel Barboza (Ventana)
Paul Walmsley, (SiFive)
Tim Ouyang, (Andes)
Randall Bosetti, (Google)
Barna Ibrahim, (Rivos)
Simon Wang, (Andes)
Trilok Soni, (Qualcomm)
Kumar Sankaran, (Ventana)
Michelle Martineau, (Linux Foundation)
Agenda
RVI Summit
Good visibility (RVI and Google keynotes).
Overall positive reception.
A lot of questions on operation, interactions with upstream projects.
HW/embedded-minded folks questioned Linux focus.
Randall:
Excited to see SBCs with RVV 1.0
Kumar:
Questions around participation with Chinese organizations.
BT from AArch64/AArch32 to RISC-V, gaming/ mobile, is this a RISE target? (discuss on mailing list)
Open Suse wants to be a part of RISE
Board Updates
RISE Confluence will be read-only to general public (mailing lists remain private, as is Zoom meeting participation).
TSC update to the Board is 6/29
Well-defined proposed projects (clear definition of work, timelines, components/repositories, stakeholders, RISE requirements, dependencies, measure of success).
No gaps in Confluence, this is viewed as the single source of truth. No entries = no progress
Work on MoU between RVI and RISE continues.
Board requests TSC to provide feedback on RVI spec dependencies as part of prioritization (e.g. psABI for RVV).
AI for next week’s TSC.
To be reported 6/29 to the the board.
TSC Notes
TSC operation
Email primary mechanism of discussion and communication.
Meetings used to summarize and confirm decisions.
Decisions tracked in Wiki
Embrace the Wiki.
Deprecate the old Google Docs. Use Spreadsheet to report new project ideas, with these suggestions:
1 sheet per tracking period (2H23, 1H24…), not 1 per upstream project/component.
“Merged” as additional status.
“Target release” date as additional column.
WG leads
1 year with a 1 month overlap in leadership to allow for transition.
Don’t assume WG members to be proactive, nudge folks along, stick to mailing list for discussions.
Work with Michelle to figure out how to run the WG best
WG lead term length, what is appropriate?
Working Group Updates
System Libraries-Nathan Egge
https://lf-rise.atlassian.net/wiki/display/HOME/System+Libraries+WG
WG meeting not yet scheduled
Spreadsheet tracking items added with timelines and tickets
Dedicated wiki page for each project: pending
Simulator / Emulator-Daniel Barbosa
First WG meeting happened in 7 Jun 2023
New projects added:
Dedicated wiki page for each project: pending
Language Runtimes-Ludovic Henry
Work in progress at https://github.com/openjdk/jdk/pull/14445
Buy-in from other OpenJDK contributors (Huawei, RedHat)
[Java] LR_00_025: Support for hardware feature detection
Kernel Virtualization-Anup Patel
Kernel
Basic ACPI support
Vector extension support
KVM
Vector extension virtualization
AIA irqchip
First WG meeting held on 1st June 2023.
1H24 priorities will be discussed within the WG
Things being merged for upcoming Linux-6.5 merge window
Overall, a good progress with great participation from members.
Firmware-Sunil V L
First WG meeting held on 06/07/2023.
High level review of tasks with WG members.
Ad-hoc meeting to discuss individual project details.
Overall, a good progress with great participation from members
Dependencies between firmware and compiler for stack unwinding/tracing
Distro Integration-Brian Harrington
Fedora has 24k+ individual packages available for RISC-V, including KDE (thanks David Abdurachmanov!). This includes tooling needed for downstream FLOSS development1
Higher level system concerns which may be currently lacking a ratified home (e.g. “ELF ownership”, “fat/multi-arch binaries”, etc)
External concerns which could be brought by RISE members as an official request for distro support (e.g. “Can Red Hat provide maintained provisioning resources (i.e. Kickstart files) allowing users to test known working configurations”. This might look like installing a multi-component FLOSS application as a pseudo “integration test”
What are individual preferences on meeting times for this working group?
(we really need to get this scheduled)As discussed last time, much of the work previously called out will be done directly by distros independently of RISE. As I receive updates on this work I will update the project wiki.
Two new sets of concerns posted to the mailing list:
Debug and Profiling-Fei Wu
binary instrumentation tools: valgrind, DynamoRIO
full-featured tracer: ebpf based tools
profiling: perf, gprof-ng
application debugger: gdb, lldb
memory debugging: address sanitizer
toolchain: riscv-gnu-toolchain, binutils, ILP32 psABI, drawf for RVV
hardware related: openlink
real hardware performance study: PMUs on real riscv boards, LKP testsuite for measuring performance
Spreadsheet for the projects - RISE Debug and Profiling Projects
Projects collected
Details of priority & plan are still under discussion
Compilers and Toolchains-Jeff Law
I need to catch up on more process stuff (ex confluence). But a few updates..
Autovectorization work is ongoing
Not a blocker yet, but really need clarity well in advance of LLVM 17 release (mid fall)
Ventana’s internal evaluation of LLVM indicates it’s definitely improving relative to LLVM 16
Basic integer working on GCC trunk. Focus shifting towards floating point
Concerns about getting psabi clarity on passing/returning vectors
Shadow Stacks (LLVM)
Blocker for Android adoption, so clearly important
ABI concerns here too. Right now ABI forces x3 to be the global data pointer. Needs to turn into an OS defined register
Not sure time schedule. Google engineers probably have the most state
Address arithmetic (GCC)
VRULL’s work 99% ready. Working to address upstream review items
Late address rewriting can significantly help mcf/deepsjeng
Additional opportunities exist in deepsjeng
Action Items:
Establish WG lead terms and election process (Michelle)
TSC update to the Board is DUE 6/29 (WG Leads)
What's the project?
How much does it cost in terms of people or payment?
How long is it going to take?
System Libraries to schedule WG meetings (Nathan Egge)
Inform Sunil - Dependencies between firmware and compiler for stack unwinding/tracing
90% of confluence work completed by 6/22
Simulator Emulator WG to create project Wiki pages (Daniel Barbosa)
Kernel and Virtualization WG to add more detail to Wiki and updates (Anup Patel)
Firmware WG to add more detail to Wiki and updates (Sunil V L)
Compiler Toolchain to update Wiki (Jeff Law)
Topics for Next Meeting:
Board farms? Coordinate existing funding an/or use RISE funds?
Build farms? Can we optimize how RISE members fund these.
Open Source Lab at Oregon State University (OSU-OSL) - Nate and Barna to follow up.
01 Jun 2023
Attendees:
Andrei Warkentin, (Intel)
Jeff Law (Ventana)
Brian Harrington, (RedHat)
Felix Freimann, (Mediatek)
Andrew De Los Reyes, (Rivos)
Uli Drepper, (RedHat)
Nathan Egg (Google)
Ludovic Henry, (Rivos)
MyungJoo Ham, (Samsung)
Amit Pabalkar, (NVIDIA)
Trilok Soni, (Qualcomm)
Simon Wang, (Andes)
Kumar Sankaran, (Ventana)
Daniel Barboza (Ventana)
Robin Randhawa (SiFive)
Tim Ouyang, (Andes)
Randall Bosetti, (Google)
Michelle Martineau, (Linux Foundation)
Agenda:
Launch- Michelle Martineau
Provided a recap of the RISE media outreach including articles and interviews from Forbes, TechCrunch, DevOps.com, Heise, Phoronix, Silicon.FR, TFiR, and Toolinux.
Confluence- Andrei Warkentin
Upstream projects either have trackers and we would have to use them, aligning with RISE's policy of doing all technical engagements upstream and in a transparent/collaborative manner.
Upstream projects (e.g. Linux) don't use trackers and get along just fine (so do really need them?)
WG leads to come back with any requests for projects that can't make any forward progress unless RISE hosts a bug tracker (it's fair to say these requests, though, are going to get a long hard look...)
RISE Confluence- Not public at the moment.
Single shared space for all documentation, used by everyone.
Explicit state - Allows anyone to understand current progress, issues, without digging through emails, Google drive, presentations, etc.
Simplifies onboarding.
Some key links:
Think ahead to 2024 to ensure we can request funding an budget allocation from the board.
Questions were raised around project/bug trackers
WG Updates (incl. homework from last meeting)
Clear definition of work being done
Timelines
Components, repositories, stakeholders
Measure of success
Requirements from RISE (if any)
Project documentation (in Confluence)
ffmpeg: SiFive - RVV 8x8 chroma MC patches to libavcodec/h264 [3]
Projects can be in one of 3 states:
Cannot compile as RISC-V, under any flags
Compilable native code, but missing optimizations
RISC-V optimizations, but which targets: V, Zb*, etc?
How do we measure success? Is comparing to SIMD on x86/Arm possible?
Moving project status from Google Sheet to Confluence Wiki [4]
New items to track: upstream CI, access to HW, RISC-V specific unit tests
Behind password: How do we coordinate with broader OSS community?
Request for QEMU image + testing methodology -> CI through emulation
Recent progress on RISC-V:
bionic: SiFive - RVV mem*/str* patches [1]
libpng: Google - RVV decode patches based on NEON intrinsics [2]
Notes:
Continue identifying projects to choose and scope out projects
System Libraries WG - Nathan Egge
Simulator - Daniel Barbosa
No relevant updates from last week
Still waiting for answers/clarifications about duplicated projects, projects with generic descriptions, Spike projects without contacts
Language Runtime - Ludovic Henry
OpenJDK (backports to jdk11u, jdk17u)
Java libraries
Should JDK compiler be under compiler/toolchain?
CPython
Python libraries and dependencies
Go Runtime
Question (JL) should this be under compiler/toolchain?
More details on projects in tracker spreadsheet
Scheduling bi-weekly sync, next on June 7th
Kernel Virtualization - Anup Patel
Monthly meeting on the last Monday of every month at 7:00AM PST
First meeting on 1st June 2023 at 7:00AM PST
Review tracker google sheet in-progress
Firmware - Sunil V L
Ecosystem news:
Distro - Brian Harrington
“Top 10” issues from Red Hat?
Reach out to other distros?
Ownership of “complex” projects affecting multiple WGs, like multiple profile/extension support (eg. https://lf-rise.atlassian.net/display/HOME/Profile-+and+Extension-+Optimized+Distros)
Final position: no objection to refocusing
Ventana: Focus should be on standards conforming implementations. Need clear value for RISE, a clear technical proposal and staffing/funding to make it happen otherwise.
Intel: Aside from the actual work to wire up non-standard RVV, most work appears to be in an OS distro even being able to have several side-by-side implementations of something. The latter appears interesting to RISE.
Rivos position: We prefer that RISE focus on standards that benefit many or most companies. Each hardware vendor may have non standard instructions that should coexist, but joint efforts in RISE should apply to many companies.
RISE positions on 0.7 (incompatible) vector extension
Final position: don't focus on Legacy RVV
Would this solve the problem?
What could be better?
Should Intel make this public or should this be a RISE project?
Intel SDAK has been an internal project with a very similar goal. Please check out the slide deck PDF and demo video and provide feedback to Andrei:
Distro WG refocus: Addressing issues common to all distros.
Legacy RVV
“Getting started OS image” to unblock patch testing for upstream projects, vector work (e.g. bundle qemu + OS)
Debug / Profiling - Nathan Egge / Jeff Law
Propose Fei Wu (Intel) as interim WG lead for Debug and Profiling WG
Fei is currently working on RVV support in Valgrind and Qemu and has experience in perf and Linux kernel.
Compiler / Toolchain WG - Jeff Law
Supplies a common baseline of gcc-13 + risc-v autovect and other optimization support
Should RISE make binary releases available?
Proposed that RISE provide when the upstream doesn't
Single binary distro rather than having multiple ones from different vendors
Known build procedure and sources (ie, specific upstream branches/commits)
What to include (just the compiler, what about assembler, libraries, etc)
Platforms to support (Centos? Ubuntu? Windows? MacOS? Specific versions?)
Who would do this?
Incompatible with 1.0 Vector in important ways
Exceedingly painful to support both in GCC
Not seen as strategic across the ecosystem
Upstream GCC coordination branch created and relevant patches cherry-picked from the trunk
0.7 Vector Support
Stack clash or shadow stacks may be next priority for LLVM (victim?)
May promote address reassoc as next priority for GCC (99% done)
Action Items:
Working Groups flesh out definitions and prioritization
scoping
Milestones
Requirements
Measures of success
Binaries
Set up confluence page for conversations
Andrei suggestion: keep to Linux to start with, provide tgz with "unknown" (newlib) and "linux" targets. Link against an older libc for max compatibility.
Logistics - infrastructure / where to host downloads / where to host build farms
Technical details
Coordinate with broader OSS community without busywork
Get board / TSC chair take/approval on making mailing lists and confluence RO for public.
Topics for Next Meeting:
WG updates (incl 2H23 Priorities Update (06/29/2023) with specific project details)
Single qemu + OS image for testing
Binary releases of compiler (but really anything else like Qemu)
Whole distro optimization
25 May 2023
Attendees:
Andrei Warkentin, Intel
Paul Walmsley (SiFive)
Jeff Law (Ventana)
Brian Harrington, RedHat
Felix Freimann, Mediatek
Aaron Dubin (Rivos)
Nathan Egg (Google)
MyungJoo Ham (Samsung)
Simon Harvey (Imagination)
Raul Xiong T-Head
Anup Patel (Ventana)
Sunil V L (Ventana)
Chris Smith (Imagination)
Daniel Barboza (Ventana)
Robin Randhawa (SiFive)
Tim Ouyang, (Andes)
John Walicki, Linux Foundation
Agenda:
PM Updates (John Walicki)
Confluence setup complete - not yet populated
Mailing lists and GDrive are established
LF Antitrust Policy reminder
Subgroup Updates
One homework for next week is to go over the “Distro Integration” proposal to refocus the group on addressing issues common to all distros instead of focusing on specific distro enablement, simply because the latter is not actionable unless you’re an OSV (and we haven’t been thinking about funding OSVs to invest more, plus we only have one OSV on board). See https://lists.riseproject.dev/g/RISE-Distro-Integration-WG/topic/distro_integration_wg/99118959?p=,,,20,0,0,0::recentpostdate/sticky,,,20,2,0,99118959,previd%3D1684965620222749443,nextid%3D1684965620222749443&previd=1684965620222749443&nextid=1684965620222749443
Another homework for next week is to come up with a position on existing incompatible RVV implementations – should we bother, how to support these, etc.
We agreed Debug & Profiling needs a dedicated lead. Nominations will be discussed at the next call.
Toolchain discussions brought up backporting of RVV support to GCC13 due to GCC14 not being released until 2024. We discussed if we should deliver a binary toolchain – this would be nice but it needs a level of commitment/investment that we’re not ready to consider. There is an upstream source branch for this work, so we don’t need to make any RISE-specific source releases, just point the public and the right code (and give coherent instructions). Additionally, we could point folks to binary toolchain releases that RISE member companies make in the interim.
Toolchain discussions also brought up a lack of “easy to consume” turnkey solutions for validating code, that upstream code maintainers or even developers could use. This could be something like qemu + an OS distro packaged up.
System Libraries WG - Nathan Egge
Simulator - Daniel Barbosa
Language Runtime - Three Java libs prioritized
Kernel Virtualization - Anup Patel
Firmware - Sunil V L
Distro - Brian Harrington
Debug / Profiling - Nathan Egge / Jeff Law
Compiler / Toolchain WG - Jeff Law
What next?
Continue identifying more projects
Start scoping out plan / requirements / timelines for currently picked projects
We discussed how projects would be tracked. It’s fair to say many of the projects are projects where RISE contributes to and not leads the work, but some projects are net new contributions and thus will need thorough well-reported planning. Regardless, it should be easy for any RISE member to understand the progress, roadblocks, etc. This will be done using Confluence.
“Ways of working”
Didn't get here
18 May 2023
Slides are at [RISE] TSC Meeting Agenda 05/18/2023
Attendees:
Felix Freimann, Mediatek
Tim Ouyang, Andes
Andrei Warkentin, Intel
Mason Li, Mediatek
Kumar Sankaran, Ventana
Barna Ibrahim, Rivos
Paul Walmsey, Sfive
Amber Huffman, Google
Trilokkumar Soni, Qualcomm
Nathan Egge, Google
Amit Pabalkar, NVIDIA
Brian Harrington, RedHat
Michelle Martineau, Linux Foundation
Agenda:
PM Update from Michelle
Confluence pending setup
Mailing lists and GDrive are established
Subgroup Updates
Need to add group leads to meeting
What next?
2-3 quick wins projects that are mostly complete or in progress
Need some topics for Lars to discuss
“Ways of working”
Didn't get to this
11 May 2023
Attendees:
Felix Freimann, Mediatek
Tim Ouyang, Andes
Andrei Warkentin, Intel
Simon Harvey, imagination
Uli Drepper, RedHat
Mason Li, Mediatek
MyungJoo Ham, Samsung
Kumar Sankaran, Ventana
Jeff Law, Ventana
Chris Smith, Imagination
Barna Ibrahim, Rivos
Paul Walmsey, Sfive
Amber Huffman, Google
Trilokkumar Soni, Qualcomm
Nathan Egge, Google
Amit Pabalkar, NVIDIA
Brian Harrington, RedHat
Michelle Martineau, Linux Foundation
Notes:
Meeting times: fill out Meeting Availability
2:00pm PT and 7:00am PT alternating
Please be sure to inform Michelle of Alternates
Need to pick group leads
, see note at Group Lead Note
What is the time commitment?
Lead term length?
Begin work on areas where leads have been identified
Group Leads Next Steps
Lists/reflectors- Michelle to create groups.io for each subgroup
Select the high priority items to focus on initially while keeping dependencies front of mind (dependencies are identified by leads)
Pick a way of organizing your group, communicate this to TSC chairs (by 5/18).
1st pass (de-dup, order by priority) (5/18)
2nd pass (project depth, i.e. well-identified project tasks, not “make Debian better”).
Collaboration tools
Establish Confluence, purchase AWS hosting
Proposal-RISE SW Contribution Report
Focus only on the projects RISE invests in and the community contributes to
More depth, value to the public, promotion of RISE
Current: https://sites.google.com/riscv.org/software-ecosystem-statusction.