Skip to content

Support exploring more weak memory behaviors #1634

Open
@RalfJung

Description

@RalfJung

Miri can explore some possible behaviors introduced by weak memory, but not all of them. What exactly are our gaps and is it possible to fix them?

Original description

Miri explores a particular interleaving of a concurrent execution, so if a program is buggy only for some executions Miri might miss that bug. Furthermore, Miri will never exhibit "weak" behaviors where the same operation appears to take effect in different order for different threads, which means there is yet another set of executions that Miri will not see and that could be buggy.

It would be great if we could do something about this. However, exploring all interleavings is clearly infeasible. I think one common technique used for such situations in the literature is "(dynamic) partial order reduction", but I am not sure if that technique is applicable to Miri.

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-concurrencyArea: affects our concurrency (multi-thread) supportA-weak-memoryArea: emulation of weak memory effects (store buffers)C-enhancementCategory: a PR with an enhancement or an issue tracking an accepted enhancement

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions