rr-debugger / rr-debugger/rr

Previous work

Open
#984 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
10.7k
Forks
662
Avg merge
2d 3h
Merged PRs (30d)
2

Description

Hi there,

I've been doing record/replay mechanism for a while on the Linux kernel. Judging by https://github.com/mozilla/rr/wiki/Kernel-API-wishlist it might be useful to take some of the code from the Scribe's kernel implementation.
While Scribe does not rely on performance counters, the ideas are similar. There is a major difference with shared memory as Scribe modifies the page table mechanism to track memory access ordering.

Here's how it works (screencast included):
http://velvetpulse.com/2012/11/27/scribe-the-deterministic-transparent-record-replay-engine/

Papers:
http://viennot.biz/sigmetrics2010_scribe.pdf
http://viennot.biz/sosp2011_racepro.pdf
http://viennot.biz/asplos2013_dora.pdf

Sources:
https://github.com/nviennot/linux-2.6-scribe
https://github.com/columbia/mreplay (mutable replay)

VM to play with Scribe:
http://velvetpulse.s3.amazonaws.com/vm/scribe-ubuntu-1204.tar.bz2

Let me know if there is some interest to salvage some of Scribe's code.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the rr Kernel API wishlist and the linked Scribe implementation at github.com/nviennot/linux-2.6-scribe. Read the referenced Scribe papers and compare its shared-memory and page-table approach with rr. The issue does not define a specific change or completion criteria, so the intended outcome would need maintainer agreement.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, linux
Domain
operating-systems, reverse-engineering
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
15/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.