Motr  M0

#include <ioq.h>

Collaboration diagram for m0_stob_ioq:
Collaboration graph

Data Fields

bool ioq_use_directio
 
io_context_t ioq_ctx
 
struct m0_atomic64 ioq_avail
 
int ioq_queued
 
struct m0_thread ioq_thread [M0_STOB_IOQ_NR_THREADS]
 
struct m0_mutex ioq_lock
 
struct m0_queue ioq_queue
 
struct m0_semaphore ioq_stop_sem [M0_STOB_IOQ_NR_THREADS]
 
struct m0_timer ioq_stop_timer [M0_STOB_IOQ_NR_THREADS]
 
struct m0_timer_locality ioq_stop_timer_loc [M0_STOB_IOQ_NR_THREADS]
 

Detailed Description

Definition at line 60 of file ioq.h.

Field Documentation

◆ ioq_avail

struct m0_atomic64 ioq_avail

Free slots in the ring buffer.

Definition at line 77 of file ioq.h.

◆ ioq_ctx

io_context_t ioq_ctx

Set up when domain is being shut down. adieu worker threads (ioq_thread()) check this field on each iteration.
Ring buffer shared between adieu and the kernel.

It contains adieu request fragments currently being executed by the kernel. The kernel delivers AIO completion events through this buffer.

Definition at line 75 of file ioq.h.

◆ ioq_lock

struct m0_mutex ioq_lock

Mutex protecting all ioq_ fields (except for the ring buffer that is updated by the kernel asynchronously).

Definition at line 85 of file ioq.h.

◆ ioq_queue

struct m0_queue ioq_queue

Admission queue where adieu request fragments are kept until there is free space in the ring buffer.

Definition at line 88 of file ioq.h.

◆ ioq_queued

int ioq_queued

Used slots in the ring buffer.

Definition at line 79 of file ioq.h.

◆ ioq_stop_sem

struct m0_semaphore ioq_stop_sem[M0_STOB_IOQ_NR_THREADS]

Definition at line 89 of file ioq.h.

◆ ioq_stop_timer

struct m0_timer ioq_stop_timer[M0_STOB_IOQ_NR_THREADS]

Definition at line 90 of file ioq.h.

◆ ioq_stop_timer_loc

struct m0_timer_locality ioq_stop_timer_loc[M0_STOB_IOQ_NR_THREADS]

Definition at line 91 of file ioq.h.

◆ ioq_thread

struct m0_thread ioq_thread[M0_STOB_IOQ_NR_THREADS]

Worker threads.

Definition at line 81 of file ioq.h.

◆ ioq_use_directio

bool ioq_use_directio

Controls whether to use O_DIRECT flag for open(2). Can be set with m0_stob_ioq_directio_setup(). Initial value is set to 'false'.

Definition at line 66 of file ioq.h.


The documentation for this struct was generated from the following file: