aboutsummaryrefslogtreecommitdiffstats
path: root/native/src/sharedres.cpp
diff options
context:
space:
mode:
authorBjoern Brandenburg <bbb@mpi-sws.org>2012-05-16 12:47:27 -0400
committerBjoern Brandenburg <bbb@mpi-sws.org>2012-05-16 12:47:27 -0400
commit817061bc060265e4682f082eac760c390d378210 (patch)
treeb9dc0800d4ad64bb5ad453238cf2b0efccdb7a27 /native/src/sharedres.cpp
parent403e13383f4b6813d27d4ec4067a29a552893de4 (diff)
C++: Break out the C-OMLP code into own file
Part of refactoring sharedres.cpp.
Diffstat (limited to 'native/src/sharedres.cpp')
-rw-r--r--native/src/sharedres.cpp69
1 files changed, 0 insertions, 69 deletions
diff --git a/native/src/sharedres.cpp b/native/src/sharedres.cpp
index 02815dc..976f94e 100644
--- a/native/src/sharedres.cpp
+++ b/native/src/sharedres.cpp
@@ -554,75 +554,6 @@ static Interference bound_blocking(const LimitedContentionSet &lcs, unsigned int
554} 554}
555 555
556 556
557BlockingBounds* clustered_omlp_bounds(const ResourceSharingInfo& info,
558 unsigned int procs_per_cluster,
559 int dedicated_irq)
560{
561 // split everything by partition
562 Clusters clusters;
563
564 split_by_cluster(info, clusters);
565
566 // split each partition by resource
567 ClusterResources resources;
568
569 split_by_resource(clusters, resources);
570
571 // sort each contention set by request length
572 sort_by_request_length(resources);
573
574 // We need for each task the maximum request span. We also need the
575 // maximum direct blocking from remote partitions for each request. We
576 // can determine both in one pass.
577
578 unsigned int i;
579
580 // direct blocking results
581 BlockingBounds* _results = new BlockingBounds(info);
582 BlockingBounds& results = *_results;
583
584 for (i = 0; i < info.get_tasks().size(); i++)
585 {
586 const TaskInfo& tsk = info.get_tasks()[i];
587
588 Interference bterm;
589
590 foreach(tsk.get_requests(), jt)
591 {
592 const RequestBound& req = *jt;
593 Interference blocking;
594
595 blocking = np_fifo_per_resource(
596 tsk, resources, procs_per_cluster,
597 req.get_resource_id(),
598 req.get_num_requests(),
599 dedicated_irq);
600
601 // add in blocking term
602 bterm += blocking;
603
604 // Keep track of maximum request span.
605 // Is this already a single-issue request?
606 if (req.get_num_requests() != 1)
607 blocking = np_fifo_per_resource(
608 tsk, resources, procs_per_cluster,
609 req.get_resource_id(), 1);
610
611 // The span includes our own request.
612 blocking.total_length += req.get_request_length();
613 blocking.count += 1;
614 // Update max. request span.
615 results.raise_request_span(i, blocking);
616 }
617
618 results[i] = bterm;
619 }
620
621 // This is the initial delay due to priority donation.
622 charge_arrival_blocking(info, results);
623
624 return _results;
625}
626 557
627BlockingBounds* clustered_kx_omlp_bounds(const ResourceSharingInfo& info, 558BlockingBounds* clustered_kx_omlp_bounds(const ResourceSharingInfo& info,
628 const ReplicaInfo& replicaInfo, 559 const ReplicaInfo& replicaInfo,