A collection of slide decks from Concurrency Kit talks.

Introduction to Concurrency Kit

This talk is an introduction to the various motivations and features of Concurrency Kit, specifically with-in the context of applications in the FreeBSD kernel.

Fast Bounded-Concurrency Hash Tables

This talk introduces a general technique for achieving single-writer non-blocking hash tables at low to negligible cost. The resulting hash table requires no barriers (fences) or locked instructions on architectures such as x86/x86-64. Read operations are lock-free and write operations are fast and bounded. Insertion and deletion are wait-free. Probe sequence mutation is linearized for the common case, bounded and fast. Architectures with relaxed memory models still require barriers.

Towards accessible non-blocking technology for C

This topic will walk the audience through the story of the struggles Samy and his peers have faced in the last couple of years in developing sufficient working knowledge to (efficiently) leverage existing non-blocking data structures as well as design, implement and verify new algorithms for use by mission-critical systems. It will highlight the holes faced in existing open-source projects tackling the concurrency problem for the C programming language and the literature associated with much of existing technology.

Safe Memory Reclamation: Epoch Reclamation

An introduction to basic concepts related to safe memory reclamation and epoch-based reclamation including some comparative analysis of simple workloads to URCU.

Introduction to Lock-Free Algorithms: Through a case study

An introduction to basic concepts related to non-blocking synchronization in the context of a single-producer single-consumer FIFO and leading up to very basic safe memory reclamation.

Lock-Free Algorithms: An Introduction

A more in-depth introduction to non-blocking synchronization ranging from basics of the consensus problem, the consensus hierarchy to related issues such as safe memory reclamation. This is a 2D slide deck, so please make sure to browse using the "Down" arrow before going right (press space bar to view layout).