aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Horman <horms@verge.net.au>2011-06-30 20:34:15 +0900
committerBen Pfaff <blp@nicira.com>2011-06-30 09:34:21 -0700
commitf11c1ef433cfa363c779176007cbcb9d73b3203a (patch)
tree51b1627dac9726f31ac850ca3ce550b3383829d1
parentdc29f566c17913652984824ce54887fc7903c08d (diff)
ofproto: Simplify bucket finding in facet_max_idle()
The existing dual-loop setup is unnecessary as the outer loop only skips to the first non-zero value and then exits once the inner loop completes. Zero values in the inner loop have no affect on its logic. Signed-off-by: Simon Horman <horms@verge.net.au> [pushed declaration of subtotal out to function scope] Signed-off-by: Ben Pfaff <blp@nicira.com>
-rw-r--r--ofproto/ofproto-dpif.c15
1 files changed, 5 insertions, 10 deletions
diff --git a/ofproto/ofproto-dpif.c b/ofproto/ofproto-dpif.c
index c062ec3d..c3ef8f75 100644
--- a/ofproto/ofproto-dpif.c
+++ b/ofproto/ofproto-dpif.c
@@ -1863,8 +1863,8 @@ facet_max_idle(const struct ofproto_dpif *ofproto)
enum { BUCKET_WIDTH = ROUND_UP(100, TIME_UPDATE_INTERVAL) };
enum { N_BUCKETS = 5000 / BUCKET_WIDTH };
int buckets[N_BUCKETS] = { 0 };
+ int total, subtotal, bucket;
struct facet *facet;
- int total, bucket;
long long int now;
int i;
@@ -1884,15 +1884,10 @@ facet_max_idle(const struct ofproto_dpif *ofproto)
}
/* Find the first bucket whose flows should be expired. */
- for (bucket = 0; bucket < N_BUCKETS; bucket++) {
- if (buckets[bucket]) {
- int subtotal = 0;
- do {
- subtotal += buckets[bucket++];
- } while (bucket < N_BUCKETS && subtotal < MAX(1000, total / 100));
- break;
- }
- }
+ subtotal = bucket = 0;
+ do {
+ subtotal += buckets[bucket++];
+ } while (bucket < N_BUCKETS && subtotal < MAX(1000, total / 100));
if (VLOG_IS_DBG_ENABLED()) {
struct ds s;