Project Description

multipathd is multi-threaded, but it uses a single lock that essentially kills most benefits of the additional threads. Also, it busy-waits or sleeps in various places, in part with locks held, which is of course very bad for a program with lots of asynchronous things going on.

Goal for this Hackweek

Eliminate busy-waiting. Assess which of the various threads are actually necessary. Rework the path checker to be truly asynchronous. Also, re-think configuration changes (reconfigure). Currently this works with user-space RCU, but I believe that's not optimal. It's dangerous to continue servicing uevents and path checkers while a configuration change is pending.

Looking for hackers with the skills:

c multipath storage

This project is part of:

Hack Week 20

Activity

  • over 4 years ago: mkubecek liked this project.
  • over 4 years ago: mwilck added keyword "multipath" to this project.
  • over 4 years ago: mwilck added keyword "storage" to this project.
  • over 4 years ago: mwilck added keyword "c" to this project.
  • over 4 years ago: mwilck originated this project.

  • Comments

    Be the first to comment!

    Similar Projects

    pudc - A PID 1 process that barks to the internet by mssola

    Description

    As a fun exercise in order to dig deeper into the Linux kernel, its interfaces, the RISC-V architecture, and all the dragons in between; I'm building a blog site cooked like this:

    • The backend is written in a mixture of C and RISC-V assembly.
    • The backend is actually PID1 (for real, not within a container).
    • We poll and parse incoming HTTP requests ourselves.
    • The frontend is a mere HTML page with htmx.

    The project is meant to be Linux-specific, so I'm going to use io_uring, pidfs, namespaces, and Linux-specific features in order to drive all of this.

    I'm open for suggestions and so on, but this is meant to be a solo project, as this is more of a learning exercise for me than anything else.

    Goals

    • Have a better understanding of different Linux features from user space down to the kernel internals.
    • Most importantly: have fun.

    Resources