Motr  M0
ioq.c File Reference
#include "stob/ioq.h"
#include "lib/trace.h"
#include <limits.h>
#include <sys/uio.h>
#include <libaio.h>
#include "ha/ha.h"
#include "ha/msg.h"
#include "lib/misc.h"
#include "lib/errno.h"
#include "lib/finject.h"
#include "lib/locality.h"
#include "lib/memory.h"
#include "module/instance.h"
#include "reqh/reqh.h"
#include "rpc/session.h"
#include "addb2/addb2.h"
#include "stob/addb2.h"
#include "stob/linux.h"
#include "stob/io.h"
#include "stob/ioq_error.h"
Include dependency graph for ioq.c:

Go to the source code of this file.

Data Structures

struct  ioq_qev
 
struct  stob_linux_io
 

Macros

#define M0_TRACE_SUBSYSTEM   M0_TRACE_SUBSYS_STOB
 

Enumerations

enum  { STOB_IOQ_BSHIFT = 12, STOB_IOQ_BSIZE = 1 << STOB_IOQ_BSHIFT, STOB_IOQ_BMASK = STOB_IOQ_BSIZE - 1 }
 

Functions

static struct ioq_qevioq_queue_get (struct m0_stob_ioq *ioq)
 
static void ioq_queue_put (struct m0_stob_ioq *ioq, struct ioq_qev *qev)
 
static void ioq_queue_submit (struct m0_stob_ioq *ioq)
 
static void ioq_queue_lock (struct m0_stob_ioq *ioq)
 
static void ioq_queue_unlock (struct m0_stob_ioq *ioq)
 
M0_INTERNAL int m0_stob_linux_io_init (struct m0_stob *stob, struct m0_stob_io *io)
 
static void stob_linux_io_release (struct stob_linux_io *lio)
 
static void stob_linux_io_fini (struct m0_stob_io *io)
 
static int stob_linux_io_launch (struct m0_stob_io *io)
 
static void ioq_io_error (struct m0_stob_ioq *ioq, struct ioq_qev *qev)
 
static void ioq_complete (struct m0_stob_ioq *ioq, struct ioq_qev *qev, long res, long res2)
 
static unsigned long stob_ioq_timer_cb (unsigned long data)
 
static int stob_ioq_thread_init (struct m0_stob_ioq *ioq)
 
static void stob_ioq_thread (struct m0_stob_ioq *ioq)
 
M0_INTERNAL int m0_stob_ioq_init (struct m0_stob_ioq *ioq)
 
M0_INTERNAL void m0_stob_ioq_fini (struct m0_stob_ioq *ioq)
 
M0_INTERNAL uint32_t m0_stob_ioq_bshift (struct m0_stob_ioq *ioq)
 
M0_INTERNAL m0_bcount_t m0_stob_ioq_bsize (struct m0_stob_ioq *ioq)
 
M0_INTERNAL m0_bcount_t m0_stob_ioq_bmask (struct m0_stob_ioq *ioq)
 
M0_INTERNAL bool m0_stob_ioq_directio (struct m0_stob_ioq *ioq)
 
M0_INTERNAL void m0_stob_ioq_directio_setup (struct m0_stob_ioq *ioq, bool use_directio)
 

Variables

static const struct m0_stob_io_op stob_linux_io_op
 
int64_t emulate_disk_errors_nr = 0
 
static const struct timespec ioq_timeout_default
 

Macro Definition Documentation

◆ M0_TRACE_SUBSYSTEM

#define M0_TRACE_SUBSYSTEM   M0_TRACE_SUBSYS_STOB

Definition at line 24 of file ioq.c.