28.08.2015 Views

The Design and Implementation of the Anykernel and Rump Kernels

1F3KDce

1F3KDce

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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

216<br />

which were discovered during writing tests or which were found by running <strong>the</strong> test<br />

suite prior to commit are not included. Arguably, <strong>the</strong> full test suite should always<br />

be run prior to commit so that regressions would never hit <strong>the</strong> public tree, but doing<br />

so is not always practical for small changes.<br />

• VFS changes causing invariants to no longer be valid.<br />

• Leak <strong>of</strong> vnode objects by changes to file system rename routines.<br />

• Regression <strong>of</strong> a BPF fix which would cause it to accept programs which<br />

execute a divide-by-zero.<br />

• Locking problem where <strong>the</strong> kernel giant lock was released in <strong>the</strong> networking<br />

stack although it was not held.<br />

Although <strong>the</strong> test suite in 5.99.48 covers only a fraction <strong>of</strong> <strong>the</strong> kernel, it is capable<br />

<strong>of</strong> detecting real regressions. As tests accumulate, this capability will increase.<br />

Additionally, <strong>the</strong> tests using rump kernels stress <strong>the</strong> host system enough to be <strong>the</strong><br />

only tests to catch some host bugs, such as a kernel race condition from when TLS<br />

support was introduced to NetBSD. In case tests are hosted on a NetBSD system,<br />

multiple layers <strong>of</strong> bugs in NetBSD will be exercised: bugs in <strong>the</strong> host system, bugs<br />

in <strong>the</strong> kernel code under test in a rump kernel <strong>and</strong> bugs in rump kernel support.<br />

<strong>The</strong> benefits <strong>of</strong> using rump kernels for testing do not apply to <strong>the</strong> first set <strong>of</strong> bugs,<br />

which again shows what we already mentioned in Section 4.4: a rump kernel cannot<br />

make up for <strong>the</strong> deficiencies <strong>of</strong> layers below it.

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

Saved successfully!

Ooh no, something went wrong!