On Wednesday, July 30, 2025 9:20:59 AM Eastern Daylight Time sudoemt@gmail.com wrote:
Hi there, I'm ffgan. My GitHub account is github.com/ffgan. I'm a RISC-V enthusiast and hope to contribute to making Ceph run smoothly on riscv64 (RV64).
Does Ceph have any plans to support RV64 in the near future? If so, I'd be very happy to provide relevant assistance. Please feel free to contact me anytime.
If you're interested in making this happen, I suggested getting involved in the various sub-teams around Ceph. It's very hard for the current dev team members to remember one mailing list post where someone once volunteered on this topic, but if you're regularly present in meetings or slack or the mailing list it can make a difference.
I made some modifications based on Ceph v19.2.2. When building v19.2.2, there were some missing third-party dependencies like ceph-boost. A few days ago, I asked @adamemerson about his views on ceph-boost supporting RV, but didn't receive a reply (by email), so I'm posting this thread here.
v19.2.2 can basically run on Ubuntu 22 RV, and here are the related modifications. https://github.com/ffgan/ceph/commits/feature/allow_riscv64_compile/
I suggest trying to break up your work into as many small incremental patches & PRs as you can. Make it clear on each PR what you are trying to do - 'fix compilation error XYZ on riscv64' for example. Making small Patches and small PRs makes it easier to discuss each change with the teams responsible for each area. Note: starting with a big disorganized basket of changes is fine, I do it all the time - it's just that when it comes time to show others it helps to make each patch as small as possible.
My main work was porting-related, aimed at making Ceph run on RV64. I first modified install-deps.sh - when running this script, some third-party dependencies didn't support RV, so I packaged them to make the script run on U22 RV. Then I also modified some CMakeLists.txt files and some header files to support compilation on RV. For the dashboard, there were some issues, so I disabled the related compilation and building. After completing the modifications, to conveniently demonstrate the build and test results, I set up an RV64 server and used GitHub Actions to execute the related processes step by step, connecting to the server via SSH to execute commands and get the relevant output. Here are the related CI scripts and running results. https://github.com/ffgan/ceph-riscv/actions/runs/16620228074 The results show that the execution was basically smooth. althrought some test failed. What suggestions do you have regarding these modifications, CI scripts, and test results?
I noticed you use Jenkins for building and testing. For RV, there might be troublesome CI pipeline setup issues. If you need assistance with related CI pipeline setup, I'd be very happy to help. For pipeline setup, if there are no RV64 physical machines available, that's no problem - QEMU virtual machines can be used to run the related builds and tests.
Yes, ceph uses jenkins and it can be a pain at times. However, it's not clear to me why there'd be specific issues to riscv64, the system has arm64 builders and those work largely OK. You might consider joining the Ceph infrastructure meetings if you want to try and make riscv64 part of set of supported architectures, however that'd probably involve getting donated hardware at some point - I have no idea if you're in a position to help push that. But it's also a fine place to discuss virtualized builders (although I worry about the performance there - but I won't let myself get more sidetracked into details now). You can find this meeting on the ceph community calendar (every two weeks on Thu). https:// ceph.io/en/community/meetups/ We have also recently started a Build SIG (special interest group) recently. We discuss online in #ceph-build-sig on ceph slack. This is a good place to discuss things like CI, jenkins jobs, packaging dependencies and changes to the build scripts. Hope this was helpful!