aboutsummaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
authorBen Pfaff <blp@nicira.com>2013-03-05 15:30:33 -0800
committerBen Pfaff <blp@nicira.com>2013-03-06 07:38:47 -0800
commit0ca3235675e2083e3636e8895052f50f17502ac2 (patch)
tree04c9db3f14b0afe277e5a3731dee2d3a8d33e554 /python
parent78312dec1883e7d6e47e652633eae04c723ed86e (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.py11
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