vfs

HCD [bfs]: Status Report #1

Blog post by emitrax on Sun, 2008-06-22 17:33

It's been almost a month already since the very first Haiku Code Drive began!

First of all thanks to all of those who have voted me, I was very surprised about the poll result.

Now some updates about my project.

As you know, my project aims to test the stability of the bfs file system. In order to do so
the idea is to first implement XSI Posix semaphores, and then compile bonnie++ which is a benchmark suite
for file systems. To be honest though, XSI Posix semaphore are not really mandatory, because it would be
faster to just port bonnie++ to Haiku, as it would require very few changes (e.g. those concerned locking).
However though, in the long run, Haiku would benifit more if I implement the semaphores previously mentioned,
as it would also make it more Posix compliant.

The easiest part was the user space one, now I'm working on the kernel side. I also started a thread
about this on the gsoc mailing list so you can follow it by clicking on the link below.
http://www.freelists.org/archives/haiku-gsoc/06-2008/msg00009.html

Although I'm not done with the above though, I've already started running some test without bonnie++
and hitting the first bug. See ticket #2400.

The test is quite simple but very time consuming, especially on my current hardware (by the way,
if someone is willing to try the test with real hardware or a faster maching please contact me).

I first packed the whole haiku source code into a tarball from linux, move it to my usb disk, run
vmware, and try to unpack the almost 500MB tarball (1.5 GB unpacked) from Haiku.
Yeah... "Good luck with that! :)"

The result, which at first seemed to me as a bfs bug, turned out to be a vfs one, although we are still discussing about it in the gsoc mailing list. See the link below for more details.
http://www.freelists.org/archives/haiku-gsoc/06-2008/msg00021.html

Despite the fact it has been confirmed not to be a bfs bug, as you can read from the mailing list, I'm still trying to fix it, while also finishing xsi sempahore implementation.

That's all for now.

Sorry, Volume Is Busy!

Blog post by axeld on Sun, 2006-01-15 19:43

If you've used BeOS, you're probably familiar with the above message when trying to unmount a volume. From time to time, some application keeps accessing a volume, and you can't determine which application that is. It might be caused by a running live query, but it might also be caused by buggy background applications that forget to close a file.

I've just given you control over your volumes back again in Haiku: you can force unmounting such a volume -- applications still trying to access it, would get an error back. Forcing an unmount requires an extra user interaction, though, so it's not the preferred solution.

To remove one of the problems, live queries shouldn't bother unmounting a volume at all: it doesn't make any sense that they are preventing the normal unmounting process to stop. This can hardly be in the interest of an application that is querying for something.

On the other side, we should try to improve the user perception of a busy volume: instead of saying "sorry, busy" it should say something like: "Sorry, application Tracker is still accessing the volume." - for the user this makes an important difference, especially when he now has the power to force unmounting a volume, it gives him the information he needs to properly decide what he really wants to do.

As a side effect, we'd get a tool that can determine which applications have which files open - to be able to report misbehaviour of the application back to its developers. Or even better, to give the developer the possibility to monitor the performance of his application.

Well, at least you have the power now, control comes next :-)

Sub-Transactions

Blog post by axeld on Wed, 2005-10-19 15:38

A small update to the BFS incompatibility: I've now ported the original logging structure to the R5 version of BFS as well, so that the tools like bfs_shell can now successfully mount "dirty" volumes, too. I also found another bug in Be's implementation, and needed to cut down the log entry array by one to make it work with larger transactions.

Now I am working on implementing sub transactions. If you have tried out Haiku and compiled some stuff or just redirected some shell output to a file, you undoubtedly are aware that this takes ages on the current system.

Syndicate content