This is an old revision of the document!
Sonja Milicic
About me
I'm an undergraduate student at Faculty of Electrical Engineering and Computing in Zagreb, Croatia. My project for GSoC 2007 is FreeBSD “safety net” IO logging utility.
Current activities
- GEOM module - implementing IO logging. Estimated date for finishing: between July 17th and 20th
July 10th status update
Basic write code ready for testing, now trying to configure the created geom for accepting such requests (right now, the attempt to write to it results in “Operation not permitted” - probably I forgot something in geom configuration). Also started to implement a data structure to keep track of what's on the disk and what's in the log file for read requests, I'm using TAILQ list of structs that contain location on the disk (where the data would be if on the disk), offset in the file and size of the data. It should eventually be made into a list of lists to make it faster. I heard this could be done with a tree (the fastest way), but it's not immediately obvious how. In case of system being shut down without commit or rollback event, this structure should be saved to the disk.
Bugs found
- memory leak after kldunload (32 bytes) - forgot to free() something?
- kldunload without the geom being stopped previously crashes when attempting g_wither_geom
Completed
- GEOM module
- gctl interface
- worker thread
- event queue handling
- GEOM methods
- geom helper library
- kernel code for file manipulation
To do (and estimated day for finishing)
- userland utility to dump snapshot data in text format, for performance and data analysis (July 30th)
- full READ/WRITE functionality for the snapshot (August 15th)
- support for multiple snapshot files and switching between them (August 31st)
- write documentation (parallel with programming, but will be revised and completed once the code is done)