richiejp logo

Richard Palethorpe’s Index

Richard Palethorpe

Professional Bio

Operating Systems and "full stack" engineer and technical writer. Creator of the Fuzzy Sync race exposition library, core contributor to the Linux Test Project, contributor to Linux Kernel and a wide range of other projects.

Presently working part-time on kernel testing for SUSE Linux and unrelated entrepreneurial activities.
Reddit | Twitter | LinkedIn | Medium | GitHub | GitLab | Newsletter

Nottingham, United Kingdom

Richard Palethorpe




Some of the projects I have been working on. You can see more on GitHub and GitLab.

  • Fuzzy Sync: Independent edition of the LTP Fuzzy Sync library. Can be used to create data race reproducers. Alt repo.
  • Linux Kernel: The most popular Operating System kernel. In addition to helping find kernel bugs, I have also fixed a few.
    • b9258a2cece4 slcan: Don't transmit uninitialized stack data in padding
    • 0ace17d56824 can, slip: Protect tty->disc_data in write_wakeup and close with RCU
    • redundant nvdimm: Avoid race between probe and reading device attributes
    • redundant mm: memcg/slab: Stop reparented obj_cgroups from charging root (was refused in favor of this)
  • Linux Test Project: I have worked on the LTP for the last few years, writing tests and adding library features. For example…
  • GFXPrim/automata: GFXPrim in an ultra lightweight embedded graphics library created by long suffering LTP maintainer Cyril Chrubis. I used it to create a reversible cellular automata viewer.
  • Actors.jl: The actor model for Julia. I also started a web framework based on this called Luvvy and a viral agent-based simulation.
  • libactors: C Actor model and message passing library using userland read-copy-update (liburcu).
  • JDP: Written in Julia; A sprawling data analysis ‘framework’ I made to automatically process kernel test results and bug data. I presented this at FOSDEM and here.
  • BSONqs.jl: A fork of BSON.jl which uses Julia’s meta programming features to produce type specific deserialisers dynamically. This allows it to deserialise BSON encoded data into native Julia structs quickly.
  • rselisp: An insane attempt at cloning Emacs in Rust. It includes an elisp interpreter and a barely working text editor.
  • OpenQA & os-autoinst: A monstrosity of an operating system test framework. Amongst other things, I rewrote the QEMU backend to improve snapshotting and performance. It is mostly written in Perl (sigh).