Project

General

Profile

Actions

Feature #1368

open

Integrate RCU implementation from libside into liburcu

Added by Mathieu Desnoyers about 1 year ago.

Status:
New
Priority:
Normal
Assignee:
-
Target version:
-
Start date:
02/14/2023
Due date:
% Done:

0%

Estimated time:

Description

libside features a multi-domain RCU implementation semantically similar to the Linux kernel's SRCU's implementation. It tracks grace periods with per-cpu counters rather than per-thread state.

https://github.com/efficios/libside/blob/master/src/rcu.h
https://github.com/efficios/libside/blob/master/src/rcu.c

It is somewhat different from other urcu flavors because it supports multiple domains, whereas current liburcu flavors only have a single domain per process.

We would have to think thoroughly about the impacts of supporting multiple domains on other parts of liburcu such as the call_rcu worker thread. The worker thread would either have to be able to synchronize with multiple RCU domains, or we would have to require each worker thread to be associated with a single RCU domain.

Similar concerns arise with respect to data structures such as rculfhash which take a urcu flavor as parameter: with per-domain flavor, those would have to be associated with a specific RCU domain in addition to the flavor.

No data to display

Actions

Also available in: Atom PDF