+ <h1>Recap of last year's features (1)</h1>
+ <ul class="incremental">
+ <li>
+ Team device driver: userland package (libteam) was uploaded in
+ October
+ </li>
+ <li>
+ Transcendent memory: frontswap, zswap and Xen tmem will be
+ enabled in next kernel upload
+ </li>
+ <li>
+ New KMS drivers: should all work with current Xorg drivers
+ </li>
+ <li>
+ Module signing: still not enabled, but probably will be if we
+ do Secure Boot
+ </li>
+ </ul>
+</div>
+
+<div class="slide">
+ <h1>Recap of last year's features (2)</h1>
+ <ul class="incremental">
+ <li>
+ More support for discard: still not enabled at install time
+ (<a href="https://bugs.debian.org/690977">#690977</a>)
+ </li>
+ <li>
+ More support for containers: XFS was fixed, and user namespaces
+ have been enabled
+ </li>
+ <li>
+ bcache: userland package (bcache-tools) still not quite ready
+ (<a href="https://bugs.debian.org/708132">#708132</a>)
+ </li>
+ <li>
+ ARMv7 multiplatform: d-i works on <em>some</em> platforms but
+ I'm still not sure which. Some progress on GPU drivers, but not
+ in Debian yet.
+ </li>
+ </ul>
+</div>
+
+<div class="slide">
+ <h1>Unnamed temporary files [3.11]</h1>
+ <ul>
+ <li>
+ Open directory with option <tt>O_TMPFILE</tt> to create an
+ unnamed temporary file on that filesystem
+ </li>
+ <li>
+ As with <tt>tmpfile()</tt>, the file disappears on
+ last <tt>close()</tt>
+ </li>
+ <li>
+ File can be linked into the filesystem using
+ <tt>linkat(..., AT_EMPTY_PATH)</tt>, allowing for 'atomic'
+ creation of file with complete contents and metadata
+ </li>
+ <li>
+ Not supported on all filesystem types, so you will usually need
+ a fallback
+ </li>
+ </ul>
+</div>
+
+<div class="slide">
+ <h1>Network busy-polling [3.11] (1)</h1>
+ <p>A conventional network request/response process looks like:</p>
+ <small><!-- ew -->
+ <ol class="incremental">
+ <li>
+ Task calls <tt>send()</tt>; network stack constructs a
+ packet; driver adds it to hardware Tx queue
+ </li>
+ <li>
+ Task calls <tt>poll()</tt> or <tt>recv()</tt>, which blocks;
+ kernel puts it to sleep and possibly idles the CPU
+ </li>
+ <li>
+ Network adapter receives response and generates IRQ, waking
+ up CPU
+ </li>
+ <li>
+ Driver's IRQ handler schedules polling of the hardware Rx
+ queue (NAPI)
+ </li>
+ <li>
+ Kernel runs the driver's NAPI poll function, which passes
+ the response packet into the network stack
+ </li>
+ <li>
+ Network stack decodes packet headers and adds packet to
+ the task's socket
+ </li>
+ <li>
+ Network stack wakes up sleeping task; scheduler switches
+ to it and the socket call returns
+ </li>
+ </ol>
+ </small>
+</div>
+
+<div class="slide">
+ <h1>Network busy-polling [3.11] (2)</h1>