summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAge
* mergedleochanj2020-10-23
|\
| * Transform LITMUS-RT support in libextra to imply case-study modeJoshua Bakita2020-10-22
| | | | | | | | | | | | | | | | | | | | | | Adds <period> and <criticality level> parameters to benchmarks and disables cache flushing when compiled with LITMUS. Also fixes build with LITMUS enabled on yamaha.cs.unc.edu. Also allows output to be disabled, automatically infers _rt_lock_id, and allows for a specific pair ID for paired tasks. (The pair ID is added to all the semaphore and shared memory names, allowing multiple pairs to run in the system at a time.)
| * Add script for computing M_i valuesJoshua Bakita2020-10-22
| | | | | | | | | | | | | | | | Remember, M_i values are the worst-case slowdown of the average- -case execution time. Also factor out functions shared with M_ij computation code to a shared library.
| * Get all the SD-VBS tests running and add a helper script + typo fixJoshua Bakita2020-10-22
| | | | | | | | | | | | | | - Add a run_all_sd-vbs.sh script - Fix a typo in run_all_tacle.sh - Fix an issue with reversed arguments for asynchronous task pairs in run_bench.sh
| * Make SD-VBS compatible with run_bench.sh and cleanupJoshua Bakita2020-10-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | SD-VBS: - Run silently - Fix some whitespace errors - Don't duplicate extra.h - Auto-detect if building with LITMUS-RT - Disable result checking - Add helper symlinks Misc: - Remove unused code from libextra - Set some missing rt_param fields in libextra - Disable CSV info dump from computeSMTslowdown.sh - Widen scope of .gitignore on .txt files - Include list of 2MB DIS pair benchmarks and inputs
| * Squashed commit of the sb-vbs branch.Leo Chan2020-10-22
| | | | | | | | | | | | | | | | | | | | | | Includes the SD-VBS benchmarks modified to: - Use libextra to loop as realtime jobs - Preallocate memory before starting their main computation - Accept input via stdin instead of via argc Does not include the SD-VBS matlab code. Fixes libextra execution in LITMUS^RT.
| * Remove an old and broken scriptJoshua Bakita2020-10-22
| |
| * Point wbinvd submodule to my repository instead of upstreamJoshua Bakita2020-10-22
| |
| * Fix 4 more bugs in TACLeBenchJoshua Bakita2020-10-22
| | | | | | | | | | | | - anagram: Fix two off-by-ones, the heap size, and the result - rijndael_dec: Reset result checksum at job start - huff_enc: Reset mutable global variables at job start
| * Add submodules. Remember to use git clone --recurse-submodules now.Joshua Bakita2020-10-22
| |
| * Add a phenomenal script to distill SMT pair data to Mij and Mi scoresJoshua Bakita2020-10-22
| |
| * Fix Makefiles so that a custom CFLAGS doesn't break the buildJoshua Bakita2020-10-22
| |
| * Add pair benchmarking and isolation specification into run_bench.shJoshua Bakita2020-10-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows `run_bench.sh` to replace all previous general paired benchmarking scripts. See `run_everything.sh` for an example of how to use the new script. This also fixes two critical bugs present in the old scripts: 1. The cpus_list was incorrectly set for resctrl when running synchronous pair timing with L2+L3 isolation (i). Each write to that file replaces the previous contents, and it was previously written once for each core. This prevented the entire 1st core from using any L3 cache. 2. The competing task list was indexed improperly in the asynchronous pair timing script. This caused the competing task to always be identical to the task being profiled. These issues combine to imply that in the rejected RTSS'20 paper: - All Level-C SMT timing data is suspect - Level-A and -B SMT timing data with L2+L3 isolation (i) is wildly optimistic
| * Fix infinite looping with libextraJoshua Bakita2020-10-21
| |
| * Remove duplicate summary script and don't output memory info if non presentJoshua Bakita2020-10-21
| |
| * Unify unpaired timing scripts for DIS, TACLe, and SD-VBSJoshua Bakita2020-10-20
| | | | | | | | | | Now supports specifying an input generation command for each benchmark - see dis/dis2MbInNames.txt for an example.
* | csvleochanj2020-10-22
| |
* | FLUSH_CACHESleochanj2020-10-21
| |
* | Merge branch 'sd-vbs' of ↵leochanj2020-10-21
|\ \ | | | | | | | | | ssh://rtsrv.cs.unc.edu/public/mc2-scripts-and-benchmarks into sd-vbs
| * | debug libextra and remove matlableochanj2020-10-21
| | |
* | | debug libextra and remove matlableochanj2020-10-21
|/ / | | | | | | FLUSH_CACHES
* | Merge branch 'rtas20-wip' into sd-vbsleochanj2020-10-20
|\|
| * Whitespace fixes for TACLeBench and copyright update in extra.hJoshua Bakita2020-10-20
| | | | | | | | | | Also move run_all_dis.sh up a directory in preperation for further changes.
| * Fix the 4 TACLeBench members that would not loop beforeJoshua Bakita2020-10-20
| | | | | | | | | | | | - anagram, audiobeam: Reset heap in _init() function - g723_enc: Don't use static local variables - huff_dec: Reset all global state in _init() function
| * Convert TACLeBench to use new libextra APIJoshua Bakita2020-10-20
| | | | | | | | No other changes.
| * TACLe and DIS benchmark fixesJoshua Bakita2020-10-20
| | | | | | | | | | | | | | | | | | | | - Use consistent approach to prevent computations from being optimized out in the DIS benchmarks - Don't print results in the DIS benchmarks - Fix a memory corruption in TACLe's "epic" benchmark reflect1() - Fix return codes for all benchmarks - Rename run_baseline.sh to run_bench.sh in preperation for this being the main benchmarking script
* | ignore rules changedleochanj1052020-10-20
| | | | | | | | | | | | ignore rules change ignore rules changed
* | global rt-runleochanj1052020-10-20
| |
* | initial sd-vbsleochanj1052020-10-20
|/ | | | | | | | initial sd-vbs add sd-vbs sd-vbs
* Enable internal DIS job looping and port to new extra.h APIJoshua Bakita2020-10-19
| | | | | | | | | | | | Changes to DIS code: - field, pointer, transitive, and update's random initialization steps moved the main job loop (so that they run on fresh state each job). - Moved free() calls outside of the job loop in matrix - Removed loose clock() call in pointer Misc fixes: - Added input file for neighborhood - Log status before, rather than after, printing in gen_input.py
* Unify all the versions of extra.h into a single multipurpose headerJoshua Bakita2020-10-19
| | | | | | | | | | | | | | | | | | | | | | There was previously a huge amount of shared code that had to be copied back and forth. This should reduce the maintenance burden by containing all future changes to a single file. New unified library is fully backwards-compatible but also introduces and the easy-to-use `for_each_job` macro which replaces the specific `for(...) START_LOOP ... STOP_LOOP` format requirement and is generally much harder to abuse. New unified library also automatically cleans up its shared memory and semaphores, so this commit also removes the separate `cleanupSemaphores` binary. I also found a precursor of `extra.h` written by Sims in `litmusStuff.h`. This code is only interesting for historical purposes, so it is also removed in this commit. This commit also adds debug options to all the Makefiles and silences rm's complaints about non-existent files in make clean.
* Rewrite extra.h for task baselines to be easier to useJoshua Bakita2020-10-18
| | | | | New macro `for_each_job` simplifies instrumentation. Backwards-compatible.
* All the TACLeBench runner scripts as used for the (rejected) RTSS'20 submissionJoshua Bakita2020-10-17
| | | | | Everything without isolation: run_tacle_rtss20.sh For isolation you have to run the hodgepodge of scripts as before.
* All the DIS runner scripts as used for the (rejected) RTSS'20 submissionJoshua Bakita2020-10-17
| | | | | | | | | DANGER! There's an inconsistency in the input files used for the all-pairs tests and those used for the baseline tests. Baselines: run_all_dis.sh calls run_dis.sh to do all baselines. All-pairs: Uses old TACLe script (not included here). Cache allocation 2nd-order effects on SMT friendliness: run_pair_convexity.sh
* Fix DIS coding style by running them all through clang-formatJoshua Bakita2020-10-17
| | | | | Also fixes a missing header in DISstressmarkRNG.h and the "all" make target. No functional changes.
* Add updated DIS post-processing scripts from (rejected) RTSS'20 paperJoshua Bakita2020-10-17
| | | | | These are compatible with the outputs of all the DIS stressmarks as instumented with `extra.h`.
* Cleanup `extra.h` for pairs and add option to use that in DIS buildJoshua Bakita2020-10-17
| | | | Also remove some unused code from the cleanupSemaphores utility
* Fix WSS -> argument generation for Matrix and tune othersJoshua Bakita2020-10-17
| | | | Now as used for (rejected) RTSS'20 paper
* DIS fixes used for (rejected) RTSS'20 submissionJoshua Bakita2020-10-17
| | | | | | | | | | | - All: Output times to stderr and nothing to stdout - Field, Update, Pointer: change definition of a job to match other stressmark execution times more closely - Matrix: move all allocations into main() - Update: Use volatile to prevent computations from being optimized out - Transitive: Use volatile to prevent computations from being optimized out - Neighborhood: Use working version of drawLineSegment from original DIS sample code
* Cleanup in extra.h for non-paired benchmarksJoshua Bakita2020-10-17
| | | | | | | | | | | - No parameter or output format changes - Better error messages - Auto-detect core - Fix off-by-one error in job counting - Explicitly invoke the scheduler with sched_yield() between jobs so that there's less work to do when (if) the scheduling timer interrupt comes around. (This has a surprisingly significant impact on timings.)
* Move the DIS benchmarks up a directory and update hardcoded pathsJoshua Bakita2020-10-16
| | | | | Note that this repo does not attempt to keep a copy of the original DIS benchmark distributions. UNC real-time has another repo for that.
* Add initial instrumentation to and fix warnings in DIS stressmarksJoshua Bakita2020-06-11
| | | | | | | | | | | | | Changes: - Backpoint fix to randInt range - Instrument benchmarks with time tracking - assert inputs are correct length to fix compiler warnings Problems: - Timing on a per-loop basis is non representative of real-world workloads, as we clear the cache after every loop. These all need to be re-instrumented to record times for the whole benchmark, rather than per-loop.
* Update gitignore with RTSS'20 additionsJoshua Bakita2020-06-11
|
* Update the timing infrastructure to better handle large sample sizesJoshua Bakita2020-06-11
| | | | | | - Use malloc rather than static allocations - Check that timings array is long enough before inserting each sample - Include clearer error handling
* Clean up update benchmark default input filesJoshua Bakita2020-06-11
|
* Clean up pointer benchmark default input filesJoshua Bakita2020-06-11
|
* Add inital testing infrastructureJoshua Bakita2020-06-11
| | | | Works for three-way WSS/cache size/execution time comparisons
* Add random_walk microbenchmarkJoshua Bakita2020-06-11
| | | | A heavily rewritten version of mc2spin as written by Namhoon.
* Ignore binaries and benchmark outputsHEADmasterJoshua Bakita2020-05-29
|
* Remove changes specific to Joshua's PRPJoshua Bakita2020-05-29
| | | | | | | - Revert type change in Neighborhood microbenchmark - Remove inputs modified to fix in the available memory on the i.MX6DQ PRP test platform - Change default configuration to build without LITMUS/MC^2/MMDC