PostgreSQL Source Code git master
|
#include "postgres.h"
#include "miscadmin.h"
#include "storage/aio.h"
#include "storage/aio_internal.h"
#include "storage/fd.h"
#include "utils/wait_event.h"
Go to the source code of this file.
Functions | |
static void | pgaio_io_before_start (PgAioHandle *ioh) |
int | pgaio_io_get_iovec (PgAioHandle *ioh, struct iovec **iov) |
PgAioOp | pgaio_io_get_op (PgAioHandle *ioh) |
PgAioOpData * | pgaio_io_get_op_data (PgAioHandle *ioh) |
void | pgaio_io_start_readv (PgAioHandle *ioh, int fd, int iovcnt, uint64 offset) |
void | pgaio_io_start_writev (PgAioHandle *ioh, int fd, int iovcnt, uint64 offset) |
void | pgaio_io_perform_synchronously (PgAioHandle *ioh) |
const char * | pgaio_io_get_op_name (PgAioHandle *ioh) |
bool | pgaio_io_uses_fd (PgAioHandle *ioh, int fd) |
int | pgaio_io_get_iovec_length (PgAioHandle *ioh, struct iovec **iov) |
|
static |
Definition at line 156 of file aio_io.c.
References Assert(), PgAioBackend::handed_out_io, INTERRUPTS_CAN_BE_PROCESSED, PgAioHandle::op, PGAIO_HS_HANDED_OUT, pgaio_io_has_target(), pgaio_my_backend, PGAIO_OP_INVALID, and PgAioHandle::state.
Referenced by pgaio_io_start_readv(), and pgaio_io_start_writev().
int pgaio_io_get_iovec | ( | PgAioHandle * | ioh, |
struct iovec ** | iov | ||
) |
Definition at line 42 of file aio_io.c.
References Assert(), PgAioHandle::iovec_off, PgAioCtl::iovecs, PG_IOV_MAX, pgaio_ctl, PGAIO_HS_HANDED_OUT, and PgAioHandle::state.
Referenced by mdstartreadv().
int pgaio_io_get_iovec_length | ( | PgAioHandle * | ioh, |
struct iovec ** | iov | ||
) |
Definition at line 219 of file aio_io.c.
References Assert(), PgAioOpData::iov_length, PgAioHandle::iovec_off, PgAioCtl::iovecs, PgAioHandle::op, PgAioHandle::op_data, pg_unreachable, pgaio_ctl, PGAIO_HS_DEFINED, PGAIO_OP_READV, PGAIO_OP_WRITEV, PgAioOpData::read, PgAioHandle::state, and PgAioOpData::write.
Referenced by IoWorkerMain().
PgAioOp pgaio_io_get_op | ( | PgAioHandle * | ioh | ) |
Definition at line 52 of file aio_io.c.
References PgAioHandle::op.
Referenced by smgr_aio_reopen().
PgAioOpData * pgaio_io_get_op_data | ( | PgAioHandle * | ioh | ) |
Definition at line 58 of file aio_io.c.
References PgAioHandle::op_data.
Referenced by smgr_aio_reopen().
const char * pgaio_io_get_op_name | ( | PgAioHandle * | ioh | ) |
Definition at line 175 of file aio_io.c.
References Assert(), PgAioHandle::op, PGAIO_OP_COUNT, PGAIO_OP_INVALID, PGAIO_OP_READV, and PGAIO_OP_WRITEV.
Referenced by pg_get_aios().
void pgaio_io_perform_synchronously | ( | PgAioHandle * | ioh | ) |
Definition at line 116 of file aio_io.c.
References elog, END_CRIT_SECTION, ERROR, PgAioOpData::fd, PgAioOpData::iov_length, PgAioHandle::iovec_off, PgAioCtl::iovecs, PgAioOpData::offset, PgAioHandle::op, PgAioHandle::op_data, pg_preadv(), pg_pwritev(), pgaio_ctl, pgaio_io_process_completion(), PGAIO_OP_INVALID, PGAIO_OP_READV, PGAIO_OP_WRITEV, pgstat_report_wait_end(), pgstat_report_wait_start(), PgAioOpData::read, PgAioHandle::result, START_CRIT_SECTION, and PgAioOpData::write.
Referenced by IoWorkerMain(), pgaio_io_stage(), and pgaio_worker_submit_internal().
void pgaio_io_start_readv | ( | PgAioHandle * | ioh, |
int | fd, | ||
int | iovcnt, | ||
uint64 | offset | ||
) |
Definition at line 78 of file aio_io.c.
References PgAioOpData::fd, fd(), PgAioOpData::iov_length, PgAioOpData::offset, PgAioHandle::op_data, pgaio_io_before_start(), pgaio_io_stage(), PGAIO_OP_READV, and PgAioOpData::read.
Referenced by FileStartReadV().
void pgaio_io_start_writev | ( | PgAioHandle * | ioh, |
int | fd, | ||
int | iovcnt, | ||
uint64 | offset | ||
) |
Definition at line 91 of file aio_io.c.
References PgAioOpData::fd, fd(), PgAioOpData::iov_length, PgAioOpData::offset, PgAioHandle::op_data, pgaio_io_before_start(), pgaio_io_stage(), PGAIO_OP_WRITEV, and PgAioOpData::write.
bool pgaio_io_uses_fd | ( | PgAioHandle * | ioh, |
int | fd | ||
) |
Definition at line 197 of file aio_io.c.
References Assert(), PgAioOpData::fd, fd(), PgAioHandle::op, PgAioHandle::op_data, PGAIO_HS_DEFINED, PGAIO_OP_INVALID, PGAIO_OP_READV, PGAIO_OP_WRITEV, PgAioOpData::read, PgAioHandle::state, and PgAioOpData::write.
Referenced by pgaio_closing_fd().