PostgreSQL Source Code git master
Loading...
Searching...
No Matches
instr_time.c File Reference
#include "postgres.h"
#include <math.h>
#include "port/pg_cpu.h"
#include "portability/instr_time.h"
Include dependency graph for instr_time.c:

Go to the source code of this file.

Functions

static void set_ticks_per_ns (void)
 
static void set_ticks_per_ns_system (void)
 
void pg_initialize_timing (void)
 
bool pg_set_timing_clock_source (TimingClockSourceType source)
 

Variables

uint64 ticks_per_ns_scaled = 0
 
uint64 max_ticks_no_overflow = 0
 
bool timing_initialized = false
 
int timing_clock_source = TIMING_CLOCK_SOURCE_AUTO
 
bool timing_tsc_enabled = false
 
int32 timing_tsc_frequency_khz = -1
 

Function Documentation

◆ pg_initialize_timing()

void pg_initialize_timing ( void  )

Definition at line 84 of file instr_time.c.

85{
87 return;
88
90 timing_initialized = true;
91}
static void set_ticks_per_ns_system(void)
Definition instr_time.c:139
bool timing_initialized
Definition instr_time.c:63

References set_ticks_per_ns_system(), and timing_initialized.

Referenced by InitProcessGlobals(), main(), main(), and regression_main().

◆ pg_set_timing_clock_source()

bool pg_set_timing_clock_source ( TimingClockSourceType  source)

Definition at line 94 of file instr_time.c.

95{
97
98#if PG_INSTR_TSC_CLOCK
100
101 switch (source)
102 {
105 break;
107 timing_tsc_enabled = false;
108 break;
110 /* Tell caller TSC is not usable */
112 return false;
113 timing_tsc_enabled = true;
114 break;
115 }
116#endif
117
120 return true;
121}
#define Assert(condition)
Definition c.h:943
int timing_clock_source
Definition instr_time.c:64
static void set_ticks_per_ns(void)
Definition instr_time.c:124
int32 timing_tsc_frequency_khz
Definition instr_time.c:67
bool timing_tsc_enabled
Definition instr_time.c:66
@ TIMING_CLOCK_SOURCE_SYSTEM
Definition instr_time.h:126
@ TIMING_CLOCK_SOURCE_AUTO
Definition instr_time.h:125
static rewind_source * source
Definition pg_rewind.c:89
static int fb(int x)

References Assert, fb(), set_ticks_per_ns(), source, timing_clock_source, TIMING_CLOCK_SOURCE_AUTO, TIMING_CLOCK_SOURCE_SYSTEM, timing_initialized, timing_tsc_enabled, and timing_tsc_frequency_khz.

Referenced by assign_timing_clock_source(), and test_timing().

◆ set_ticks_per_ns()

static void set_ticks_per_ns ( void  )
static

Definition at line 124 of file instr_time.c.

125{
126#if PG_INSTR_TSC_CLOCK
128 {
130 return;
131 }
132#endif
134}

References fb(), set_ticks_per_ns_system(), and timing_tsc_enabled.

Referenced by pg_set_timing_clock_source().

◆ set_ticks_per_ns_system()

static void set_ticks_per_ns_system ( void  )
static

Definition at line 139 of file instr_time.c.

140{
143}
uint64 max_ticks_no_overflow
Definition instr_time.c:62
uint64 ticks_per_ns_scaled
Definition instr_time.c:61

References max_ticks_no_overflow, and ticks_per_ns_scaled.

Referenced by pg_initialize_timing(), and set_ticks_per_ns().

Variable Documentation

◆ max_ticks_no_overflow

uint64 max_ticks_no_overflow = 0

Definition at line 62 of file instr_time.c.

Referenced by pg_ticks_to_ns(), and set_ticks_per_ns_system().

◆ ticks_per_ns_scaled

uint64 ticks_per_ns_scaled = 0

◆ timing_clock_source

int timing_clock_source = TIMING_CLOCK_SOURCE_AUTO

Definition at line 64 of file instr_time.c.

Referenced by pg_set_timing_clock_source(), and show_timing_clock_source().

◆ timing_initialized

◆ timing_tsc_enabled

bool timing_tsc_enabled = false

◆ timing_tsc_frequency_khz

int32 timing_tsc_frequency_khz = -1

Definition at line 67 of file instr_time.c.

Referenced by check_timing_clock_source(), and pg_set_timing_clock_source().