PostgreSQL Source Code: src/backend/storage/aio/aio_init.c File Reference (original) (raw)
Go to the source code of this file.
Functions | |
---|---|
static Size | AioCtlShmemSize (void) |
static uint32 | AioProcs (void) |
static Size | AioBackendShmemSize (void) |
static Size | AioHandleShmemSize (void) |
static Size | AioHandleIOVShmemSize (void) |
static Size | AioHandleDataShmemSize (void) |
static int | AioChooseMaxConcurrency (void) |
Size | AioShmemSize (void) |
void | AioShmemInit (void) |
void | pgaio_init_backend (void) |
◆ AioBackendShmemSize()
static Size AioBackendShmemSize ( void ) | static |
---|
◆ AioChooseMaxConcurrency()
static int AioChooseMaxConcurrency ( void ) | static |
---|
◆ AioCtlShmemSize()
static Size AioCtlShmemSize ( void ) | static |
---|
◆ AioHandleDataShmemSize()
static Size AioHandleDataShmemSize ( void ) | static |
---|
◆ AioHandleIOVShmemSize()
static Size AioHandleIOVShmemSize ( void ) | static |
---|
◆ AioHandleShmemSize()
static Size AioHandleShmemSize ( void ) | static |
---|
◆ AioProcs()
static uint32 AioProcs ( void ) | static |
---|
◆ AioShmemInit()
void AioShmemInit | ( | void | ) |
---|
Definition at line 153 of file aio_init.c.
154{
155 bool found;
156 uint32 io_handle_off = 0;
157 uint32 iovec_off = 0;
159
162
163 if (found)
164 goto out;
165
167
170
173
176
181
182 for (int procno = 0; procno < AioProcs(); procno++)
183 {
185
188
192
193
195 {
197
207
209
212 }
213 }
214
215out:
216
219}
const IoMethodOps * pgaio_method_ops
static Size AioHandleIOVShmemSize(void)
static Size AioHandleDataShmemSize(void)
static Size AioHandleShmemSize(void)
static Size AioBackendShmemSize(void)
static Size AioCtlShmemSize(void)
#define PGAIO_SUBMIT_BATCH_SIZE
void ConditionVariableInit(ConditionVariable *cv)
static void dclist_push_tail(dclist_head *head, dlist_node *node)
static void dclist_init(dclist_head *head)
void * ShmemInitStruct(const char *name, Size size, bool *foundPtr)
void(* shmem_init)(bool first_time)
dclist_head in_flight_ios
PgAioHandle * staged_ios[PGAIO_SUBMIT_BATCH_SIZE]
PgAioBackend * backend_state
struct ResourceOwnerData * resowner
PgAioResult distilled_result
PgAioReturn * report_return
References AioBackendShmemSize(), AioCtlShmemSize(), AioHandleDataShmemSize(), AioHandleIOVShmemSize(), AioHandleShmemSize(), AioProcs(), PgAioCtl::backend_state, ConditionVariableInit(), PgAioHandle::cv, dclist_init(), dclist_push_tail(), PgAioHandle::distilled_result, PgAioHandle::flags, PgAioHandle::generation, PgAioCtl::handle_data, PgAioHandle::handle_data_len, i, PgAioBackend::idle_ios, PgAioBackend::in_flight_ios, PgAioCtl::io_handle_count, PgAioBackend::io_handle_off, PgAioCtl::io_handles, io_max_combine_limit, io_max_concurrency, PgAioCtl::iovec_count, PgAioHandle::iovec_off, PgAioCtl::iovecs, PgAioHandle::node, PgAioHandle::num_callbacks, PgAioHandle::owner_procno, pgaio_ctl, pgaio_method_ops, PGAIO_RS_UNKNOWN, PGAIO_SUBMIT_BATCH_SIZE, PgAioHandle::report_return, PgAioHandle::resowner, IoMethodOps::shmem_init, ShmemInitStruct(), PgAioBackend::staged_ios, and PgAioResult::status.
Referenced by CreateOrAttachShmemStructs().
◆ AioShmemSize()
Size AioShmemSize | ( | void | ) |
---|
Definition at line 117 of file aio_init.c.
118{
120
121
122
123
124
125
126
128 {
129 char buf[32];
130
137 }
138
144
145
148
149 return sz;
150}
static int AioChooseMaxConcurrency(void)
void SetConfigOption(const char *name, const char *value, GucContext context, GucSource source)
Size add_size(Size s1, Size s2)
size_t(* shmem_size)(void)
References add_size(), AioBackendShmemSize(), AioChooseMaxConcurrency(), AioCtlShmemSize(), AioHandleDataShmemSize(), AioHandleIOVShmemSize(), AioHandleShmemSize(), buf, io_max_concurrency, pgaio_method_ops, PGC_POSTMASTER, PGC_S_DYNAMIC_DEFAULT, PGC_S_OVERRIDE, SetConfigOption(), IoMethodOps::shmem_size, and snprintf.
Referenced by CalculateShmemSize().
◆ pgaio_init_backend()
void pgaio_init_backend | ( | void | ) |
---|
Definition at line 222 of file aio_init.c.
223{
224
226
228 return;
229
231 elog(ERROR, "aio requires a normal PGPROC");
232
234
237
239}
PgAioBackend * pgaio_my_backend
void pgaio_shutdown(int code, Datum arg)
void before_shmem_exit(pg_on_exit_callback function, Datum arg)
BackendType MyBackendType
void(* init_backend)(void)
References AioProcs(), Assert(), B_IO_WORKER, PgAioCtl::backend_state, before_shmem_exit(), elog, ERROR, IoMethodOps::init_backend, MyBackendType, MyProc, MyProcNumber, pgaio_ctl, pgaio_method_ops, pgaio_my_backend, and pgaio_shutdown().
Referenced by BaseInit().