2022.02.17
We would love to congratulate David for winning this award. In the year 2021, David works on different RISC-V development boards, and giving full support on Linux kernel upstream. For example, VisionFive OpenSBI patch is upstreamed by David.
We are interested to David’s thoughts about open-source and RISC-V, and the following conversations happened.
1. What are some communities you participate most time?
I mainly focus on Fedora/RISCV in my free time. It is a non-official (yet) Fedora Remix for RISC-V 64-bit (riscv64) architecture. We hope one day it will become the official secondary architecture for Fedora. We have been working on Fedora/RISCV since 2016. Depending on the problem I am working on you might notice me on various public mailing lists. This means I am not constantly active on one or more projects, but I continue to monitor a number of public mailing lists for RISC-V specific keywords daily. The most important ones continue to be kernel, U-Boot, GCC, binutils, glibc and similar. Any change/bug/enhancement within those might have a significant impact on the distribution thus knowing about them in advance helps to review, test and prepare.
For the day job I work on delivering Freedom-U-SDK (FUSDK) for SiFive HiFive Unleashed and Unmatched boards. FUSDK is based on OpenEmbedded (OE), which is a popular framework and collection of recipes for various packages to cross-compile a Linux distribution for an embedded target (in most cases).
2. Your contribution on RISC-V in the year 2021
That doesn’t change much anymore. The main contributions continue to be Fedora/RISCV and monthly FUSDK releases for SiFive HiFive boards. If I recall correctly, SiFive HiFive Unmatched shipped in early 2021, and I had a tiny influence on some things which hopefully helped RISC-V software ecosystem in 2021 and beyond.
3. How do you think of RISC-V ecosystem growth?
It feels fast, but Fedora/RISCV has been going since 2016 thus it takes a significant amount of time for something to materialize. It works, which is fantastic! Nonetheless the first major batch of 15 new specifications (ratified) arrived in RISC-V space. That’s more than 40 new extensions for RISC-V. We still don’t have Profiles and Platforms specifications frozen or/and ratified. The public review just started for RISC-V psABI v1.0-rc1. Hopefully soon enough we will have a good understanding of how future standard RISC-V systems will look like. Today things work, but Linux distributions and other operating systems don’t know what to expect on a standard RISC-V system for embedded, desktop, server, or any other market. There is this statement we used back in ARMv8 64-bit/AArch64 early years – software needs to be boring. Simply put it has to work like on a standard x86_64 PC without any additional effort from the user, and we aren’t in that stage for RISC-V. It roughly takes a decade (10 years) for a new ISA to reach a solid starting point. Hopefully the next few years will make RISC-V dead boring, i.e. things will just work out of the box same as on x86_64 PC.
Fragmentation is what worries me the most. We already have chips on the market that implement non-ratified extensions or/and don’t fully follow specifications in some cases. That probably was unavoidable growing pains, but we should avoid that as much as possible going forward. Vendor specific custom extensions are slowly showing up too. Ventana Micro Systems is probably the first company attempting to upstream their custom extension (XVentanaCondOps) right now.
There is still a lack of high-performance hardware for developers and build farms for a proper price tag. Things are improving (see SiFive HiFive Unmatched), but we need more vendors delivering SoC or/and boards. Hopefully all those boards would comply with RISC-V Platforms specification.
4. How do you get to know about open source or RISC-V?
I was still in school, and I got this book called “Linux for Dummies”. This book came with Red Hat Linux 6.2 if I recall correctly. I installed it multiple times on my Athlon XP 1700+ machine back then. It looked like something from the Jurassic Park movie scene (“It's a UNIX system! I know this!”). I knew nothing at that time, and I couldn’t figure out how to configure networking on it. From time to time I attempted again, but I had very little progress.
Things improved once I started reading “Hacker” magazine. It was a time of IRC, and things like Perl, Tcl, eggdrops, etc. were popular. I have started writing mIRC scripts (custom clients), I had eggdrop bot (Tcl scripts), and somehow more folks at school started running Linux. Slackware Linux became a popular distribution, and we compiled software from source tarballs. I was still a young kid, still at school, and I had no idea what FOSS was. This didn’t last long, and back to Windows I was.
The understanding of FOSS came at university. I shifted from Windows to Mac OS X (x86_64) as a daily driver, but Ubuntu and CentOS were used a lot for university work too. I got a summer internship at CERN which is heavily dominated by Macs for desktops/laptops and Linux for everything server. After university I got a job at CERN working as a release manager for CMS experiment software (CMSSW), which is a huge collection of various open source projects and code. This is also the time I started attending FOSDEM, Linaro Connect, Fedora and other conferences.
After many years I moved to the R & D side, which involved new architectures (ARMv7 32-bit, ARMv8 64-bit, PowerPC 64-bit LE, Xeon Phi) for CMSSW, and also hardware acceleration engines (e.g. compression/decompression). RISC-V was a natural next thing. Richard W.M. Jones (Red Hat) sent an email to Fedora mailing list announcing Fedora/RISCV bootstrap, and I knew I could apply some things I learned (especially with ARMv8 64-bit) thus I jumped into it. No time to waste! New beginnings!
5. What intimates you to go on the open source journey?
I really like the ability to look “under the hood” and fix a problem myself without waiting on anyone. I get to look at the actual code instead of a hex editor and binary files on Windows. The true excitement is when other folks actually use what you help to produce. I have seen folks using Fedora/RISCV for development, for demos, etc. and that’s truly exciting.
6. Your open-source project for 2022
That continues to be Fedora/RISCV. There is a lot of work everywhere you look, especially on the infrastructure side which is aging and limiting us. We need to do another rebuild and improvement on the infrastructure side before we start catching up to Fedora Rawhide/36.
7. What project do you want to do on VisionFive board?
We need to ensure that Fedora/RISCV disk images are provided for the board. The exciting projects will be done by the users on top of that.
8. The highest challenge you have ever faced in open source work?
One thing that always seems complicated is licensing and compatibility. It’s hard to wrap your head around it in a really large code base with a large dependency tree. Note, that there are loads of various licences out there, not everything is under a well known and popular license.
9. What is the most important support you think developers need when working on open source projects?
If I need to pick a single one that most likely will be a proper, welcoming, and prompt communication between project members. Writing code might be easier compared to writing proper commit messages, doing proper testing, writing cover letters, and sending everything for a public review.
10. Any advice for new open-source developers?
If you are coming to an existing project, spend time reading documentation, files, version control system history, and look at mailing list communication. Try to learn how the community works before you send your initial contributions. Never be afraid to ask questions. In general folks want to help you, but they might not have sufficient time to be prompt with answering them. Patience is something you need in communication. It might take quite some time for patches to land (even if they are small or/and trivial), but once that happens it will be an epic feeling.
11. Your past projects on StarLight board
I have BeagleV Starlight by the BeagleBoard.org Foundation. I haven’t used it for any particular project. I mainly helped with some testing, and provided help to enable full L2 cache capacity (2MiB) and enable full microarchitecture features to achieve better performance.
12. Please tell us a fun fact about yourself
I once tried to reach the peak of Mont Blanc (the highest mountain in the Alps, around 4.8 kilometers above sea level), but we failed the attempt due to poor weather conditions. What I learned is that this wasn’t a failure at all. Yes, we didn’t reach the actual peak of Mont Blanc, but we did a lot of learning, climbing and had a fantastic time. We climbed other peaks around and the view from Aiguille du Midi was still unbelievably beautiful and extremely calming. I will never forget the sound of cracking glaciers, it’s like thunder. The experience, memories, and emotions I gained was what I looked for.