28.08.2015 Views

The Design and Implementation of the Anykernel and Rump Kernels

1F3KDce

1F3KDce

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

229<br />

• Copying <strong>the</strong> large file was measured to consist <strong>of</strong> 98.5% asynchronous data<br />

writes. Memory mapped I/O is almost twice as slow as read/write, since as<br />

explained in Section 3.9.2, <strong>the</strong> relevant parts <strong>of</strong> <strong>the</strong> image must be paged in<br />

before <strong>the</strong>y can be overwritten <strong>and</strong> thus I/O b<strong>and</strong>width requirement is double.<br />

Unbuffered userspace read/write is 1.5% slower than <strong>the</strong> kernel mount.<br />

• Copying a directory tree is a mix <strong>of</strong> directory metadata <strong>and</strong> file data operations<br />

<strong>and</strong> one third <strong>of</strong> <strong>the</strong> I/O is done synchronously in this case. <strong>The</strong><br />

memory mapped case does not suffer as badly as <strong>the</strong> large copy, as locality<br />

is better. <strong>The</strong> rump read/write case performs 10% better than <strong>the</strong> kernel<br />

due to a buffered backend. <strong>The</strong> trade<strong>of</strong>f is increased memory use. In <strong>the</strong><br />

unbuffered case <strong>the</strong> problem <strong>of</strong> not being able to issue synchronous write<br />

operations while an asynchronous one is in progress shows.<br />

Notably, we did not look into modifying <strong>the</strong> host kernel to provide more finegrained<br />

interfaces for selective cache flushing <strong>and</strong> I/O to character devices. For now, we<br />

maintain that performance for <strong>the</strong> typical workload is acceptable when compared to<br />

a kernel mount. We still emphasize that due to <strong>the</strong> anykernel a kernel mount can<br />

be used for better performance where it is safe to do so.<br />

Journaled FFS<br />

We measured <strong>the</strong> large file copy <strong>and</strong> copy <strong>of</strong> a directory structure tests similarly<br />

as for traditional FFS. We did not measure read-only operation since journaling is<br />

meant to speed up write operations. We did not measure <strong>the</strong> MMIO rump kernel<br />

block device or <strong>the</strong> character device backend, since <strong>the</strong>y were already shown to be<br />

inferior. <strong>The</strong> tests were done as in <strong>the</strong> previous section, with <strong>the</strong> exception that <strong>the</strong><br />

file system mounted with -o log. <strong>The</strong> results are presented in Figure 4.18.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!