On Tue, Mar 26, 2013 at 9:53 AM, Martin Helm <martin@null-a.de> wrote:
I doubt a little bit that the user space part really affects the performance, at least I cannot see any valid reason from a programmers point of view.
I don't know if you do any kernel level programming, but the kernel / userspace boundary is common bottleneck concern for kernel devs. I may be dated in my knowledge and there are tricks that can be played by the fuse devs that might overcome part of this. (I don't know how fuse works in detail, so take this with a big grain of salt): In particular a lot of DMA chips only support the moving data from a disk controller to/from the 1st GB of ram, thus the kernel ram buffers are restricted to being in the first GB of ram. Userspace in theory never needs to directly access hardware, so it is free to use all of ram. That means that userspace and the kernel can't easily share ram. So a disk write with MC to ntfs-3g would be: MC -> kernel (fuse) -> ntfs-3g -> kernel (fuse) -> dma -> disk controller. If the userspace -> kernel calls involve making a copy of the data every time, then that is a lot of overhead compared to: MC -> kernel (ext4) -> dma -> disk controller. Note that the dma aspect is typically handled by off-cpu logic, so the above only has a single cpu managed data copy going on. In the ntfs-3g case, it has 3 cpu managed data copies going on. Thus ntfs-3g has 3x the overhead of ext4. Greg -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org