From 83e450ee441a4edea9b8665756950d647dbddadf Mon Sep 17 00:00:00 2001 From: Bjoern Brandenburg Date: Tue, 2 Oct 2012 13:45:23 +0200 Subject: 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. --- native/src/blocking/mpcp.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'native/src/blocking/mpcp.cpp') 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, // last bound interval = blocking; // Bail out if it doesn't converge. - if (interval > tsk->get_response()) + if (interval > std::max(tsk->get_response(), tsk->get_period())) return UNLIMITED; blocking = mpcp_remote_blocking(res_id, interval, @@ -279,9 +279,8 @@ BlockingBounds* mpcp_bounds(const ResourceSharingInfo& info, remote = mpcp_remote_blocking(&tsk, clusters, responses); // 5) Determine arrival blocking for each task. - if (remote != UNLIMITED) - local = mpcp_arrival_blocking(&tsk, clusters[tsk.get_cluster()], - use_virtual_spinning); + local = mpcp_arrival_blocking(&tsk, clusters[tsk.get_cluster()], + use_virtual_spinning); // 6) Sum up blocking: remote blocking + arrival blocking. results[i].total_length = remote + local; -- cgit v1.2.2