Table of Contents | ||||
---|---|---|---|---|
|
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
- 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
- Examples include
- Regression: GCC emitting illegal unaligned loads
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
- https://github.com/negge/bespokeOS/tree/master
- Rebuild everything from source for RISC-V (issues encountered)
- Bootable system images with up-to-date toolchains
- Performance testing and CI tooling
...
- 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 https://git.ffmpeg.org/gitweb/ffmpeg.git/commit/8280ec7
- 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)
- Weekly reporting on progress
- Work is progressing, 60x improvement based on patch set v5 by Max Chou (SiFive)
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
- Potential to build with exact CFLAGS matching hardware, e.g.,
- 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
- Zvk
- 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 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?”
- 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?)
...
- Upstreaming not started due to spec dependencies
- EDK2_00_15 - StandaloneMmPkg RPMI MM support
- OPTEE_00_01 - OP-TEE support
- 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
- EDK2_00_15 - StandaloneMmPkg RPMI MM support
- OPTEE_00_01 - OP-TEE support
- SBI_00_05 - OpenSBI RPMI MM Support
- SBI_00_02 - Firmware-first RAS handling Support
- EDK2_00_10 - UefiPayloadPkg For RISC-V
- Development in progress
...