X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=index.html;h=2a4f38d74627a3a35d110796471338204251e8c2;hb=4f955d79c15ba448955d1861edb0cb848dafdf08;hp=977894b7702d6d225abe8bee4a3cb80cad334f63;hpb=13fd03020479c35e716679d7c5617a94c53d2cf4;p=kernel-news-talk.git
diff --git a/index.html b/index.html
index 977894b..2a4f38d 100644
--- a/index.html
+++ b/index.html
@@ -59,6 +59,7 @@
-
Professional software engineer by day, Debian developer by night
+ (or sometimes the other way round)
-
Regular Linux contributor in both roles since 2008
@@ -85,7 +86,7 @@
every week or two)
-
- ...though some features aren't ready to use when they firat
+ ...though some features aren't ready to use when they first
appear in a release
@@ -146,6 +147,164 @@
+
+
Unnamed temporary files [3.11]
+
+ -
+ Open directory with option O_TMPFILE to create an
+ unnamed temporary file on that filesystem
+
+ -
+ As with tmpfile(), the file disppears on
+ last close()
+
+ -
+ File can be linked into the filesystem using
+ linkat(..., AT_EMPTY_PATH), allowing for 'atomic'
+ creation of file with complete contents and metadata
+
+ -
+ Not supported on all filesystem types, so you will usually need
+ a fallback
+
+
+
+
+
+
Lustre filesystem [3.12]
+
+ -
+ A distributed filesystem, popular for cluster computing
+ applications
+
+ -
+ Developed out-of-tree since 1999, but now added to Linux staging
+ directory
+
+ -
+ Was included in squeeze but dropped from wheezy as it didn't
+ support Linux 3.2
+
+ -
+ Userland is now missing from Debian
+
+
+
+
+
+
Network busy-polling [3.11] (1)
+
A conventional network request/response process looks like:
+
+
+ -
+ Task calls send(); network stack constructs a
+ packet; driver adds it to hardware Tx queue
+
+ -
+ Task calls poll() or recv(), which blocks;
+ kernel puts it to sleep and possibly idles the CPU
+
+ -
+ Network adapter receives response and generates IRQ, waking
+ up CPU
+
+ -
+ Driver's IRQ handler schedules polling of the hardware Rx
+ queue (NAPI)
+
+ -
+ Kernel runs the driver's NAPI poll function, which passes
+ the response packet into the network stack
+
+ -
+ Network stack decodes packet headers and adds packet to
+ the task's socket
+
+ -
+ Network stack wakes up sleeping task; scheduler switches
+ to it and the socket call returns
+
+
+
+
+
+
+
Network busy-polling [3.11] (2)
+
+ -
+ If driver supports busy-polling, it tags each packet with
+ the receiving NAPI context, and kernel tags sockets
+
+ -
+ When busy-polling is enabled, poll()
+ and recv() call the driver's busy poll function to
+ check for packets synchronously (up to some time limit)
+
+ -
+ If the response usually arrives quickly, this reduces overall
+ request/response latency as there are no context switches and
+ power transitions
+
+ -
+ Time limit set by sysctl (net.busy_poll,
+ net.busy_read) or socket option (SOL_SOCKET,
+ SO_BUSY_POLL); requires tuning
+
+
+
+
+
+
Btrfs offline dedupe [3.12]
+
+ -
+ Btrfs generally does COW rather than updating in-place, allowing
+ snapshots and file copies to defer the actual copying and save
+ space
+
+ -
+ Filesystems may still end up with multiple copies of the same
+ file content
+
+ -
+ Btrfs doesn't actively merge these duplicates, but userland can
+ tell it to do so
+
+ -
+ Many file dedupe tools are packaged for Debian, but not one that
+ works with this Btrfs feature, e.g. bedup
+
+
+
+
+
+
nftables [3.13]
+
+ -
+ Linux has several firewall APIs - iptables, ip6tables, arptables
+ and ebtables
+
+ -
+ All require a specific kernel module for each type of match
+ and each possible action
+
+ -
+ Userland could only use the four protocol-specific APIs,
+ although the internal netfilter API is more flexible
+
+ -
+ nftables exposes more of this flexibility, allowing userland
+ to provide firewall code for a specialised VM (similar to BPF)
+
+ -
+ nftables userland tool uses this API and is already packaged
+
+ -
+ Eventually, the old APIs will be removed and the old userland
+ tools must be ported to use nftables
+
+
+
+
Questions?