emitrax's blog

[HCD]: status report

Blog post by emitrax on Sat, 2008-08-23 08:51

It's been a bit since my last status update, so I guess it is time for another one.

First of all, I'd like to inform you that I received the first half HCD payment. Since it's a (fantastic) community based effort project, I thought you wanted to know where your donations ended up.

As of commit r27159 you should be able to read data from an UDF partition. The module has not yet been added back to the image, as I'd like to do some more tests, but as far as I can tell, the port of UDF to the new FS API is close to complete, and you can start testing by adding the module to the image and trying using DVD formatted with UDF, or iso image made with mkisofs. Feedbacks are welcome.

As for the other part of my HCD, in case you missed, bonnie++ was added in r26920 and it is available for the braves one, for testing purposes.

In r27052 I also fixed another BFS deadlock that would lock the file system when more then one thread was writing in the same directory. See this for more info.

Ok, going to back to UDF now. ;-)

File system benchmark suite for Haiku

Blog post by emitrax on Wed, 2008-07-30 10:53

Time for a quick update.

As with r26676, a first buggy xsi semaphore implementation is now present in Haiku (buggy because there is another patch waiting to be reviewed and commited that fixes some issues, but there might be some more coming).

It is now possible to download, compile and run the file system benchmark suite bonnie++. The version I've used is 1.03d, which has been suggested by the author of the suite. With this suite it is possible to test the file system implementation, plus the way Haiku works under low memory and heavy I/O operations.

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.

Impression about my GSoC with HAIKU and USB isochronous support status

Blog post by emitrax on Wed, 2007-09-05 13:32

During this summer I had the chance to improve myself, and work on the USB isochronous support of HAIKU. I wrote some code for every layer of the HAIKU USB stack: USBKit library, usb_raw driver, usb bus manager and most of all the uhci driver. I also spent/waisted some weeks with the usb_webcam media addon, but sadly with not success. Anyway here is what I did.

UHCI driver: Basically I added all the necessary code to handle isochronous transfer in both direction (in and out).

USB stack manager: As above, I added the necessary code to handle isochronous request plus a feature that was missing in the stack and I needed in order to use my webcam. Basically the possibility to choose a different alternate settings for an interface was missing. The code that implements this feature, along with some more code, is still hanging in my computer as it has not been reviewed yet. Not worries though, it will soon be included in the main tree.

USBKit library: Same here. I've added the code to submit isochronous request from user space and to set a different alternate settings. I also modified Francois utility (usb_dev_info) to display all the info about different alternate settings. This code is also still in my computer, but as I said, don't worry ;)

usb_raw driver: like you can imagine, I've added the necessary ioctl commands to handle both isochronous request, and alternate settings feature.

The main reason why some code is still not included in the main tree, it's because it breaks binary compatibility with the USBKit, as I added some more needed command to handle the alternate settings feature.

The most difficult part of my work was the testing as there was not working driver that uses isochronous transfers. I first tried with adding the support for my webcam to the usb_webcam media addon, but it turns out to be more difficult than I thought, because it wasn't very easy to debug for me. So after waisting some more days trying to compile a messy kernel driver provided by my mentor :-) , I finally come up with the idea of implementing the driver for my webcam as user space utility by using the USBKit and so bypassing the media server. This time it was very easy to debug. I managed to get some data but I didn't write the part the actually parsed the data and decoded the frame, as I ran out of time. I though compared the data I was getting with the one sniffed with usbsnoop on linux while running XP on vmplayer and some long hex patterns matched, which are supposed to be some sort of sync pattern. Beside, when putting the camera under my white lamp I was getting 0xff data, which looked very clear to me.

Anyway, I must say that I'm not very happy about the testing, I hoped I could do more but as I said, I waisted some weeks trying with the wrong method to test my code. Sorry guys.

Anyway, I'll be off for some weeks now, as I have my last exams and then I'll probably move to Pisa (any BeOS/HAIKU user over there?). Then I should finally managed to finish reading the OHCI spec I printed out month ago, and I promised I would work on.

Salvo

Adding isochronous support to USBKit and usb_raw

Blog post by emitrax on Tue, 2007-07-03 12:36

Just to keep those of you interested updated, after discussing it with both my mentor and Michael Lotz, and after a very quick chat with Francois Revol, I am going to add isochronous support to both the USBKit and usb_raw driver. Meanwhile Francois, if time is on his side, should add isochronous support to his user space quickcam driver (see src/add-ons/media/media-add-ons/usb_webcam/). This way I can test my previous patches and perhaps everyone can start using his logitech quickcam with Haiku by using codycam. I don't know though for sure, what product id are supported.

UHCI isochronous support added

Blog post by emitrax on Tue, 2007-06-26 22:21

For those of you who are not following the haiku-commit mailing list, I've added the isochronous support to the UHCI driver. I'm working on a quickcam driver to test the code, but if someone of you out there, already have some very simply driver, that needs isochronous support, please contact me and help me with the testing.

The sooner I'm done with the testing, the sooner I'll move on to the OHCI driver. ;-)

UHCI isochronous support half done

Blog post by emitrax on Sat, 2007-06-09 21:29

Actually is more than half. This quick post is just to inform you that I wrote the part that schedule an isochronous request in the UHCI driver. I've already sent the patch to Michael for his review. The only part that is missing is the code that remove the request once it has been processed or canceled, which is not as trivial as I thought.

Syndicate content