PostgreSQL Source Code  git master
injection_stats.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

void pgstat_register_inj (void)
 
void pgstat_create_inj (const char *name)
 
void pgstat_drop_inj (const char *name)
 
void pgstat_report_inj (const char *name)
 
void pgstat_register_inj_fixed (void)
 
void pgstat_report_inj_fixed (uint32 numattach, uint32 numdetach, uint32 numrun, uint32 numcached, uint32 numloaded)
 

Variables

bool inj_stats_enabled
 

Function Documentation

◆ pgstat_create_inj()

void pgstat_create_inj ( const char *  name)

Definition at line 120 of file injection_stats.c.

121 {
122  PgStat_EntryRef *entry_ref;
123  PgStatShared_InjectionPoint *shstatent;
124 
125  /* leave if disabled */
127  return;
128 
130  PGSTAT_INJ_IDX(name), false);
131  shstatent = (PgStatShared_InjectionPoint *) entry_ref->shared_stats;
132 
133  /* initialize shared memory data */
134  memset(&shstatent->stats, 0, sizeof(shstatent->stats));
135  pgstat_unlock_entry(entry_ref);
136 }
bool inj_stats_enabled
static bool inj_stats_loaded
#define PGSTAT_INJ_IDX(name)
#define PGSTAT_KIND_INJECTION
void pgstat_unlock_entry(PgStat_EntryRef *entry_ref)
Definition: pgstat_shmem.c:638
PgStat_EntryRef * pgstat_get_entry_ref_locked(PgStat_Kind kind, Oid dboid, uint64 objid, bool nowait)
Definition: pgstat_shmem.c:647
#define InvalidOid
Definition: postgres_ext.h:36
PgStat_StatInjEntry stats
PgStatShared_Common * shared_stats
const char * name

References inj_stats_enabled, inj_stats_loaded, InvalidOid, name, pgstat_get_entry_ref_locked(), PGSTAT_INJ_IDX, PGSTAT_KIND_INJECTION, pgstat_unlock_entry(), PgStat_EntryRef::shared_stats, and PgStatShared_InjectionPoint::stats.

Referenced by injection_points_attach().

◆ pgstat_drop_inj()

void pgstat_drop_inj ( const char *  name)

Definition at line 142 of file injection_stats.c.

143 {
144  /* leave if disabled */
146  return;
147 
151 }
void pgstat_request_entry_refs_gc(void)
Definition: pgstat_shmem.c:663
bool pgstat_drop_entry(PgStat_Kind kind, Oid dboid, uint64 objid)
Definition: pgstat_shmem.c:909

References inj_stats_enabled, inj_stats_loaded, InvalidOid, name, pgstat_drop_entry(), PGSTAT_INJ_IDX, PGSTAT_KIND_INJECTION, and pgstat_request_entry_refs_gc().

Referenced by injection_points_cleanup(), and injection_points_detach().

◆ pgstat_register_inj()

void pgstat_register_inj ( void  )

Definition at line 108 of file injection_stats.c.

109 {
111 
112  /* mark stats as loaded */
113  inj_stats_loaded = true;
114 }
static const PgStat_KindInfo injection_stats
void pgstat_register_kind(PgStat_Kind kind, const PgStat_KindInfo *kind_info)
Definition: pgstat.c:1458

References inj_stats_loaded, injection_stats, PGSTAT_KIND_INJECTION, and pgstat_register_kind().

Referenced by _PG_init().

◆ pgstat_register_inj_fixed()

void pgstat_register_inj_fixed ( void  )

Definition at line 128 of file injection_stats_fixed.c.

129 {
131 
132  /* mark stats as loaded */
133  inj_fixed_loaded = true;
134 }
static bool inj_fixed_loaded
#define PGSTAT_KIND_INJECTION_FIXED
static const PgStat_KindInfo injection_stats_fixed

References inj_fixed_loaded, injection_stats_fixed, PGSTAT_KIND_INJECTION_FIXED, and pgstat_register_kind().

Referenced by _PG_init().

◆ pgstat_report_inj()

void pgstat_report_inj ( const char *  name)

Definition at line 160 of file injection_stats.c.

161 {
162  PgStat_EntryRef *entry_ref;
163  PgStatShared_InjectionPoint *shstatent;
164  PgStat_StatInjEntry *statent;
165 
166  /* leave if disabled */
168  return;
169 
171  PGSTAT_INJ_IDX(name), false);
172 
173  shstatent = (PgStatShared_InjectionPoint *) entry_ref->shared_stats;
174  statent = &shstatent->stats;
175 
176  /* Update the injection point statistics */
177  statent->numcalls++;
178 
179  pgstat_unlock_entry(entry_ref);
180 }
PgStat_Counter numcalls

References inj_stats_enabled, inj_stats_loaded, InvalidOid, name, PgStat_StatInjEntry::numcalls, pgstat_get_entry_ref_locked(), PGSTAT_INJ_IDX, PGSTAT_KIND_INJECTION, pgstat_unlock_entry(), PgStat_EntryRef::shared_stats, and PgStatShared_InjectionPoint::stats.

Referenced by injection_error(), injection_notice(), and injection_wait().

◆ pgstat_report_inj_fixed()

void pgstat_report_inj_fixed ( uint32  numattach,
uint32  numdetach,
uint32  numrun,
uint32  numcached,
uint32  numloaded 
)

Definition at line 140 of file injection_stats_fixed.c.

145 {
147 
148  /* leave if disabled */
150  return;
151 
153 
155  stats_shmem->stats.numattach += numattach;
156  stats_shmem->stats.numdetach += numdetach;
157  stats_shmem->stats.numrun += numrun;
158  stats_shmem->stats.numcached += numcached;
159  stats_shmem->stats.numloaded += numloaded;
161 }
static void * pgstat_get_custom_shmem_data(PgStat_Kind kind)
static void pgstat_end_changecount_write(uint32 *cc)
static void pgstat_begin_changecount_write(uint32 *cc)

References PgStatShared_InjectionPointFixed::changecount, inj_fixed_loaded, inj_stats_enabled, PgStat_StatInjFixedEntry::numattach, PgStat_StatInjFixedEntry::numcached, PgStat_StatInjFixedEntry::numdetach, PgStat_StatInjFixedEntry::numloaded, PgStat_StatInjFixedEntry::numrun, pgstat_begin_changecount_write(), pgstat_end_changecount_write(), pgstat_get_custom_shmem_data(), PGSTAT_KIND_INJECTION_FIXED, and PgStatShared_InjectionPointFixed::stats.

Referenced by injection_points_attach(), injection_points_cached(), injection_points_detach(), injection_points_load(), and injection_points_run().

Variable Documentation

◆ inj_stats_enabled