Zbr's days.

About :: TODO :: Blog :: RSS :: Old blog :: Projects :: GIT :: Gallery :: Notes

Wed, 30 Jan 2008

POHMNELFS first release: 50 ml.

Is suspended for tomorrow. Kernel side is fully ready and was quite actively tested (I think I found lots of tricks used by ext2 and others when they maintain link counters and process inodes). There are some issues with local caches, which I will think about later (there are two caches right now - one is for gloabal hash to inode conversation, another one is per-inode, it contains hash to inode number only keys, for example it contains hard links and directories like '.' and '..', other usual directories and files exists in both caches, the latter cache is used for ->readdir() implementation, since it is also indexed by offset field).

I will not release code today because of userspace server, which is so utterly bad (for every single operation it has to traverse tree of the objects and to open/close each parent's file descriptor), so it screams for rewriting. At least for the initial rewrite it will open every single object it contains, so that requests from remote client would not require lots and lots of tree traversals. I know that this is not a good solution, but the only good solution is to move server into the kernel too, but it will take several days to complete, so it will be scheduled for future versions.

Also found that debugging in Xen is a nightmare: first, it does not support oprofile (at least the latest version constantly says me "No sample file found" when I try to see the report), second, it is buggy - I have (it looks so) two xen domains with identical kernels, one of them regulary freezes in so much obscure places, that it is impossible to debug it correctly. And then I lost (some ldap problems which do not allow to login to that domain anymore) the first setup, which worked good... Third, Xen setup I have is slow (very damn slow), fourth, it is unfair testing, since different domains can eat all cpu during one or another test and that will not be easily detected.

So, for initial testing it is enough, but real development will require real hardware.
Stay tuned...

/devel/fs :: Link / Comments ()