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.

90<br />

10<br />

8<br />

seconds<br />

6<br />

4<br />

2<br />

0<br />

1CPU<br />

2CPU<br />

native rump old rump new<br />

Figure 3.8: System call performance using <strong>the</strong> improved CPU scheduler.<br />

<strong>The</strong> advanced rump kernel CPU scheduler is lockless <strong>and</strong> cache conscious. With it,<br />

simultaneous system calls from multiple threads are over twice as fast as against <strong>the</strong><br />

host kernel <strong>and</strong> over four times as fast as with <strong>the</strong> old scheduler.<br />

Performance<br />

<strong>The</strong> impact <strong>of</strong> <strong>the</strong> improved CPU scheduling algorithm is shown in Figure 3.8. <strong>The</strong><br />

new algorithm performs four times as good as <strong>the</strong> freelist algorithm in <strong>the</strong> dual CPU<br />

multithreaded case. It also performs twice as fast as a host kernel system call. Also,<br />

<strong>the</strong>re is scalability: <strong>the</strong> dual CPU case is within 1% <strong>of</strong> <strong>the</strong> performance <strong>of</strong> <strong>the</strong> single<br />

CPU case — native performance is 20% weaker with two CPUs. Finally, <strong>the</strong> jitter<br />

we set out to eliminate has been eliminated.<br />

CPU-bound lwps<br />

A CPU-bound lwp will execute only on a specific CPU. This functionality is required<br />

for example for delivering a clock interrupt on every virtual CPU. Any lwp which

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

Saved successfully!

Ooh no, something went wrong!