Data Structures | Defines | Functions | Variables

AIO.cc File Reference

A brief file description. More...

#include "P_AIO.h"
Include dependency graph for AIO.cc:

Go to the source code of this file.

Data Structures

struct  AIOThreadInfo

Defines

#define MAX_DISKS_POSSIBLE   100

Functions

static int aio_stats_cb (const char *, RecDataT data_type, RecData *data, RecRawStatBlock *rsb, int id)
AIOCallbacknew_AIOCallback (void)
void ink_aio_set_callback (Continuation *callback)
void ink_aio_init (ModuleVersion v)
int ink_aio_start ()
static void * aio_thread_main (void *arg)
static AIO_Reqsaio_init_fildes (int fildes, int fromAPI=0)
static void aio_insert (AIOCallback *op, AIO_Reqs *req)
static void aio_move (AIO_Reqs *req)
static void aio_queue_req (AIOCallbackInternal *op, int fromAPI=0)
static int cache_op (AIOCallbackInternal *op)
int ink_aio_read (AIOCallback *op, int fromAPI)
int ink_aio_write (AIOCallback *op, int fromAPI)
bool ink_aio_thread_num_set (int thread_num)

Variables

int ts_config_with_inkdiskio = 0
AIO_Reqsaio_reqs [MAX_DISKS_POSSIBLE]
volatile int num_filedes = 1
static ink_mutex insert_mutex
int thread_is_created = 0
RecInt cache_config_threads_per_disk = 12
RecInt api_config_threads_per_disk = 12
RecRawStatBlockaio_rsb = NULL
Continuationaio_err_callbck = 0
uint64_t aio_num_read = 0
uint64_t aio_bytes_read = 0
uint64_t aio_num_write = 0
uint64_t aio_bytes_written = 0

Detailed Description

A brief file description.

License

Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Definition in file AIO.cc.


Define Documentation

#define MAX_DISKS_POSSIBLE   100

Definition at line 34 of file AIO.cc.

Referenced by ink_aio_init().


Function Documentation

static AIO_Reqs* aio_init_fildes ( int  fildes,
int  fromAPI = 0 
) [static]
static void aio_insert ( AIOCallback op,
AIO_Reqs req 
) [static]

Definition at line 272 of file AIO.cc.

References AIO_LOWEST_PRIORITY, ink_aiocb::aio_reqprio, AIOCallback::aiocb, and AIO_Reqs::queued.

Referenced by aio_move(), and aio_queue_req().

static void aio_move ( AIO_Reqs req  )  [static]

Definition at line 303 of file AIO.cc.

References aio_insert(), AIO_Reqs::aio_temp_list, and ink_atomiclist_popall().

Referenced by aio_queue_req(), and aio_thread_main().

static void aio_queue_req ( AIOCallbackInternal op,
int  fromAPI = 0 
) [static]
static int aio_stats_cb ( const char *  ,
RecDataT  data_type,
RecData data,
RecRawStatBlock rsb,
int  id 
) [static]
void * aio_thread_main ( void *  arg  )  [static]
static int cache_op ( AIOCallbackInternal op  )  [inline, static]
void ink_aio_init ( ModuleVersion  v  ) 
int ink_aio_read ( AIOCallback op,
int  fromAPI 
)
void ink_aio_set_callback ( Continuation callback  ) 

Definition at line 141 of file AIO.cc.

Referenced by CacheProcessor::start_internal().

int ink_aio_start (  ) 

Definition at line 170 of file AIO.cc.

References ET_CALL, eventProcessor, HRTIME_MSECONDS, and EventProcessor::schedule_in().

bool ink_aio_thread_num_set ( int  thread_num  ) 

Definition at line 474 of file AIO.cc.

References api_config_threads_per_disk, and thread_is_created.

Referenced by TSAIOThreadNumSet().

int ink_aio_write ( AIOCallback op,
int  fromAPI 
)
AIOCallback* new_AIOCallback ( void   ) 

Definition at line 135 of file AIO.cc.

Referenced by TSAIORead(), and TSAIOWrite().


Variable Documentation

uint64_t aio_bytes_read = 0

Definition at line 57 of file AIO.cc.

Referenced by aio_stats_cb(), and aio_thread_main().

uint64_t aio_bytes_written = 0

Definition at line 59 of file AIO.cc.

Referenced by aio_stats_cb(), and aio_thread_main().

Definition at line 54 of file AIO.cc.

uint64_t aio_num_read = 0

Definition at line 56 of file AIO.cc.

Referenced by aio_stats_cb(), and aio_thread_main().

uint64_t aio_num_write = 0

Definition at line 58 of file AIO.cc.

Referenced by aio_stats_cb(), and aio_thread_main().

AIO_Reqs* aio_reqs[MAX_DISKS_POSSIBLE]

Definition at line 40 of file AIO.cc.

Definition at line 53 of file AIO.cc.

Definition at line 51 of file AIO.cc.

Referenced by aio_init_fildes(), and ink_aio_thread_num_set().

Definition at line 50 of file AIO.cc.

Referenced by aio_init_fildes(), and ink_aio_init().

Definition at line 46 of file AIO.cc.

Referenced by aio_queue_req(), and ink_aio_init().

volatile int num_filedes = 1

Definition at line 42 of file AIO.cc.

Definition at line 48 of file AIO.cc.

Referenced by aio_init_fildes(), and ink_aio_thread_num_set().

Definition at line 38 of file AIO.cc.