Permalink
Switch branches/tags
Nothing to show
Commits on Jul 19, 2016
  1. Fixed a couple of vulnerabilities in gzopen().

    s-kanev committed Jul 19, 2016
    A buffer overrun and not escaping the fname parameter.
    While I'm at it, add a gzopen test.
    
    Credit for finding them goes to Nick Finco from Google security.
    
    Change-Id: I33264471b12985d1345dd17948258302af8e81dd
Commits on May 17, 2016
  1. Sample load/store misses by the PC of the instruction.

    xyzsam committed May 14, 2016
    Change the sampling frequency through the cache_miss_sample_parameter
    parameter in the system configuration. Set it to 0 to disable the stat
    altogether. Then set the sample_misses parameter in the configuration of
    the specific cache of interest to true. Only the caches with
    sample_misses true will have the stat appear in the final stat printout.
    
    TESTED=integration
    
    Change-Id: I21b197fbb0d69f14f8f6faff274183812167e9e5
  2. Add a distribution stat regex for integration tests.

    xyzsam committed May 14, 2016
    This lets us test for a specific number of counts in a particular bin
    of a distribution or histogram stat.
    
    Change-Id: I3716a6a0df26c10012c2fde79526dbab5369864f
  3. Added a sparse histogram statistic.

    xyzsam committed May 13, 2016
    Unlike Distribution, the spacings between "bins" in a sparse histogram
    can be arbitrarily sized. This is useful for profiling statistics that
    are keyed by memory addresses (e.g. load misses by PC or by load
    address).
    
    TESTED=unit
    
    Change-Id: I23ab292df1135d3a4f4cc1c13739aa9ace91e712
Commits on May 15, 2016
  1. integration: Modify environment on cluster machines.

    xyzsam committed May 14, 2016
    Change-Id: I64e01e01da067fedd2b01404f2fb779f120890d1
  2. Replace Boost SFINAE with STL.

    xyzsam committed May 13, 2016
    Change-Id: I4b4661679bbdcdea05e2c791cd2aed8363af1443
  3. Switch catch to single-header version.

    s-kanev committed May 15, 2016
    Fixes header inclusion drama on platforms without a bazel sandbox
    (because we included different headers based on #define-s).
    
    Change-Id: I8d39996edfea1d46e9511084ef6021ad2cfcedc1
Commits on May 10, 2016
  1. Add /dev/shm to test sandbox.

    s-kanev committed May 10, 2016
    New bazel didn't mount it by default.
    Ideally, we'd want to use $TEST_TMPDIR the same way we do for bridge_dirs,
    but boost interprocess shm doesn't seem to be relocatable.
    
    Change-Id: Ibb57ba98c6febbc28492c91c644e950504b459d0
Commits on May 5, 2016
  1. scripts: Add dry_run option

    s-kanev committed May 5, 2016
    Change-Id: I0795eb53fe1f04611eba8972e368d73f3d5e0c78
  2. Fix misnamed function.

    xyzsam committed May 5, 2016
    Change-Id: I8a52c703acc5c74a2dd701ee54837f45eec5d059
  3. Add back manual vdso search for platforms with glibc < 2.12.

    s-kanev authored and Svilen Kanev committed Apr 29, 2016
    It will still fail when we attach though.
    
    Change-Id: I75727693e8d4ea8659ba5b9c0c2cf93e1201259c
  4. Add a build rule to weaken erroneous symbols in libpindwarf.a

    s-kanev authored and Svilen Kanev committed Apr 29, 2016
    So that we can link statically with libstdc++.
    
    Change-Id: I3118bb20c4cab9d17fd84ebaea8d8e229298866a
Commits on May 1, 2016
  1. Fix TimeVDSOTest case.

    s-kanev committed Apr 29, 2016
    Some version of unit_test are case-sensitive apparently.
    
    Change-Id: I512657d390cb396dc400f3066698a78fd773338e
  2. Intercept sched_set_affinity and pass on to scheduler.

    s-kanev committed Apr 28, 2016
    Added primitive on-demand migration support to the scheduler.
    TESTED=manual(ub.prod)
    
    Change-Id: I0516ec4e33b4a5cbb924adcdc67a8ca882e492d3
  3. Another build fix after 692ee7.

    s-kanev committed Apr 26, 2016
    No need for all components to depend on ztrace.
    (showed up in dbg builds when feeder depended on cores)
    No need for ztrace to depend on global cores.
    We can move cores to sim, where it belongs.
    
    Change-Id: I4f566bc356646fa1a8e81cdd9f4639119a112a09
  4. scheduler: First cut at blocked threads.

    s-kanev committed Apr 25, 2016
    They still occupy their run queues, but get shuffled if they
    get to the front and haven't been unblocked yet.
    
    Used by proper timing-side pthread_join for now. We'll move over
    all the blocking syscalls to a similar model, as opposed to the current
    one, where we just reshuffle the run queues on a blocking call and hope
    for the best.
    
    TESTED=manual, probably not enough
    
    Change-Id: Ib847e8cf7990d20d0b2494002c33fc40bff695e5
Commits on Apr 28, 2016
  1. Sketch out the core side of atomics.

    s-kanev committed Apr 25, 2016
    Add STQ support for sfences and the store side of mfences.
    Sketch out uop flows for xchg and cmpxchg.
    Also, fixed a glaringly stupid bug on the lfence stall path.
    
    TODO: fix atomic commit to allow 2 mfences per Mop.
    TODO: add the cache side of atomics.
    TODO: fix the lfence additional LDQ scan.
    
    TESTED=manual (cmpxchg performance is still 16 vs 19 cycles)
    
    Change-Id: I3d05e1b2bcb4e65ffc8735370a69dd6acee1b5ea
  2. feeder: Fix some cerr printing

    s-kanev committed Apr 25, 2016
    Change-Id: Iee68c162808b552bec70d2a32ab1064de14b1527
  3. A few small performance tweaks:

    s-kanev committed Apr 25, 2016
    -make sure we ca still build with -DNDEBUG;
    -use the FU_type map in exec::update_occupancy;
    -remove an idiv per cycle per cache in prefetch_controller_update;
    -remove an idiv per cycle per distribution stat by making all our
    distribution bins size 1 (that was the only one we used anyway).
    Also, fix distribution stats, which were computed wrong.
    
    Change-Id: I15877282a992ea6c9f3ebdf4f71a3f51189cb235
  4. Fix catch glob for 692ee7

    s-kanev committed Apr 25, 2016
    Change-Id: Ic2ee76c24fd7c1296221e07a9506509992950beb
Commits on Apr 27, 2016
  1. ignore_api: Support symbol_name+offset address resolution.

    xyzsam committed Apr 26, 2016
    Also, move the parsing of the ignore parameters out of the command line
    and into the core config, just like how the profiling args are
    specified. We need to refactor profiling arguments anyways eventually,
    so this is just a stopgap.
    
    Change-Id: Ic91dd48b91f5f94ef413f46a5e35c0cfd5d05b12
Commits on Apr 24, 2016
  1. Add crosstool flags for FDO builds.

    s-kanev committed Apr 23, 2016
    Copied from the bazel defaults for GCC, which seem to include some
    internal crosstool flags (bazelbuild/bazel#1171).
    
    FDO gives us ~15% speedup. Probably worth switching the CI server to use it.
    
    Change-Id: I655eb29b865f51a2e51838c82f28f78db0cbc1b7
  2. Fix strict header inclusion.

    s-kanev committed Apr 23, 2016
    Took core constants out of sim.h and fixed the dependency cycles inside uarch.
    Now we build ok with strict header checks. Also, about 25% faster.
    I think incremental builds should be completely ok now too.
    
    Change-Id: Ic3257de7509d44e8aed6a23bd08adde5b8f8fbe8
Commits on Apr 14, 2016
  1. Update libconfuse to v3.0.

    xyzsam committed Apr 13, 2016
    Change-Id: I4be400311bc4877eec2105b410cb2e67f268a23c
Commits on Apr 13, 2016
  1. stats: Add copy constructor to Distribution.

    s-kanev committed Apr 12, 2016
    The final stats copy was wrong when flow_histo overflowed.
    
    Change-Id: I1fdd33eb7582a02e8f1726f4c9577531affc99b9
  2. commit-DPM: clean up duplicate recover() code.

    s-kanev committed Apr 4, 2016
    Also clean up squash_uop() a bit and start teasing out various lists.
    
    Change-Id: I429cd7ff003723c79737f8b2105064adbace2beb
Commits on Apr 11, 2016
  1. Remove redundant coreID from trace

    s-kanev committed Apr 4, 2016
    Change-Id: I6704923d3f1306ad35d82b15f581382eb910a703
  2. Fix cache copy-pasta bug from 44b630

    s-kanev committed Mar 27, 2016
    Change-Id: I77cfec794bc5cf26e0f7f4c70722a55bbe5caea0
  3. Add 2-core integration test

    s-kanev committed Mar 27, 2016
    Change-Id: I33c4bd58586b8c77796d2db4a347e0c7e12a113b
  4. buffers: Add very basic producer rate-limiting.

    s-kanev committed Apr 11, 2016
    Only when we run out of space on bridge dirs, so we don't
    have to do potentially expensive locking.
    This keeps bridge space usage in check when (i) performance
    is consumer-limited; (ii) phases are long enough (10M+).
    Which tends to cover SPEC and similar simulations.
    
    Change-Id: I0d6e27fa169f3d114609a0fdedf614b08abd4b3d
  5. Missed run.sh in b213d4

    s-kanev committed Apr 11, 2016
    Change-Id: I07881554b74cb70d39d4e00928210730720e0fe7
Commits on Mar 25, 2016
  1. Simplify statistic expressions.

    s-kanev committed Mar 24, 2016
    Removed ExpressionWrapper, Scalar and lots of unnecessary move casting.
    Now expressions, subexpressions and formulas are self-contained and copiable.
    
    And we can have nested formulas.
    
    Fixed GM IPCs, which are such nested formulas.
    
    TODO: find_XXX_{stat,distribution,formula) should probably do some type checking
    before casting.
    
    TESTED=unit, manual, valgrind
    
    Change-Id: If89fba46a0ae97df55b8f3f68e529a081aa88f2c
Commits on Mar 14, 2016
  1. feeder: Don't track first instrumentation.

    s-kanev committed Mar 14, 2016
    Instead, just use the valid bit in the producer buffer to determine
    if we need a new handshake.
    
    The bug that triggered this looked like so:
    - a start pinpoint at the beginning of a trace;
    - a profiling point near the end of *the same* trace;
    - starting the pinpoint adds instrumentation to *the next trace*!
    - the profiling instrumentation still triggers (that's actually
    correct after the call to StartSimSlice);
    - we're left with an empty invalid handshake because we never did
    the typical instrumentation for the profiling point.
    The culprit is starting from the next trace, which we don't have
    control over. So, we'll just make the buffers aware of the valid
    bit and use that to track if need a new handshake, not explicitly
    ask for one on the first instrumentation call.
    
    Change-Id: I7a591a08ca73a51a490cd8c79d1e53ac8fa4be6c
  2. profiling: Add debug printing.

    s-kanev committed Mar 14, 2016
    Change-Id: I889edc60cedd7682accd48f890eb643287248a86
  3. Fix missing knobs in ztrace.

    s-kanev committed Mar 14, 2016
    Change-Id: I0b8159fbef008ec07a8d4df17321a0b9f291bf88