diff options
author | Bjoern Brandenburg <bbb@mpi-sws.org> | 2012-10-02 07:45:23 -0400 |
---|---|---|
committer | Bjoern Brandenburg <bbb@mpi-sws.org> | 2013-02-12 06:49:39 -0500 |
commit | 83e450ee441a4edea9b8665756950d647dbddadf (patch) | |
tree | 880d27e87d9e72c81fe3faab5cdbcc87b43e43fb | |
parent | b94ef2b6c5fa861b2defaab8cafb85df6053a1ca (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.cpp | 7 |
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; |