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().