Skip to content

[Tracking] Make the plugin table API compatible with multithreading for built in tables #2802

@gnosek

Description

@gnosek

Currently, the plugin table API implementation for built-in tables tightly couples the underlying type, e.g. a SS_PLUGIN_ST_UINT64 can only be stored in an actual uint64_t. This prevents us from using e.g. atomic integers as table fields. Given that we expose a lot of fields in the thread and fd tables, we're effectively blocked from any form of safe concurrent access.

The series this issue tracks aims to fix that and make the built in table implementation more flexible, while keeping performance no worse than the current implementation (in my tests, I got up to 5% speedup).

Please note that this series does not introduce any sort of concurrency support into the table API, it just removes a blocker that we'd run into sooner or later with just about any attempt at multithreaded state access.

Related: falcosecurity/falco#3749

The whole series can be seen in #2804 (which is admittedly large and hard to review but can give you the bigger picture).

PR links will appear here as I submit them.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions