Contributor
Caio Messias

Development of a RCU Binding for Lua tables


Mentors
Pedro Tammela, Ana Lucia de Moura
Organization
LabLua

Lunatik is a programming environment based on the Lua language for kernel scripting. By allowing kernel scripting, a user may create scripts in Lua to customize their kernel to suit their needs. Modern day kernels, such as Linux, work on a highly concurrent environment, and therefore must use robust synchronization APIs to ensure data consistency, with each API having their own use cases.

The Read-copy-update (RCU) is one of those APIs, made specifically for scenarios where data reading is much more common than writing. RCU allows concurrent readers to access protected data in a non-blocking way even during updates or removals. RCU, as with the rest of the Linux Kernel, is written in C.

The project idea is a binding of RCU for use in Lunatik, thus allowing synchronization of Lua data via RCU.