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 82 of file instr_time.c.

83{
85 return;
86
88 timing_initialized = true;
89}
static void set_ticks_per_ns_system(void)
Definition instr_time.c:137
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 92 of file instr_time.c.

93{
95
96#if PG_INSTR_TSC_CLOCK
98
99 switch (source)
100 {
103 break;
105 timing_tsc_enabled = false;
106 break;
108 /* Tell caller TSC is not usable */
110 return false;
111 timing_tsc_enabled = true;
112 break;
113 }
114#endif
115
118 return true;
119}
#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:122
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 122 of file instr_time.c.

123{
124#if PG_INSTR_TSC_CLOCK
126 {
128 return;
129 }
130#endif
132}

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 137 of file instr_time.c.

138{
141}
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().