Know this is a bit late, but I was exploring other topics for Haiku a few days back, and just wanted some insight.
For the benchmarking, there is currently fs_shell for XFS and UFS2, and also has FUSE support. Bonnie++ ports already exist, as read from another post. random_file_actions also exist, and seems like a very good tool that does most of the stuff. But, the stuff that’s currently missing is cross-filesystem benchmarking between the different filesystems integrated, no automation, no way to store the results to view the performance improvements on bug fixes/feature additions, etc. Also no xfstest port, I think.
For the write support, ExFAT almost seems already ready, and might be the easiest to complete. UFS2 seems to have some serious bugs, and XFS is also incomplete in that manner. Would it be achievable to think that implementing ExFAT would be viable for a 175 hour project and UFS2 a 350 hour project?
Actually there is a GSoC applicant who is working on XFS write support - already provided patches which were merged into Nightly build, ..
so I recommend to apply rather to UFS2 filesystem improvement if you want to be applied for a GSOC 2026 project that does not collide with other applicants.
Send a draft proposal ASAP for review, and then you can get advice for regarding the details and
is your plan is applicable in the given timeframe ? - like questions -
Have a great journey with coding for Haiku, our love project !
I have already applied for a proposal under the scheduler framework, and also submitted patches that are to be integrated soon, but, I am also interested in the filesystem ideas. ExFAT and UFS2 are the only ones to be left to be done, correct?
As for the benchmarks, I think cross-filesystem benchmarking between different filesystems as well as automation of such tests + record storing for future comparisions would also be a valid proposal to make, unless someone has already applied under that too.
Ok, so I don’t wanna reduce you in your choices - I just pinpointed : there is another applicant for XFS (also for exfat), so may be more fortunate to go for UFS2.
Of course, you can select the same FS, but I thought you may want to honor another one’s choice as well.
Well I had not tracked all GSoC 2026 offerings, who is who, so I had not identified you had already have proposal in the tube for the kernel scheduler, I just generally wrote to have a proposal for FS improvement generally to have time to finalize in time. I do not exactly how it is scheduled for ending the specific periods .. so I just offered foreseeingly.There’re another applicants who seemed uncertain about their selection to work on in this summer, so you are not unique in this manner
Not exactly about uncertainty, more of what I thought that if the devs don’t currently have a really urgent need for scheduler changes and what I had proposed, I could offer my help in the other topics mentioned too. From the topics, UFS2 seems to be a good place to start, especially if the endgoal is to have FreeBSD support. Would these be acceptable as a proposal -
Fixing the crash bug mentioned (works in fs_shell but not in actual Haiku)
Adding block cache integration
Write_stat (Modify timestamps, permissions, truncate files)
fsync for flush changes to disk.
None of the topics offered in the GSoC ideas page are critical. We don’t let the newcomers and interns do the critical parts of the work
I don’t have a clear idea what the state of the various filesystems is exactly. It’s up to you to analyze one and expose your findings in a GSoC proposal if you want to work on that.
I assume this is the error that was mentioned in the GSoC page? Of the UFS2 partition not being accepted in the actual system?
Edit: Tried with Linux Native partitioning and as well as FreeBSD partitioning, as well as raw disk itself, all provide the same error when trying to mount a ufs2 file.
I have attached screenshots, basically mounted a ufs2 driver onto the system, loaded it in, then mounted a file written for the ufs2 format, and tried checking it.
Currently, the ufs2 driver only allows to read files, and checkout nested directories as well. No support for writing or creating sub directories/files. Unmounting and mounting works too.