Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents
maxLevel2
include2

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
    • Assume the role of early adopter and find issues before they hit community
    • Continue to test hardware when it comes out for suitability
      • Check that vendor kernels support needed tooling
        • Backported perf for K230
        • SpacemiT missing PMU counters
  • 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

RFP Update

Benchmarking improvements to QEMU

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 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
    • Updates on RVV efforts 
    • 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
    • Use vendor provided image (u-boot, opensbi, kernel)
    • Replace rootfs with gentoo image
      • Potential to build with exact CFLAGS matching hardware, e.g.,
        -march=rv64gcv --riscv-v-vector-bits-min=256
      • This would produce optimized builds for all packages
    • 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 added 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
    • Provide a range of Linux-capable RISC-V boards to run functionality and performance tests on CI-generated code
      • Many use cases: OpenJDK, Linux distributions, kernel, Go(?) …
    • 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
    • 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
  • 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

...

  • Overall status
    • 2024 projects - not yet sent for review
    • 2024 projects - upstream process ongoing
    • 2024 projects - upstream completed
  • Projects not sent yet for review:
  • Projects under review:
    • SE_01_003 - QEMU WorldGuard support
      • Latest version: v1
    • SE_01_004 - QEMU IOPMP support
      • Latest version:  v7
    • SE_01_005 - QEMU PCIe passthru on x86 hosts
      • Latest version:  v1
      • Project has dependencies on UBOOT and GRUB
    • SE_01_015 - QEMU RISC-V IOMMU support
      • Latest version: v4
  • Projects under review
    • SE_01_017 - QEMU ACPI SPCR support for RISC-V
      • Latest version: v2
      • Community project (Starfive)
    • SE_01_021 - QEMU RVA23 profile support
      • List of missing extensions: sig-qemu message
      • Some of them already landed for review
    • SE_01_022 - RISC-V Server SoC Reference Board
      • Latest version: v2
    • SE_02_004 - QEMU RVV performance enhancements
      • Latest version (from Max Chou): RFCv4
  • Projects already merged
    • 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

...

...

 

...

Language Runtimes Deep Dive led by Ludovic Henry 

Python

...

No updates

...

  • List of RVA23 profile extensions on wiki in-sync with latest spec
  • https://wikilf-rise.riseprojectatlassian.devnet/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

...


...

  • Total 72 extensions (17-10-2023, wiki)

Kernel HWPROBE (17-10-2023)

...

  • 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%)

...

  • Total 58 projects (17-10-2023, wiki)
    • Unassigned - 14 (24.14%)

...

  • 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://wikilf-rise.riseprojectatlassian.devnet/wiki/display/HOME/2023+H2+Priorities

Priorities for 2H23 (Q3 & Q4 2023)

...

[RISE] Language Runtimes WG Update 7/6/23

https://wikilf-rise.riseprojectatlassian.devnet/wiki/display/HOME/Language+Runtimes+WG

Build Farm Project Update (20mins)

...

  • RFP process challenges
    • This was addedHEREnew 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

...

Developer Infrastructure WG Introduction

  • Charter
    • TheDeveloper 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)

...

  • RVA23 profile extensions


      • 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

...

  • 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

...

  • 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 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?

...

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

...

Developer Infrastructure WG Introduction

  • Charter
    • TheDeveloper 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)

...

  • 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
  • Improved policies and administration documentation

...

  • 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

...

  • 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

...

  • Total 83 extensions (25-01-2024,wiki)

  • Kernel HWPROBE (25-01-2024)

...

  • 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%)

...

  • Total 43 projects (25-01-2024,wiki)
    • Unassigned - 6 (13.95%)

  • Development (25-01-2024)

...

  • Public Distro and Integration Public meetings Scheduled
  • Contractor bid accepted,LF contracting processis 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 DiveSchedule

07 Dec 2023 

Meeting Slides

...

F2F Intros

2H2023 Goals: Java

2H2023 Goals: Go

...

  • Anyone can submit projects
  • 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.

...

  • Firmware Deep Dive
  • WG Challenges - Open Discussion
  • AIs/Opens

Firmware Deep Dive

  • 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

...

Projects up for bidding will be featured on theRISE wiki and advertised on RISE social media accounts. 

...

  • 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:

...

  • 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)

...

  • Tracking ongoing projects in GCC and LLVM upstreams
    • Primarily2023 work, but a bit of2024 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

...

  • 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)
  • Other assorted notes

...

  • 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?
  • 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
    • 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 inhttps://wikilf-rise.riseprojectatlassian.devnet/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)

...

  • 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:
      1. Add support for new extensions and features
      2. 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)
      1. Full system emulation mode
      2. KVM support: shared goal with Kernel and Virtualization WG
      3. 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
      1. QEMU linux-user riscv_hwprobe syscall support
      2. QEMU Virtual IRQ and IRQ filtering support
      3. QEMU PCIe passthru on x86 hosts
      4. QEMU Vector Crypto Support
      5. QEMU ACPI support for AIA
      6. QEMU ACPI support for PLIC
      7. QEMU RVA22U64/S64 profile support
      8. QEMU IOPMP support
      9. QEMU WorldGuard support
    • Other projects worked on by RISE members tracked in thewiki andspreadsheet
    • 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

...

Discussion/ Questions:

...

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.

...

...

  • Kernel and Virtualization Working Group

...

  • 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

...

  • Document best practices, publicize RISE priorities, community outreach
    • Solve enablement problems where developers are. Need to unblock existing projects

[1]https://wikilf-rise.riseprojectatlassian.devnet/wiki/display/HOME/2023+H2+Priorities

Priorities for 2H23 (Q3 & Q4 2023)

...

  • Working group established.  subscribe mailing listhere; The Wiki page for this group has also been created and can be contributed toHere.
  • 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

...

Google working on libflacSL_01_001

Simulator Emulator Working Group

...

Kernel and Virtualization Working Group

...

Simulator Emulator Working Group

...

  • 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 theWiki.
  • 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?

...

  • 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 

...

  • 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

...

  • 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

...

Simulator/Emulator WG- Daniel Barbosa

...

  • Wiki pages for 2H2023 projects available on confluence
  • Wiki pages for extension discovery
    • https://wikilf-rise.riseprojectatlassian.devnet/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

...

...

  • 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:

Andrei: much more detail is needed

...

  • System Libraries-Nathan Egge
  • 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
    • [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
  • Compilers and Toolchains-Jeff Law

...

  • Launch- Michelle Martineau
  • 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)
    • 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?
  • 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
    • 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 outthe 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)

...

Topics for Next Meeting:

  • WG updates (incl2H23 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

...