Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Integrate drbbdup into drmgr #5400

Open
derekbruening opened this issue Mar 7, 2022 · 0 comments
Open

Integrate drbbdup into drmgr #5400

derekbruening opened this issue Mar 7, 2022 · 0 comments

Comments

@derekbruening
Copy link
Contributor

drbbdup presents a separate layer of instrumentation interfaces on top of drmgr, but only over some parts of drmgr, which has led to a number of complications in trying to use drbbdup in some clients such as drcachesim (#3995).

One issue is that drbbdup does not cover the app2app phase. This means we cannot support drwrap function replacement with drbbdup (#5356). It also means we can't pass user data from app2app, something hit in PR #5393.

Another issue is interactions with emulation and drbbdup's hiding of non-cloneable instructions (#5390).

Other issues include missing parameters such as translating, which were later added to drbbdup (part of #5356).

derekbruening added a commit that referenced this issue Mar 17, 2022
…5428)

Augments drbbdup to allow a value of 0 for
drbbdup_options_t.non_default_case_limit.  When it is set to 0, no
duplication will occur, and no per-block data structures will be
allocated, saving memory.

Long-term, integration with drmgr #5400 might provide a cleaner solution.

Adds a test case for this.

Updates drmemtrace to use this when multi-case options are not
selected.

Sanity test:
  Before:
  $ bin64/drrun -rstats_to_stderr -t drcachesim -offline -max_global_trace_refs 10K -- ~/spec2006/bzip2-test/bzip2_base.gcc-64bit ~/spec2006/bzip2-test/dryer.jpg 2
                Peak vmm blocks for unreachable heap :               747
              Peak vmm virtual memory in use (bytes) :           6963200
  After:
                Peak vmm blocks for unreachable heap :               631
              Peak vmm virtual memory in use (bytes) :           6389760

Along with the prior shift to use unreachable heap for per-block data
and then to eliminate and improve per-thread data, this concludes the
memory reductions for #5411.

Fixes #5411
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant