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

i#5694: Add core-oriented analysis tool support #6279

Merged
merged 6 commits into from
Aug 31, 2023

Commits on Aug 25, 2023

  1. i#5694: Add core-oriented analysis tool support

    Adds a new type of sharding for drmemtrace analysis tools: by core
    instead of by thread.
    
    Introduces a shard_type_t enum (SHARD_BY_THREAD and SHARD_BY_CORE)
    passed to a new analysis_tool_t::initialize_shard_type() function to
    inform tools of the shard type (this cannot be easily added to the
    stream interface as the scheduler is not aware of the shard type).
    
    Adds a new memtrace_stream_t::get_output_cpuid() query to get the
    output cpu ordinal, or for replaying as-traced the original traced
    cpuid (#6262).  Implements this for the scheduler.
    
    Generalizes analyzer_t to take in scheduler options for SHARD_BY_CORE
    to support analysis tools using the full range of schedules.  In this
    mode, the core count is the worker count.  Updates the shard index to
    be the core ordinal.  Adds time-based scheduling support with
    analyzer_t using wall-clock time as the current time.
    
    Adds a number of options to set sharding mode (-core_sharding,
    -core_serial (not yet implemented)) and control the schedule
    (-sched_quantum, -sched_time, sched_order_time, -record_file,
    -replay_file, -cpu_schedule_file).
    
    Updates the basic_counts tool to support core sharding.
    
    Adds a new test core_sharded_test which leverages the analyzer_multi
    and option parsing to test the top-level options within a framework
    that can capture the output and run multiple tests sequentially in a
    simpler framework than having a separate test with an output file for
    each parameter being tested.
    
    Left as future work:
    + Convert scheduler_launcher into a new schedule_stats tool
    + Add a new record to indicate STATUS_WAIT
    + Add -core_serial support
    + Convert drcachesim default and -cpu_scheduling to use
      get_output_cpuid()
    
    Issue: #5694
    derekbruening committed Aug 25, 2023
    Configuration menu
    Copy the full SHA
    9bb9b4d View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    9861d2c View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    6aaf8a0 View commit details
    Browse the repository at this point in the history

Commits on Aug 30, 2023

  1. Review requests: add core-sharded documentation in multiple places in…

    … the docs; clarify next_record time of 0; fix typo; augment comments
    derekbruening committed Aug 30, 2023
    Configuration menu
    Copy the full SHA
    1c7d00c View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    a126979 View commit details
    Browse the repository at this point in the history

Commits on Aug 31, 2023

  1. Configuration menu
    Copy the full SHA
    692ca92 View commit details
    Browse the repository at this point in the history