mirror of
https://github.com/openvswitch/ovs
synced 2025-10-21 14:49:41 +00:00
timeval: Enable caching the current time even on x86-64.
With CFM enabled on 1000 tunnels, this reduced CPU use from about 30% to about 22%. Bug #15171. Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Ethan Jackson <ethan@nicira.com>
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2008, 2009, 2010, 2011, 2012 Nicira, Inc.
|
||||
* Copyright (c) 2008, 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.
|
||||
@@ -45,18 +45,12 @@ BUILD_ASSERT_DECL(TYPE_IS_SIGNED(time_t));
|
||||
* much time will be wasted in signal handlers and calls to clock_gettime(). */
|
||||
#define TIME_UPDATE_INTERVAL 100
|
||||
|
||||
/* True on systems (particularly x86-64 Linux) where clock_gettime() is
|
||||
* inexpensive. On these systems, we don't bother caching the current time.
|
||||
* Instead, we consult clock_gettime() directly when needed.
|
||||
*
|
||||
* False on systems where clock_gettime() is relatively expensive. On these
|
||||
* systems, we cache the current time and set up a periodic SIGALRM to remind
|
||||
* us to update it.
|
||||
*
|
||||
* Also false on systems (e.g. ESX) that don't support setting up timers based
|
||||
* on a monotonically increasing clock. */
|
||||
/* True on systems that support a monotonic clock. Compared to just getting
|
||||
* the value of a variable, clock_gettime() is somewhat expensive, even on
|
||||
* systems that try hard to optimize it (such as x86-64 Linux), so it's
|
||||
* worthwhile to minimize calls via caching. */
|
||||
#ifndef CACHE_TIME
|
||||
#if defined ESX || (defined __x86_64__ && defined LINUX_DATAPATH)
|
||||
#if defined ESX
|
||||
#define CACHE_TIME 0
|
||||
#else
|
||||
#define CACHE_TIME 1
|
||||
|
Reference in New Issue
Block a user