From 10ac5aac45f5b205c4a5644a5f8a16a12e835f88 Mon Sep 17 00:00:00 2001 From: chb Date: Fri, 22 Jun 2012 12:14:55 +0000 Subject: [PATCH] update checksum-oostubs target + experiment (use ecc for classes w/ inheritance) * TODO: find bug in standAlone variant git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1380 8c4709b5-6ec9-48aa-a5cd-a96041d1645a --- src/experiments/checksum-oostubs/campaign.cc | 3 +- .../checksum-oostubs/ecc_region.hpp | 95 +++++++++++-------- .../checksum-oostubs/experimentInfo.hpp | 15 +-- 3 files changed, 66 insertions(+), 47 deletions(-) diff --git a/src/experiments/checksum-oostubs/campaign.cc b/src/experiments/checksum-oostubs/campaign.cc index b5c85b74..f8ff5e2a 100644 --- a/src/experiments/checksum-oostubs/campaign.cc +++ b/src/experiments/checksum-oostubs/campaign.cc @@ -91,7 +91,7 @@ bool ChecksumOOStuBSCampaign::run() // for every section in the trace between subsequent memory // accesses to that address ... // XXX reorganizing the trace for efficient seeks could speed this up - while(ps.getNext(&ev) && instr < OOSTUBS_NUMINSTR) { //XXX: not sure if (instr < OOSTUBS_NUMINSTR) is really needed --chb + while(ps.getNext(&ev) && instr < OOSTUBS_NUMINSTR) { // instruction events just get counted if (!ev.has_memaddr()) { // new instruction @@ -172,7 +172,6 @@ bool ChecksumOOStuBSCampaign::run() continue; } // as the experiment ends, this byte is a "don't care": - // TODO: still true for checksum-oostubs? compare to weathermonitor! ecs_no_effect.push_back(current_ec); } diff --git a/src/experiments/checksum-oostubs/ecc_region.hpp b/src/experiments/checksum-oostubs/ecc_region.hpp index 912c2b39..9d4aa24a 100644 --- a/src/experiments/checksum-oostubs/ecc_region.hpp +++ b/src/experiments/checksum-oostubs/ecc_region.hpp @@ -1,41 +1,60 @@ // generated from STEP 0 output with region2array.sh static const unsigned memoryMap[][2] = { -{0x107d18, 4}, -{0x107d4c, 4}, -{0x107d50, 4}, -{0x107d5c, 4}, -{0x107d68, 4}, -{0x107d6c, 4}, -{0x107d74, 1}, -{0x107d80, 1}, -{0x107da4, 4}, -{0x107da8, 4}, -{0x107db0, 4}, -{0x107dc4, 1}, -{0x107dd0, 4}, -{0x107de0, 4}, -{0x107dec, 4}, -{0x107df0, 4}, -{0x108f7c, 1}, -{0x108fa0, 4}, -{0x108fa4, 4}, -{0x108fac, 4}, -{0x108fb8, 4}, -{0x108fbc, 4}, -{0x108fcc, 4}, -{0x108fd1, 1}, -{0x108fd8, 4}, -{0x108fdc, 4}, -{0x108fec, 4}, -{0x108ff1, 1}, -{0x108ff8, 4}, -{0x108ffc, 4}, -{0x10900c, 4}, -{0x109011, 1}, -{0x10beb0, 4}, -{0x10beb8, 4}, -{0x10bedc, 4}, -{0x10bee4, 4}, -{0x10bf08, 4}, -{0x10bf10, 4}, +{0x10da6c, 4}, +{0x10da64, 4}, +{0x10da40, 4}, +{0x10da38, 4}, +{0x10da14, 4}, +{0x10da0c, 4}, +{0x10abad, 1}, +{0x10aba8, 4}, +{0x10ab98, 4}, +{0x10ab94, 4}, +{0x10ab8d, 1}, +{0x10ab88, 4}, +{0x10ab78, 4}, +{0x10ab74, 4}, +{0x10ab6d, 1}, +{0x10ab68, 4}, +{0x10ab58, 4}, +{0x10ab54, 4}, +{0x10ab48, 4}, +{0x10ab40, 4}, +{0x10ab3c, 4}, +{0x10ab18, 1}, +{0x10ab08, 4}, +{0x10aafc, 4}, +{0x10aae0, 4}, +{0x10aad4, 4}, +{0x10aac8, 4}, +{0x10aabc, 4}, +{0x109950, 256}, +{0x10993c, 4}, +{0x109938, 4}, +{0x10992c, 4}, +{0x10991c, 4}, +{0x109910, 1}, +{0x1098fc, 4}, +{0x1098f4, 4}, +{0x1098f0, 4}, +{0x1098d8, 4}, +{0x1098cc, 4}, +{0x1098c5, 1}, +{0x1098c1, 1}, +{0x1098c0, 1}, +{0x1098b4, 1}, +{0x1098a8, 1}, +{0x1098a0, 4}, +{0x10989c, 4}, +{0x109890, 4}, +{0x109884, 4}, +{0x109880, 4}, +{0x109858, 4}, +{0x1097ec, 4}, +{0x1097e0, 4}, +{0x108810, 89}, +{0x1087b4, 89}, +{0x108758, 89}, +{0x108748, 13}, +{0x108738, 13}, }; diff --git a/src/experiments/checksum-oostubs/experimentInfo.hpp b/src/experiments/checksum-oostubs/experimentInfo.hpp index e213c4b9..565ffb80 100644 --- a/src/experiments/checksum-oostubs/experimentInfo.hpp +++ b/src/experiments/checksum-oostubs/experimentInfo.hpp @@ -7,29 +7,30 @@ // the task function's entry address: // nm -C ecc.elf|fgrep main -#define OOSTUBS_FUNC_ENTRY 0x00101e88 +#define OOSTUBS_FUNC_ENTRY 0x00101eaa // empty function that is called explicitly when the experiment finished // nm -C ecc.elf|fgrep "finished()" -#define OOSTUBS_FUNC_FINISH 0x00105040 +#define OOSTUBS_FUNC_FINISH 0x00106a70 // function executing HLT with no chance for further progress (after panic()) // nm -C ecc.elf|fgrep cpu_halt #define OOSTUBS_FUNC_CPU_HALT 0x001009f7 -#define OOSTUBS_TEXT_START 0x00100000 //FIXME: use real values provided by linker -#define OOSTUBS_TEXT_END 0x00106bcc //FIXME: use real values provided by linker +// nm -C ecc.elf | fgrep "_TEXT_" +#define OOSTUBS_TEXT_START 0x00100000 +#define OOSTUBS_TEXT_END 0x0010797b // number of instructions the target executes under non-error conditions from ENTRY to DONE: // (result of experiment's step #2) -#define OOSTUBS_NUMINSTR 0x3FB877 +#define OOSTUBS_NUMINSTR 0x4340ED // number of instructions that are executed additionally for error corrections // (this is a rough guess ... TODO) #define OOSTUBS_RECOVERYINSTR 0x2000 // the variable that's increased if ECC corrects an error: // nm -C ecc.elf|fgrep errors_corrected -#define OOSTUBS_ERROR_CORRECTED 0x00109c14 +#define OOSTUBS_ERROR_CORRECTED 0x0010b7b0 // // nm -C ecc.elf|fgrep results -#define OOSTUBS_RESULTS_ADDR 0x00108f90 +#define OOSTUBS_RESULTS_ADDR 0x0010ab2c #define OOSTUBS_RESULTS_BYTES 12 #define OOSTUBS_RESULT0 0xab3566a9 #define OOSTUBS_RESULT1 0x44889112