[Tux3] [PATCH 02/10] don't use preallocation if BUFFER_PARANOIA_DEBUG is defined
OGAWA Hirofumi
hirofumi at mail.parknet.co.jp
Sun Oct 19 22:09:46 PDT 2008
Daniel Phillips <phillips at phunq.net> writes:
>> That's great. Does it have (or plan) performance test too? I think, in
>> future performance regression also will become issue.
>
> Performance testing doesn't really make a lot of sense in user space,
> the fuse interface is a huge bottleneck, likewise the synchronous Posix
> IO calls. We can start performance testing when we have a kernel port.
Yes.
> The kernel port can start as soon as we have a prototype of atom commit
> working in user space.
>
> Here is a first cut, partial list of tasks for the kernel port:
>
> - Buffer operations need to be adapted to work with page cache and
> bio instead of userspace synchronous Posix IO.
For now, I can't image what we want... BTW, do we support the blocksize
smaller than PAGE_CACHE_SIZE?
> - Much glue to vfs *_operations methods.
>
> - Mount options parsing, superblock load/save
Maybe, those are easy.
> - Spinlocks for VFS ops
Um.. what does this mean?
> - First cut btree, bitmap and atom table locking
Yes.
> This list is way incomplete, I just thought I'd start it now and flesh
> it out as we get closer.
>
> We will avoid the biggish job of converting any "non grata" C99 features
> such as inline declarations for now by just disabling the C99 warnings
> in kernel, and use defines/macros to make most of the user space code
> compile in kernel just as it is, for the time being.
>
> Spinlocks typically require that some high traffic code be refactored
> in unnatural ways. We will do this for the kernel code and backport
> that code to userspace, either using empty macros in userspace or
> perhaps SysV semaphores for a more realistic simulation.
In future, how are we going to use the userland? I worry we are bothered
to sync userland <-> kernel...
> We will start with simple minded per-inode monolithic locks for btree
> access, allocation for now, then add high tech granular locks bit by
> bit.
Ok.
> In kernel, nearly everything is parallel and asynchronous, unlike the
> userspace code where the tux3 high level simulation is strictly single
> threaded and fuse linearizes everything by default. We could start to
> work on the parallel aspects in userspace by going to pthreads and
> pthread mutexes under fuse, but it is not clear that that would
> actually save time versus just jumping straight into kernel with a
> little bit of sandbox work using user mode linux in smp mode. If
> somebody else wants to take a run at adding pthreads to tux3fuse, they
> would be more than welcome, but I will shift my own effort into kernel
> pretty soon.
--
OGAWA Hirofumi <hirofumi at mail.parknet.co.jp>
_______________________________________________
Tux3 mailing list
Tux3 at tux3.org
http://tux3.org/cgi-bin/mailman/listinfo/tux3
More information about the Tux3
mailing list