changeset 104:7bcba6e2acc3

OLS papers are up to 2009 now.
author Rob Landley <rob@landley.net>
date Fri, 01 Jan 2010 04:54:13 -0600
parents d00b5e91cba8
children c27b8c8a1b14
files make/functions.sh make/mirror.py make/splitols.py ols/2007/index.html ols/2008/index.html ols/index.html
diffstat 6 files changed, 98 insertions(+), 16 deletions(-) [+]
line wrap: on
line diff
--- a/make/functions.sh	Fri Jan 01 04:51:43 2010 -0600
+++ b/make/functions.sh	Fri Jan 01 04:54:13 2010 -0600
@@ -155,10 +155,10 @@
       [ $? -ne 0 ] && exit 1
     fi
 
-    if [ -z "$(find ols/2007 -name "*.pdf")" ]
+    if [ -z "$(find ols/2009 -name "*.pdf")" ]
     then
       echo "Split ols files"
-      mkdir -p ols/{1999,2000,2001,2002,2003,2004,2005,2006,2007,2008} &&
+      mkdir -p ols/{1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009} &&
       cp mirror/ols2001/*.pdf ols/2001 &&
       make/splitols.py mirror ols
 
--- a/make/mirror.py	Fri Jan 01 04:51:43 2010 -0600
+++ b/make/mirror.py	Fri Jan 01 04:54:13 2010 -0600
@@ -23,7 +23,8 @@
           ["765e049036ca947af05fb5b4f29b9daf4b363558", "https://ols2006.108.redhat.com/2007/Reprints/OLS2007-Proceedings-V1.pdf", "ols2007v1.pdf"],
           ["60fdaa6a74dec29a0538325b742bee4097247c6d", "https://ols2006.108.redhat.com/2007/Reprints/OLS2007-Proceedings-V2.pdf", "ols2007v2.pdf"],
           ["a31ac3ae1fffcd747ae37a2e667ec3bd695ede47", "http://www.linuxsymposium.org/2008/ols-2008-Proceedings-V1.pdf", "ols2008v1.pdf"],
-          ["5132655a740f98c81ad159c20b5c12887ea3cf8a", "http://www.linuxsymposium.org/2008/ols-2008-Proceedings-V2.pdf", "ols2008v2.pdf"]
+          ["5132655a740f98c81ad159c20b5c12887ea3cf8a", "http://www.linuxsymposium.org/2008/ols-2008-Proceedings-V2.pdf", "ols2008v2.pdf"],
+          ["f48e8682c14355df15567be2c95307485edb1587", "http://www.linuxsymposium.org/2009/ls-2009-proceedings.pdf", "ols2009.pdf"]
          ):
   file=i[1].split('/')[-1]
   if len(i)>2: file=i[2]
--- a/make/splitols.py	Fri Jan 01 04:51:43 2010 -0600
+++ b/make/splitols.py	Fri Jan 01 04:54:13 2010 -0600
@@ -6,6 +6,10 @@
 
 import os, sys
 
+if len(sys.argv) != 3:
+  print "Usage: splitols.py inpath outpath"
+  sys.exit(1)
+
 inpath=sys.argv[1]
 outpath=sys.argv[2]
 
@@ -27,8 +31,10 @@
             ("ols2006v2", "2006", 7, (9, 25, 35, 45, 59, 73, 79, 83, 91, 99, 109, 125, 131, 147, 151, 159, 173, 181, 193, 209, 223, 239, 249, 263, 275, 295, 303, 313, 321, 337, 349, 357, 371, 387, 401, 411, 417, 423, 437)),
             ("ols2007v1", "2007", 7, (9, 21, 29, 41, 53, 65, 75, 81, 87, 93, 103, 113, 125, 131, 141, 153, 167, 179, 189, 201, 205, 215, 225, 231, 239, 245, 251, 263, 277, 285, 293, 303, 315)),
             ("ols2007v2", "2007", 7, (9, 21, 35, 45, 59, 65, 71, 79, 87, 97, 107, 119, 127, 135, 145, 151, 161, 173, 179, 187, 201, 209, 223, 229, 235, 245, 253, 261, 273, 285, 297, 305, 311, 319)),
-            ("ols2008v1", "2008", 7, (9, 19, 31, 39, 53, 63, 77, 85, 101, 107, 113, 123, 129, 135, 137, 143, 151, 163, 173, 183, 193, 197, 211, 219, 229, 239, 253, 263, 275)),
-            ("ols2008v2", "2008", 5, (7, 19, 27, 39, 47, 57, 67, 75, 85, 91, 101, 115, 125, 135, 145, 151, 157, 163, 179, 187, 199, 205, 215, 227, 235, 245, 255, 261))
+            ("ols2008v1", "2008", 7, (9, 19, 31, 39, 53, 63, 77, 85, 101, 107, 113, 123, 129, 135, 137, 143, 151, 163, 173, 183, 193, 197, 211, 219, 229, 239, 253, 263, 275, 285)),
+            ("ols2008v2", "2008", 5, (7, 19, 27, 39, 47, 57, 67, 75, 85, 91, 101, 115, 125, 135, 145, 151, 157, 163, 179, 187, 199, 205, 215, 227, 235, 245, 255, 261, 268)),
+            ("ols2009", "2009", 7, (9, 19, 29, 39, 47, 55, 61, 69, 79, 87, 95, 101, 111, 123, 131, 141, 149, 159, 169, 185, 191, 201, 209, 221, 235, 239, 251, 263, 275, 287, 297, 303, 311, 319, 331, 340))
+
           )
 
 for i in volumes: splitvolume(i[0],"%s/%s" % (outpath,i[1]),i[2],i[3])
--- a/ols/2007/index.html	Fri Jan 01 04:51:43 2010 -0600
+++ b/ols/2007/index.html	Fri Jan 01 04:54:13 2010 -0600
@@ -4,21 +4,44 @@
 
 <h2><a href=ols2007v1-pages-9-20.pdf>The Price of Safety: Evaluating IOMMU Performance</a> - <b>Muli Ben-Yehuda, Jimi Xenidis, Michal Ostrowski, Karl Rister, Alexis Bruemmer, Leendert Van Doorn</b></h2>
 
+<p>IOMMUs, "IO Memory Management Units", are hardware devices that translate device DMA addresses to machine addresses. Isolation capable IOMMUs perform a valuable system service, preventing rogue devices from performing errant or malicious DMAs, thereby substantially increasing the system's reliability and availability. Without an IOMMU, a peripheral device could be programmed to overwrite any part of the system's memory. An isolation capable IOMMU restricts a device so that it can only access parts of memory it has been explicitly granted access to. Operating systems utilize IOMMUs to isolate device drivers; hypervisors utilize IOMMUs to grant secure direct hardware access to virtual machines. With the imminent publication of the PCI-SIG's IO Virtualization standard, as well as Intel and AMD's introduction of isolation capable IOMMUs in all new servers, IOMMUs will become ubiquitous.</p>
+
+<p>IOMMUs can impose a performance penalty due to the extra memory accesses required to perform DMA operations. The exact performance degradation depends on the IOMMU design, its caching architecture, the way it is programmed and the workload. In this paper, we present the performance characteristics of the Calgary and DART IOMMUs in Linux, both on bare metal and hypervisors. We measure the throughput and CPU utilization of several IO workloads with and without an IOMMU and analyze the results. We then discuss potential strategies for mitigating the IOMMU's costs. We conclude by presenting a set of optimizations we have implemented and the resulting performance improvements.</p>
+
 <h2><a href=ols2007v1-pages-21-28.pdf>Linux on Cell Broadband Engine status update</a> - <b>Arnd Bergmann</b></h2>
 
+<p>With Linux for the Sony PS3, the IBM QS2x blades and the Toshiba Celleb platform having hit mainstream Linux distributions, programming for the Cell BE is becoming increasingly interesting for developers of performance computing. This talk is about the concepts of the architecture and how to develop applications for it.</p>
+
+<p>Most importantly, there will be an overview of new feature additions and latest developments, including:</p>
+
+<ul>
+<li><p>Preemptive scheduling on SPUs (finally!): While it has been possible to to run concurrent SPU programs for some time, there was only a very limited version of the scheduler implemented. Now we have a full time-slicing scheduler with normal and real-time priorities, SPU affinity and gang scheduling.</p></li>
+
+<li><p>Using SPUs for offloading kernel tasks: There are a few compute intensive tasks like RAID-6 or IPsec processing that can benefit from running partially on an SPU. Interesting aspects of the implementation are how to balance kernel SPU threads against user processing, how to efficiently communicate with the SPU from the kernel and measurements to see if it is actually worthwhile</p></li>
+
+<li><p>Overlay programming: One significant limitation of the SPU is the size of the local memory that is used both its code and data. Recent compilers support overlays of code segments, a technique widely known in the previous century but mostly forgotten in Linux programming nowadays.</p></li>
+</ul>
+
 <h2><a href=ols2007v1-pages-29-40.pdf>Linux Kernel Debugging on Google-sized clusters</a> - <b>Martin Bligh, Mathieu Desnoyers, Rebecca Schultz</b></h2>
 
+<p>This paper will discuss the difficulties and methods involved in debugging the Linux kernel. Intermittent errors that occur once every few years are hard to debug ... but a problem when running across thousands of machines simultaneously. The more we scale to very large clusters, the more reliablilty becomes critical. In such environments, many of the normal debugging luxuries are gone (like a serial console, or any physical access), and we're forced to change to a different strategy to solve thorny intermittent race conditions.</p>
+
+<p>We need (and have created) powerful but lightweight kernel tracing tools that are critical for cluster debugging, but also make powerful weapons in a smaller scale enviroment, where they can help debug issues more quickly and less intrusively. Real world usage examples will be included.</p>
+
 <h2><a href=ols2007v1-pages-41-52.pdf>Ltrace Internals</a> - <b>Rodrigo Rubira Branco</b></h2>
 
 <h2><a href=ols2007v1-pages-53-64.pdf>Evaluating effects of cache memory compression on embedded systems</a> - <b>Anderson Farias Briglia, Allan Bezerra, Leonid Moiseichuk, Nitin Gupta</b></h2>
-<p>Modern disks are around 1000 times slower than memory.  At that point, using
-data compression on disk caches to keep more of the filesystem's contents in
-memory longer can be a win.  The paper describes a prototype compressed cache
-design for both page and swap caches, with benchmarks of performance and power
-consumption.</p>
+
+<p>Cache memory compression (or compressed caching) was originally developed for desktop and server platforms but has also attracted interest on embedded systems where generally, memory is a scarce resource and hardware changes bring more costs and energy consumption. Cache memory compression brings a considerable advantage in input-output intensive applications by means of using a virtually larger cache for the local file system through compression algorithms. As a result, it increases the probability of fetching the necessary data in RAM itself, avoiding the need to make low calls to local storage. This work evaluates an Open Source implementation of the cache memory compression applied to Linux on an embedded platform, dealing with the unavoidable processor and memory resource limitations as well as with existing architectural differences.</p>
+
+<p>We will describe the Compressed Cache (CCache) design, compression algorithm used, memory behavior tests, performance and power consumption overheads and CCache tuning for embedded Linux</p>
 
 <h2><a href=ols2007v1-pages-65-74.pdf>ACPI in Linux - Myths vs Reality</a> - <b>Len Brown</b></h2>
 
+<p>Major Linux distributors have been shipping ACPI in Linux for several years, yet mis-perceptions about ACPI persist in the Linux Community. This paper addresses the top 10 myths about ACPI in Linux.</p>
+
+<p>A broad range of Linux users, administrators, and developers will understand and benefit from this presentation without any in-depth knowledge of ACPI.</p>
+
 <h2><a href=ols2007v1-pages-75-80.pdf>Cool Hand Linux -- Handheld Thermal Extensions</a> - <b>Len Brown, Harinarayanan Seshadri</b></h2>
 
 <h2><a href=ols2007v1-pages-81-86.pdf>Asynchronous System Calls</a> - <b>Zach Brown</b></h2>
@@ -103,6 +126,10 @@
 
 <h2><a href=ols2007v2-pages-119-126.pdf>cpuidle -- Do nothing, efficiently...</a> - <b>Venkatesh Pallipadi, Adam Belay</b></h2>
 
+<p>Until now, most of the focus in Linux CPU power management has been on active CPU power management. cpufreq, which changes the processor frequency and/or voltage and manages the CPU performance levels and power consumption based on CPU load. Another dimension of CPU power management is CPU idling power. In general, there is now more focus shifting towards idle power (Energy star) and new platforms/processors are supporting multiple idle-states with different power and wakeup latency characteristics. Today most of the mobile processors support multiple idle states with varying amount of power consumed in those idle states and each state has an entry-exit latency associated. This emphasis on idle power necessitates the need for a generic Linux kernel framework to manage idle CPUs.</p>
+
+<p>This paper covers 'cpuidle' - an effort toward a generic idle framework in the Linux kernel. The goal is to have a clean interface for any platform to make use of different CPU idle levels and also to provide abstraction between idle-drivers and idle-governors allowing for independent development. The target audience includes those who have a general interest in idle processor power management and its impact on battery life, developers who would like to create new and better governors, and developers interested in utilizing the cpuidle infrastructure on new platforms.</p>
+
 <h2><a href=ols2007v2-pages-127-134.pdf>My bandwidth is wider than yours</a> - <b>Inaky Perez-Gonzalez</b></h2>
 
 <h2><a href=ols2007v2-pages-135-144.pdf>Zumastor Linux Storage Server</a> - <b>Daniel Phillips</b></h2>
@@ -145,5 +172,11 @@
 <h2><a href=ols2007v2-pages-305-310.pdf>Enabling Linux Network Support of Hardware Multiqueue Devices</a> - <b>Zhu Yi, Peter P. Waskiewicz, Jr.</b></h2>
 
 <h2><a href=ols2007v2-pages-311-318.pdf>Concurrent Pagecache</a> - <b>Peter Zijlstra</b></h2>
+
+<h2>Evolution and Diversity: The Meaning of Freedom and Openness in Linux - James Bottomley</h2>
+
+<p>Note: paper not in proceedings</p>
+
+<p>2007 looks like being the year when Free Software and Open Source finally make their differences (which have been bubbling away under the surface for over a decade) manifest. For all of its differences with "free software", Linux consistently maintains the greatest amount of innovation of any of the Open Source Operating Systems. We'll take a whimsical and offbeat tour of the reasons why this might be so from the point of view of the maintainer of possibly the least popular (certainly the least used) kernel architecture.</p>
 </body>
 </html>
--- a/ols/2008/index.html	Fri Jan 01 04:51:43 2010 -0600
+++ b/ols/2008/index.html	Fri Jan 01 04:54:13 2010 -0600
@@ -3,28 +3,58 @@
 <body>
 
 <p><a href=http://free-electrons.com/pub/video/2008/ols/>Additional videos
-are available</a>, including tutorial and BOF sessions for which no
+are available</a> (<a href=http://linux.dell.com/files/presentations/Ottawa_Linux_Symposium_2008/>and more</a>), including tutorial and BOF sessions for which no
 paper was required.</p>
 
 <h2><a href="ols2008v1-pages-9-18.pdf">x86 Network Booting: Integrating gPXE and PXELINUX</a> - <b>H. Peter Anvin</b></h2>
+<p>History of network booting (TFTP/BOOTP and NBI predated PXE, which is
+the network booting standard published by Intel in 1997 and supported by
+most BIOSes today).  History of SYSLINUX (contains PXELINUX) and Etherboot
+(precursor to gPXE).</p>
+
+<p>PXE has three parts.  The first two (some low-level base code, and a network
+driver) are saved in the firmware.  They fetch a "Network Boot Program" (NBP),
+from the network, which is a small loader which can call the network driver
+out of the firmware to load the rest of the operating system.  Using gPXE with
+PXELINUX generally means using gPXE to provide the base code and network driver
+in the firmware (for use with things like OpenBios), and loading PXELINUX to
+act as an NBP.</p>
+
+<p>Ends with issues related to two projects working together.</P>
+
 <h2><a href="ols2008v1-pages-19-30.pdf">Keeping the Linux Kernel Honest</a> - <b>Kamalesh Babulal, Balbir Singh</b></h2>
+
+<p>Automated testing for the Linux kernel.  Linux Test Project,
+Fault Injection Framework, IBM's proprietary "Automated Build And Test" server,
+etc.</p>
+
 <h2><a href="ols2008v1-pages-31-38.pdf">Korset: Automated, Zero False-Alarm Intrusion Detection for Linux</a> - <b>Ohad Ben-Cohen, Avishai Wool</b></h2>
+
+<p>An open source project that uses static analysis to construct a model
+of application behavior (control flow graphs).</p>
+
+<p>[Some significant oversimplifications in this one.  As far as I can tell,
+"it interprets Javascript" would count as "self modifying code".  Being
+written in something like Python would fundamentally invalidate the assumptions
+too.  The technique is aimed at non-kernel C code that doesn't implement
+an interpreter for another language.]
+
 <h2><a href="ols2008v1-pages-39-52.pdf">Suspend-to-RAM in Linux</a> - <b>Len Brown, Rafael J. Wysocki</b> (<a href=http://free-electrons.com/pub/video/2008/ols/ols2008-len-brown-and-rafael-wysocki-suspend-to-ram.ogg>video</a>)</h2>
 <h2><a href="ols2008v1-pages-53-62.pdf">Systems Monitoring Shootout</a> - <b>K. Buytaert, T. De Cooman, F. Deschamps, B. Verwilst</b></h2>
 <h2><a href="ols2008v1-pages-63-76.pdf">Virtualization of Linux servers</a> - <b>F.L. Camargos, G. Girard, B. des Ligneris</b></h2>
 <h2><a href="ols2008v1-pages-77-84.pdf">MondoRescue: a GPL Disaster Recovery Solution</a> - <b>Bruno Cornec</b></h2>
 <h2><a href="ols2008v1-pages-85-100.pdf">The Corosync Cluster Engine</a> - <b>Steven C. Dake</b></h2>
 <h2><a href="ols2008v1-pages-101-106.pdf">LTTng: Tracing across execution layers, from the Hypervisor to user-space</a> - <b></b></h2>
-<h2><a href="ols2008v1-pages-107-112.pdf">Getting the Bits Out: Fedora MirrorManager</a> - <b>Matt Domsch</b></h2>
+<h2><a href="ols2008v1-pages-107-112.pdf">Getting the Bits Out: Fedora MirrorManager</a> - <b>Matt Domsch</b> (<a href=http://linux.dell.com/files/presentations/Ottawa_Linux_Symposium_2008/mirrormanager.mp4>video</a>, <a href=http://linux.dell.com/files/presentations/Ottawa_Linux_Symposium_2008/mirrormanager.odp>slides</a>)</h2>
 <h2><a href="ols2008v1-pages-113-122.pdf">Applying Green Computing to clusters and the data center</a> - <b>Andre Kerstens, Steven A. DuChene</b></h2>
 <h2><a href="ols2008v1-pages-123-128.pdf">Introduction to Web Application Security Flaws</a> - <b>Jake Edge</b></h2>
 <h2><a href="ols2008v1-pages-129-134.pdf">Around the Linux File System World in 45 minutes</a> - <b>Steve French</b> (<a href=http://free-electrons.com/pub/video/2008/ols/ols2008-steve-french-linux-filesystems.ogg>video</a>)</h2>
 <h2><a href="ols2008v1-pages-135-136.pdf">Peace, Love, and Rockets!</a> - <b>Bdale Garbee</b></h2>
-<h2><a href="ols2008v1-pages-137-142.pdf">Secondary Arches, enabling Fedora to run everywhere</a> - <b>Dennis Gilmore</b></h2>
+<h2><a href="ols2008v1-pages-137-142.pdf">Secondary Arches, enabling Fedora to run everywhere</a> - <b>Dennis Gilmore</b> (<a href=http://linux.dell.com/files/presentations/Ottawa_Linux_Symposium_2008/secondaryarches.ogg>video</a>, <a href=http://linux.dell.com/files/presentations/Ottawa_Linux_Symposium_2008/secondaryarches.odp>slides</a>)</h2>
 <h2><a href="ols2008v1-pages-143-150.pdf">Application Testing under Realtime Linux</a> - <b>Luis Claudio R. Goncalves, Arnaldo Carvalho de Melo</b> (<a href=http://free-electrons.com/pub/video/2008/ols/ols2008-luis-claudio-goncalves-application-testing.ogg>video</a>)</h2>
 <h2><a href="ols2008v1-pages-151-162.pdf">IO Containment</a> - <b>Naveen Gupta</b></h2>
 <h2><a href="ols2008v1-pages-163-172.pdf">Linux Capabilities: making them work</a> - <b>Serge E. Hallyn, Andrew G. Morgan</b></h2>
-<h2><a href="ols2008v1-pages-173-182.pdf">Issues in Linux Mirroring: Or, BitTorrent Considered Harmful</a> - <b></b></h2>
+<h2><a href="ols2008v1-pages-173-182.pdf">Issues in Linux Mirroring: Or, BitTorrent Considered Harmful</a> - <b>John Hawley</b></h2>
 <h2><a href="ols2008v1-pages-183-192.pdf">Linux, Open Source, and System Bring-up Tools</a> - <b>Tim Hockin</b> (<a href=http://free-electrons.com/pub/video/2008/ols/ols2008-tim-hockin-bringup-tools.ogg>video</a>)</h2>
 <h2><a href="ols2008v1-pages-193-196.pdf">Audio streaming over Bluetooth</a> - <b>Marcel Holtmann</b></h2>
 <h2><a href="ols2008v1-pages-197-210.pdf">Cloud Computing: Coming out of the fog</a> - <b>Gerrit Huizenga</b></h2>
@@ -39,7 +69,7 @@
 <h2><a href="ols2008v2-pages-7-18.pdf">Where Linux Kernel Documentation Hides</a> - <b>Rob Landley</b></h2>
 <h2><a href="ols2008v2-pages-19-26.pdf">Tux meets Radar O'Reilly -- Linux in military telecom</a> - <b>Grant Likely, Shawn Bienert</b></h2>
 <h2><a href="ols2008v2-pages-27-38.pdf">A Symphony of Flavours: Using the device tree to describe embedded hardware</a> - <b>Grant Likely, Josh Boyer</b></h2>
-<h2><a href="ols2008v2-pages-39-46.pdf">Tux on the Air: The State of Linux Wireless Networking</a> - <b>John W. Linville</b> (<a href=http://free-electrons.com/pub/video/2008/ols/ols2008-john-linville-linux-wireless.ogg></h2>
+<h2><a href="ols2008v2-pages-39-46.pdf">Tux on the Air: The State of Linux Wireless Networking</a> - <b>John W. Linville</b> (<a href=http://free-electrons.com/pub/video/2008/ols/ols2008-john-linville-linux-wireless.ogg>video</a>)</h2>
 <h2><a href="ols2008v2-pages-47-56.pdf">AUGEAS -- a configuration API</a> - <b>David Lutterkort</b></h2>
 <h2><a href="ols2008v2-pages-57-66.pdf">`Real Time' vs. `Real Fast': How to Choose?</a> - <b>Paul E. McKenney</b> (<a href=http://free-electrons.com/pub/video/2008/ols/ols2008-paul-mckenney-real-time-vs-real-fast.ogg>video</a>)</h2>
 <h2><a href="ols2008v2-pages-67-74.pdf">If I turn this knob... what happens?</a> - <b>Arnaldo Carvalho de Melo</b></h2>
@@ -60,10 +90,16 @@
 <h2><a href="ols2008v2-pages-205-214.pdf">SCSI Fault Injection Test</a> - <b>Kenichi Tanaka</b></h2>
 <h2><a href="ols2008v2-pages-215-226.pdf">A Survey of Virtualization Workloads</a> - <b>A. Theurer, K. Rister, S. Dobbelstein</b></h2>
 <h2><a href="ols2008v2-pages-227-234.pdf">Thermal Management in User Space</a> - <b>Sujith Thomas</b></h2>
-<h2><a href="ols2008v2-pages-235-244.pdf">A Model for Sustainable Student Involvement in Community Open Source</a> - <b>Chris Tyler</b></h2>
+<h2><a href="ols2008v2-pages-235-244.pdf">A Model for Sustainable Student Involvement in Community Open Source</a> - <b>Chris Tyler</b> (<a href=http://linux.dell.com/files/presentations/Ottawa_Linux_Symposium_2008/students.mp4>video</a>, <a href=http://linux.dell.com/files/presentations/Ottawa_Linux_Symposium_2008/opensource-seneca-ols2008.odp>slides</a>)</h2>
 <h2><a href="ols2008v2-pages-245-254.pdf">A Runtime Code Modification Method for Application Programs</a> - <b>Kazuhiro Yamato</b></h2>
 <h2><a href="ols2008v2-pages-255-260.pdf">SynergyFS: A Stackable File System Creating Synergies between Heterogeneous Storage Devices</a> - <b>Keun Soo Yim</b></h2>
 <h2><a href="ols2008v2-pages-261-267.pdf">Live Migration with Pass-through Device for Linux VM</a> - <b>Edwin Zhai</b></h2>
 
+<hr>
+<h1>Tutorials (no papers)</h1>
+
+<h2>Automating the Generation of Kickstart Files (<a href=http://linux.dell.com/files/presentations/Ottawa_Linux_Symposium_2008/kickstart.ogg>video</a>)</h2>
+<h2>Creating your own Fedora-based distribution - <b>Jesse Barnes</b> (<a href=http://linux.dell.com/files/presentations/Ottawa_Linux_Symposium_2008/ols-distro-tutorial.mp4>video</a>, <a href=http://linux.dell.com/files/presentations/Ottawa_Linux_Symposium_2008/ols-distro-tutorial.odp>slides</a>)</h2>
+
 </body>
 </html>
--- a/ols/index.html	Fri Jan 01 04:51:43 2010 -0600
+++ b/ols/index.html	Fri Jan 01 04:54:13 2010 -0600
@@ -4,6 +4,12 @@
 Linux Symposium.  The original volumes are available from
 <a href=http://www.linuxsymposium.org>the OLS website</a>.</p>
 
+<h1><a href=2009>OLS 2009 individual papers</a></h1>
+
+<p>The proceedings are also available as <a href=../mirror/ols2009.pdf>one
+big PDF volume</a> from the
+<a href=http://linuxsymposium.org/2009>OLS 2009 website</a>.</p>
+
 <h1><a href=2008>OLS 2008 individual papers</a></h1>
 
 <p><a href=http://free-electrons.com/pub/video/2008/ols/>OGG video of