From 6447c52355bde2412a798a4c333fed944b76a1ec Mon Sep 17 00:00:00 2001 From: hsc Date: Tue, 12 Jun 2012 15:13:24 +0000 Subject: [PATCH] wmoo: properly deal with timeouts (e.g., stuck in HLT) git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1334 8c4709b5-6ec9-48aa-a5cd-a96041d1645a --- src/experiments/weather-monitor/experiment.cc | 8 ++++++++ src/experiments/weather-monitor/weathermonitor.proto | 3 ++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/experiments/weather-monitor/experiment.cc b/src/experiments/weather-monitor/experiment.cc index 4ba30c9e..9c36488e 100644 --- a/src/experiments/weather-monitor/experiment.cc +++ b/src/experiments/weather-monitor/experiment.cc @@ -249,6 +249,10 @@ bool WeatherMonitorExperiment::run() // error detected BPSingleEvent ev_detected(WEATHER_FUNC_VPTR_PANIC); simulator.addEvent(&ev_detected); + // timeout (e.g., stuck in a HLT instruction) + // 10000us = 500000 instructions + TimerEvent ev_timeout(10000, true); + simulator.addEvent(&ev_timeout); #if LOCAL && 0 // XXX debug @@ -277,6 +281,10 @@ bool WeatherMonitorExperiment::run() log << "Result FINISHED (" << dec << count_loop_iter_before << "+" << count_loop_iter_after << ")" << endl; result->set_resulttype(result->FINISHED); + } else if (ev == &ev_timeout) { + log << "Result TIMEOUT (" << dec + << count_loop_iter_before << "+" << count_loop_iter_after << ")" << endl; + result->set_resulttype(result->TIMEOUT); } else if (ev == &ev_below_text || ev == &ev_beyond_text) { log << "Result OUTSIDE" << endl; result->set_resulttype(result->OUTSIDE); diff --git a/src/experiments/weather-monitor/weathermonitor.proto b/src/experiments/weather-monitor/weathermonitor.proto index 1dbd9919..416bd3e1 100644 --- a/src/experiments/weather-monitor/weathermonitor.proto +++ b/src/experiments/weather-monitor/weathermonitor.proto @@ -30,7 +30,8 @@ message WeathermonitorProtoMsg { TRAP = 2; OUTSIDE = 3; DETECTED = 4; - UNKNOWN = 5; + TIMEOUT = 5; + UNKNOWN = 6; } required ResultType resulttype = 2;