diff options
author | Simon Horman <horms@verge.net.au> | 2011-06-30 20:34:15 +0900 |
---|---|---|
committer | Ben Pfaff <blp@nicira.com> | 2011-06-30 09:34:21 -0700 |
commit | f11c1ef433cfa363c779176007cbcb9d73b3203a (patch) | |
tree | 51b1627dac9726f31ac850ca3ce550b3383829d1 | |
parent | dc29f566c17913652984824ce54887fc7903c08d (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.c | 15 |
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; |