aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjoern Brandenburg <bbb@mpi-sws.org>2012-10-02 07:45:23 -0400
committerBjoern Brandenburg <bbb@mpi-sws.org>2013-02-12 06:49:39 -0500
commit83e450ee441a4edea9b8665756950d647dbddadf (patch)
tree880d27e87d9e72c81fe3faab5cdbcc87b43e43fb
parentb94ef2b6c5fa861b2defaab8cafb85df6053a1ca (diff)
MPCP: report local and remote blocking even if >response_time
To make response times monotonically increasing, it is beneficial to have some estimate even if the response_time assumption has been violated.
-rw-r--r--native/src/blocking/mpcp.cpp7
1 files changed, 3 insertions, 4 deletions
diff --git a/native/src/blocking/mpcp.cpp b/native/src/blocking/mpcp.cpp
index 5d2b1ff..d210595 100644
--- a/native/src/blocking/mpcp.cpp
+++ b/native/src/blocking/mpcp.cpp
@@ -181,7 +181,7 @@ static unsigned long mpcp_remote_blocking(unsigned int res_id,
181 // last bound 181 // last bound
182 interval = blocking; 182 interval = blocking;
183 // Bail out if it doesn't converge. 183 // Bail out if it doesn't converge.
184 if (interval > tsk->get_response()) 184 if (interval > std::max(tsk->get_response(), tsk->get_period()))
185 return UNLIMITED; 185 return UNLIMITED;
186 186
187 blocking = mpcp_remote_blocking(res_id, interval, 187 blocking = mpcp_remote_blocking(res_id, interval,
@@ -279,9 +279,8 @@ BlockingBounds* mpcp_bounds(const ResourceSharingInfo& info,
279 remote = mpcp_remote_blocking(&tsk, clusters, responses); 279 remote = mpcp_remote_blocking(&tsk, clusters, responses);
280 280
281 // 5) Determine arrival blocking for each task. 281 // 5) Determine arrival blocking for each task.
282 if (remote != UNLIMITED) 282 local = mpcp_arrival_blocking(&tsk, clusters[tsk.get_cluster()],
283 local = mpcp_arrival_blocking(&tsk, clusters[tsk.get_cluster()], 283 use_virtual_spinning);
284 use_virtual_spinning);
285 284
286 // 6) Sum up blocking: remote blocking + arrival blocking. 285 // 6) Sum up blocking: remote blocking + arrival blocking.
287 results[i].total_length = remote + local; 286 results[i].total_length = remote + local;