- <h1>User namespaces [3.7]</h1>
- <ul class="incremental">
- <li>
- One of the last missing pieces for OpenVZ-like containers
- </li>
- <li>
- Each user namespace has its own <tt>root</tt> user with
- privileges over the users and processes in that namespace - but
- not the whole system
- </li>
- <li>
- Currently somewhat experimental, and requires filesystem
- changes which haven't been done for XFS
- </li>
- <li>
- Make it work: send patches to upstream XFS developers (this
- one's hard)
- </li>
- </ul>
+ <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>