Versions Compared

Key

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

Table of Contents
maxLevel2
include2

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

...

  • 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
  • story
  • 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
    • 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
  • Bootable system images with up-to-date toolchains
    • Bootable system images with up-to-date toolchains
    • Performance testing and CI tooling

...

  • RP005 - Add QEMU TCG support for V and Zvk

    Benchmarking improvements to QEMU

    ...

    • 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
        • Use vendor provided image (u-boot, opensbi, kernel)
        • Replace rootfs with gentoo image
        • Future work, could rebuild kernel using more optimizations

      ...

      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
          • Many use cases: OpenJDK, Linux distributions, kernel, Go(?) …
        • Investigate future feasibility of providing developer access to boards
      • Curtis Galloway (Google) coordinating

      ...

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

      ...

      • 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_02_004 - QEMU RVV performance enhancements (Vendor patches)
        • ZvkWeekly 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
          • Community project (Starfive)
        • Projects under review:
          • Latest version: v1
          • Latest version:  v7
          • Latest version:  v1
          • Project has dependencies on UBOOT and GRUB
          • Latest version: v4
          • 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
          • 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
            • Latest version: v2
          • SE_02_004 - QEMU RVV performance enhancements
          • Latest version (from Max Chou): RFCv4
        • 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
          • Available in QEMU 9.0
          • SE_01_020 - QEMU SMBIOS support for RISC-V
          • Available in QEMU 9.0

        Security Software Working Group Election

        ...

        Distro and Integration Deep Dive

          “What is the minimum amount of RAM a board should have?”
        • 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.  
        • “Why is it you’re all insistent on having ACPI support?”
          1. General discussions and questions about viability of builds with low RAM that aren’t capable of updating packages etc. Not something RISE should dictate. 
          2. 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?)

        ...