diff options
author | Ben Pfaff <blp@nicira.com> | 2013-03-05 15:30:33 -0800 |
---|---|---|
committer | Ben Pfaff <blp@nicira.com> | 2013-03-06 07:38:47 -0800 |
commit | 0ca3235675e2083e3636e8895052f50f17502ac2 (patch) | |
tree | 04c9db3f14b0afe277e5a3731dee2d3a8d33e554 /python | |
parent | 78312dec1883e7d6e47e652633eae04c723ed86e (diff) |
ovsdb-idlc: Make no-op writes to write-only columns cheaper.
For 1000 tunnels with CFM enabled, this reduces CPU use from
about 36% to about 30%.
Bug #15171.
Signed-off-by: Ben Pfaff <blp@nicira.com>
Acked-by: Ethan Jackson <ethan@nicira.com>
Diffstat (limited to 'python')
-rw-r--r-- | python/ovs/db/types.py | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/python/ovs/db/types.py b/python/ovs/db/types.py index bd1c259c..c858471b 100644 --- a/python/ovs/db/types.py +++ b/python/ovs/db/types.py @@ -1,4 +1,4 @@ -# Copyright (c) 2009, 2010, 2011, 2012 Nicira, Inc. +# Copyright (c) 2009, 2010, 2011, 2012, 2013 Nicira, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -353,6 +353,15 @@ class BaseType(object): else: return "%(dst)s = %(src)s;" % args + def assign_c_value_casting_away_const(self, dst, src): + args = {'dst': dst, 'src': src} + if self.ref_table_name: + return ("%(dst)s = %(src)s->header_.uuid;") % args + elif self.type == StringType: + return "%(dst)s = CONST_CAST(char *, %(src)s);" % args + else: + return "%(dst)s = %(src)s;" % args + def initCDefault(self, var, is_optional): if self.ref_table_name: return "%s = NULL;" % var |