- Jan 08, 2015
-
-
Horst Schirmeier authored
Change-Id: I8821b43d7402e19c59810692ed7877bca4cec6f5
-
- Jan 06, 2015
-
-
Horst Schirmeier authored
Change-Id: If76d8e9f7a22523868ea6977db5c0f58a0576224
-
Horst Schirmeier authored
This change fixes occasional redundant newlines in interspersed ASM/highlevel code. Change-Id: Ibe3a93d67bc017ce44c832c4948f3817d8f7e695
-
Horst Schirmeier authored
This one omitted mappings to the first static instruction belonging to a high-level source-code line. Change-Id: I14427021e61f27a8b029fb56fad2ba813652422a
-
Horst Schirmeier authored
Change-Id: Ibc4339cfe31a7d9f2a632a7e08278f8aca554a73
-
Horst Schirmeier authored
This one was responsible for a lot of notices in the terminal. Change-Id: I097705af15d771d0dcb5a217445fec3db89fd132
-
Horst Schirmeier authored
Using "$x .= $y" instead of "$x = $x . $y" is actually an extreme speedup for long $x. I had no idea PHP's "compiler" was that bad and doesn't optimize this. Change-Id: I39aec5f14f45b75a2467d8074b5ea2ffe5d4b856
-
Horst Schirmeier authored
Change-Id: I9bdebb2ad0e4fd6cf0d5e72e2e0520ad3cf6b258
-
Horst Schirmeier authored
Change-Id: I943c931f256986b4c14e00ee278976d369c71765
-
Horst Schirmeier authored
The dbg_methods, dbg_variables and dbg_stacktrace tables are not needed by the current VisualFAIL implementation. Change-Id: I5f685c7d8100fe57fb2a23e1f8161770e64c9464
-
Horst Schirmeier authored
Luckily this didn't work as advertised, as the global connection variable wasn't imported into the functions' scopes. Change-Id: I080a32c6418deb3da3578987ec8a181b047608ad
-
Horst Schirmeier authored
Change-Id: Ib7f07306e297f8891666b54916e8076c0c9261ee
-
Horst Schirmeier authored
Change-Id: Ia773bf516ce1bab4adcd80e31678bda278cd8c11
-
Horst Schirmeier authored
Change-Id: I47725e1e4ca858109ffb0c3f7c599b67a48c0761
-
Horst Schirmeier authored
Change-Id: I5d26ec25d070e98b977ff3130c597a388a4c2c96
-
- Apr 07, 2014
-
-
Richard Hellwig authored
Change-Id: Ia40fe09cdf520926d00b9c39c983c925099501bc
-
- Apr 05, 2014
-
-
Richard Hellwig authored
The FullTraceImporter imports every ip-event into the database. Change-Id: I1c0ce2a0aae72dcd925930861780f2719d37b985
-
- Mar 26, 2014
-
-
Horst Schirmeier authored
This change limits fault injection to general-purpose registers, instead of relying on the LLVM/Fail* bridge to only recognize the status register (EFLAGS on x86) and general-purpose registers. Since this bridge just learned to translate x86's control and segment registers, and these registers need special handling for fault injection (def/use pruning does not work here), only import register accesses from the RT_GP subset. Status register and instruction pointer injection remain functional, and import-trace now should work architecture independently. Change-Id: Id8ad2f0a9dab1861bf16ea9443c3bdfe7213d3fa
-
- Mar 05, 2014
-
-
Michael Lenz authored
This change adds access-size tracking to dump-trace and output thereof in mode "-s". Change-Id: I5647d7b16c89499b7813faaf8c3844f275bc552a
-
- Feb 25, 2014
-
-
Horst Schirmeier authored
Before this change, running prune-trace with, e.g. "prune-trace -d fsp_mibench -v bitmap% --benchmark-exclude clockcnv" resulted in an implied "--benchmark none", rendering --benchmark-exclude ineffective and resulting in nothing being pruned. Now, the "none" default only applies when neither --benchmark nor --benchmark-exclude (analogously for --variant / --variant-exclude) is provided. Change-Id: Ic7c88919d7cfde1261749a745dc6a679472ff348
-
Horst Schirmeier authored
Using Database::insert_multiple() instead of prepared statements speeds up trace import by a factor of 3-4. While being there, we now properly deal with nonexistent extended trace values (i.e., put NULLs into the DB). Side note: The ElfImporter should switch to insert_multiple(), too. Change-Id: I96785e9775e3ef4f242fd50720d5c34adb4e88a1
-
- Feb 19, 2014
-
-
Horst Schirmeier authored
As dereferencing register contents is not always possible, extended trace entries may be empty. Change-Id: I603fcef2eb2b0429a9d6ed0469441bc314e365fd
-
- Feb 17, 2014
-
-
Martin Hoffmann authored
Based on the database layout given by the pruner. Run ./run.py -c <path to mysql.cnf> (Default config ~/.my.cnf) - Checks if objdump table exists - Added view for results per instruction - Added config file support for table details - Overview data loaded at server startup - Result type mapping configurable via config file Based on Flask and MySQLdb Change-Id: Ib49eac8f5c1e0ab23921aedb5bc53c34d0cde14d
-
- Feb 11, 2014
-
-
Horst Schirmeier authored
Memory accesses that don't belong to the preceding IP event in the trace *do* have a use case: a hardware interrupt causes the CPU to push its state onto the (kernel) stack. At the moment we cannot distinguish this case from a malformed trace (as we don't record the occurrence of interrupts), hence this warning needs to be disabled for now. This reverts commit 84edd02b.
-
- Jan 31, 2014
-
-
Philip Taffner authored
cluster runs. If this output file is enabled, all running processes try to write to the same file on the shared filesystem. They block each other which leads to massive I/O wait time and CPU idle time. This change reduces the runtime e.g. from several hours (12+) to few minutes (20). Change-Id: I028628af31c845fc517e5daca5b4f981eade3cf4
-
- Jan 28, 2014
-
-
Richard Hellwig authored
If the --debug option is set, the line number table of the elf binary will be imported into the database. The information will be stored in the "dbg_mapping" table. If the --sources option is set, the source files will be imported into the database. Only the files that were actually used in the elf binary will be imported. Change-Id: I0e9de6b456bc42b329c1700c25e5839d9552cdbb
-
- Jan 22, 2014
-
-
Horst Schirmeier authored
Change-Id: Iae5f1acb653a694622e9ac2bad93efcfca588f3a
-
Michael Lenz authored
In some cases the write-pilot is located at the upper boundary of the experiment and thus is in a race situation with the experiment's end. If the experiment's end occurs first, the campaign ends and complains about missing data, otherwise everything is fine. This patch circumvents this via using "the first" writing pilot; iff the only write is located at the experiment's end, the race will still occur, but cleverly written experiment code can, according to hsc, circumvent it. Change-Id: I6a27a8c4770c04ea8dcaef8aa7bd85d18f43f0b5
-
- Jan 20, 2014
-
-
Horst Schirmeier authored
The Fail* tools expect trace events to be ordered in a specific way: memory-access events are supposed to come *after* the instruction event for the instruction that caused them. Using a different order may cause subtle problems with both fault-space pruning and fast forwarding. This change introduces a warning message when such a malformed trace is detected (i.e., when the instruction pointer of a memory-access event does not match the preceding instruction event). Change-Id: I8ae7420fd8ff26e2574590748bdcc5a63db76490
-
- Dec 04, 2013
-
-
Lars Rademacher authored
As non-gzipped trace files cause import-trace to always import zero events, the input file is now openend as in the dump-trace tool, where opening non-gzipped files obviously works fine. In the medium term we should find a centralized solution for this, instead of re-implementing it all over the place. Change-Id: I75845c03c0bbdc2b6b578b83d492b7dbbb40f051
-
- Oct 24, 2013
-
-
Christian Dietrich authored
The ElfImporter is not a real trace importer, but we locate it into the import-trace utility, since here the infrastructure is already in place to import things related to an elf binary into the database. The ElfImporter calls objdump and dissassembles an elf binary and imports the results into the database. Change-Id: I6e35673c8dbee3b7e8dfc7549d10e5dca9b55935
-
- Oct 21, 2013
-
-
Bjoern Doebel authored
Change-Id: I86b27aae6fa30992b485af79e767ec23949d1e62
-
Bjoern Doebel authored
Change-Id: I7966f97b8c09bbd6510ca6066dd40be398b54de3
-
- Oct 17, 2013
-
-
Horst Schirmeier authored
Richard noticed that instr2 values are off by one when done with the MemoryImporter vs. with his own importer. The core problem is that the dynamic instruction counter in the Importer base class (Importer::copy_to_database, instruction_count_t instr) gets increased *after* reporting an IP event to the importer implementation; this has the side-effect that memory access events have a +1 dynamic instruction count offset with regard to the IP event of the instruction they belong to. Bottom line: IP events and all memory events belonging to that instruction should have the same dynamic instruction number. Christian argued for the numbers starting with 0, which, as a side effect, relativizes the repercussions of the change introduced in the previous commit, as the new "first" event gets the sequence number 0 now. - All experiments and importers only dealing with memory accesses (MemoryImporter) are affected by this change: The dynamic instruction count now starts with 0 instead of 1. Together with the previous commit, the only change is one additional dynamic instruction at position 0. Note that existing trace files do not have this additional instruction, which shifts all trace positions by 1. - All importers that process *only* IP events (InstructionImporter, RandomJumpImporter, RegisterImporter) won't see any difference. Commit 036e340b, though, introduced a +1 offset. - Experiments that use these instruction counts for navigating to the target instruction must be checked to properly deal with the dynamic instruction #0 (no forwarding necessary). All dynamic instruction offsetting should now work uniformly for both memory accesses and all other fault models. To be sure everything works in order, sanity-check the current absolute instruction pointer right before fault injection. Change-Id: I3f509f1b47836fa78fd029a7bb7c36c878912d97
-
- Oct 14, 2013
-
-
Horst Schirmeier authored
Without this change, import-trace won't recognize, e.g., the -e and -t parameters if they come after a parameter that was added by the Importer: import-trace -i objdump --objdump arm-none-eabi-objdump -e B.elf -t C.tc [...] [import-trace 14:37:32] couldn't open trace.pb Change-Id: I9532b01e432055479c79d801b1ca2736a8fd21cc
-
- Sep 19, 2013
-
-
Christian Dietrich authored
Change-Id: Icae29d819e4cbebc26e441a6daf74f9abafdb3ad
-
- Sep 18, 2013
-
-
Horst Schirmeier authored
"std::vector<T>::size_type" is compatible to "unsigned int" on ia32, but not on amd64. Change-Id: I7d0f96780f7c17757dcfd015a1b3f9d5a3947f1a
-
- Sep 12, 2013
-
-
Björn Döbel authored
Change-Id: I3cc42e153070b78bcea7df08ef2eddd1c838776c
-
Björn Döbel authored
Change-Id: Ifa2b38dc0e762ff4f956dc0b98c78b43f0d139cb
-
Horst Schirmeier authored
... I somehow missed that one, sorry. Change-Id: I2daf6f9215f34e39090145ff70e70eaf84d0f286
-