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 15, 2016
  1. 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. 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
  3. 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 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 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
  4. timing_sim: Destroy things.

    s-kanev committed Mar 11, 2016
    Now we properly call all destructors and cleanup functions. Most objects
    are managed with unique_ptrs, except the lowest levels (ROBs, buffers, etc).
    We're valgrind-leak-free now (except for a bug in libconfuse).
    
    Fixed one legitimate leak in handshake_container_t::Invalidate().
    
    To track ownership more easily, removed a lot of junk in creating caches and prefetchers.
    Also, removed a lot of strdup()s in compoents, which were just leaks waiting to happen.
    
    Change-Id: I6c65c817411431d19e6cdcf2613b4d7a383508b8
Commits on Mar 11, 2016
  1. Make -ifeellucky default.

    s-kanev committed Mar 11, 2016
    Or pin complains on new kernels.
    
    Change-Id: Idd21baa679d62b2b8549f214b4f6256589011699
  2. Use old libstdc++ ABI (pre gcc 5.2).

    s-kanev committed Mar 11, 2016
    For pin again.
    
    Change-Id: I5f3a63074e9d4f07184ba4c920bd4d02436a1312
  3. Set C++ ABI version to 2.

    s-kanev committed Mar 11, 2016
    Pin is compiled with ABI 2, and g++ 5.0+ defaults to ABI 9.
    We should revert this once a new pin kit comes out.
    
    Change-Id: I5babe7e9313eb13c7bcd0a1e20f7690c7675f274
Commits on Mar 8, 2016
  1. uop_cracker: support FSINCOS.

    s-kanev committed Mar 8, 2016
    Change-Id: Ia85c5509ef1a0b4511ad218fe071cb37b8e4fb71
  2. scripts: Tease out non-spec bmk descriptions.

    s-kanev committed Mar 8, 2016
    Also, update spec scripts for the bazel directory layout.
    
    Change-Id: Ic18000b36eb8405827b81e40d5f6c77221e68d26
Commits on Mar 1, 2016
  1. Fix profiling default params.

    s-kanev committed Mar 1, 2016
    Change-Id: Ib99b38ff01ba506a36b0e2331b3fb0c7bfd8dec3
Commits on Feb 29, 2016
  1. Fix libquantum args

    s-kanev committed Feb 29, 2016
    Change-Id: I963caa008ce6e5ee724cf3e06a20f6f6065afecf