thanks for your all reply. The following is my response to your forum post: ## 1. Are there any differences or issues with the build process between ARM64 and RV64? This is more a matter of improving the current RV64 ecosystem, not compiling Ceph itself. Rather, it's a matter of issues with the third-party dependencies required to compile Ceph under RV64. Using `install-deps.sh` as an example, when running this script on Ubuntu 22.04 RV64, there are generally two missing dependencies: issues with the deb/rpm packages and issues with the PyPI wheels. One issue is that when building `ceph-build-deps`, two packages are reported missing: `ceph-boost` and `valgrind`. I've built and tested ceph-boost on RV64, and the results are acceptable. I used a GitHub action to fully display the build and test process. For details, see https://github.com/ffgan/ceph-boost-riscv/actions/runs/16500969083/job/46659144626. The final product can be found directly in the corresponding release repository. The situation with valgrind is more complicated. Simply put, valgrind 3.25.1 just added support for RV64, and Debian hasn't yet packaged it for this version. For convenience, I used the Debian packaging script from 3.24 to create the deb package. This deb package hasn't been fully tested, but it can be used to install and run `install-deps.sh` successfully. On Fedora, during the `install-depsd` command, RPM packages, including but not limited to Valgrind, were also missing. I didn't perform further build tests. The second issue was with Python dependencies. These third-party dependencies lacked support for the RV64 architecture. PyPI recently added hosting support for RV64 packages [link](https://github.com/pypi/warehouse/pull/18390), so I've been busy adding RV64 support to PyPI for packages missing from the `install-deps` command, such as maturin and rpds, and more recently, pyyaml and lxml. Currently, they don't fully support RV64, so configuring a toolchain like `Rustup` is required to successfully complete the Python installation in the `install-deps` command. Another issue arises with RV64: the Node.js version, which can lead to issues like memory out-of-bounds access and illegal instructions. These minor issues are incredibly frustrating to resolve. Despite this, I've still managed to complete a relatively complete project, from installing dependencies to building, testing, starting the cluster, and accessing the dashboard in a browser. So, overall, Ceph's support for RV64 is feasible. I think it's appropriate to start by resolving these small issues piecemeal. There's no need to make major changes to current build scripts or processes; simply gradually resolve these dependency issues, and you'll be able to run smoothly on RV64. ## 2. Split large changes into multiple smaller ones Yes, this will facilitate discussion and facilitate PR merging. I'll briefly outline the possible work process I believe is possible: 1. For now, consider only supporting Ubuntu 22 or Ubuntu 24, choosing which one to support first. 2. Consider adding RV64 support to `Ceph-Boost` and provide a RV64 deb package at chacra.ceph.com. 3. Discuss packaging issues for `Valgrind 3.25`, assisting with upstream packaging on Debian or performing test-level packaging at Ceph. 4. Add a new Jenkins pipeline for RV64 (Jenkins already supports RV64). For the Jenkins agent, I recommend using an x86 server running QEMU to create a virtual RV64 agent. 5. Modify install-deps.sh. When building for the RV64 architecture, you'll need to install the Rust toolchain and upgrade pip,and so on. 6. Change the Node.js version; 20.28.1 may be work (the issue occurred in QEMU or Docker; I can't remember exactly; it's related to the CPU instruction set). 7. Run the pipeline and check the errors and output. 8. Run the test. I've run this complete process on my own machine using QEMU and obtained the test results. Interested users can check out this link. 1 https://github.com/ffgan/ceph-riscv/actions/runs/16637799881/job/47082102410 2 https://github.com/ffgan/ceph-riscv/actions/runs/16591687390/job/46930034291 The test results are generally good. ## 3. Lack of RV64 Hardware As I mentioned above, at this stage, you can use an x86 machine to run a QEMU server, virtualize a RV64 node, and then run the Jenkins agent on it. Once the Jenkins pipeline is successfully set up and running, I'd be happy to assist in contacting RV64 open source vendors to obtain donations of RV64 hardware. This requires further communication with the Ceph community and is not the current priority. The priority is to enable Ceph to run on RV. ## 4. done Thank you again for your detailed reply _______________________________________________ Dev mailing list -- dev@xxxxxxx To unsubscribe send an email to dev-leave@xxxxxxx