aboutsummaryrefslogtreecommitdiff
path: root/ofproto/ofproto.h
diff options
context:
space:
mode:
authorBen Pfaff <blp@nicira.com>2011-11-28 10:35:15 -0800
committerBen Pfaff <blp@nicira.com>2011-11-28 10:35:15 -0800
commit5fcc0d004ae0aa080deed51c842d074a83ec1f67 (patch)
tree1b3938b503d8f792ee61c1d5a0d3ead30ad0337e /ofproto/ofproto.h
parent9b16c4394b940573d733c47fa7213bbe99a456d9 (diff)
ofproto: Add "fast path".
The key to getting good performance on the netperf CRR test seems to be to handle the first packet of each new flow as quickly as possible. Until now, we've only had one opportunity to do that on each trip through the main poll loop. One way to improve would be to make that poll loop circulate more quickly. My experiments show, however, that even just commenting out the slower parts of the poll loop yield minimal improvement. This commit takes another approach. Instead of making the poll loop overall faster, it invokes the performance-critical parts of it more than once during each poll loop. My measurements show that this commit improves netperf CRR performance by 24% versus the previous commit, for an overall improvement of 87% versus the baseline just before the commit that removed the poll_fd_woke(). With this commit, ovs-benchmark performance has also improved by 13% overall since that baseline.
Diffstat (limited to 'ofproto/ofproto.h')
-rw-r--r--ofproto/ofproto.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/ofproto/ofproto.h b/ofproto/ofproto.h
index fb001061..ccd82025 100644
--- a/ofproto/ofproto.h
+++ b/ofproto/ofproto.h
@@ -144,6 +144,7 @@ void ofproto_destroy(struct ofproto *);
int ofproto_delete(const char *name, const char *type);
int ofproto_run(struct ofproto *);
+int ofproto_run_fast(struct ofproto *);
void ofproto_wait(struct ofproto *);
bool ofproto_is_alive(const struct ofproto *);