Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions
elevator.c File Reference
#include <linux/kernel.h>
#include <linux/fs.h>
#include <linux/blkdev.h>
#include <linux/elevator.h>
#include <linux/bio.h>
#include <linux/module.h>
#include <linux/slab.h>
#include <linux/init.h>
#include <linux/compiler.h>
#include <linux/blktrace_api.h>
#include <linux/hash.h>
#include <linux/uaccess.h>
#include <trace/events/block.h>
#include "blk.h"
#include "blk-cgroup.h"

Go to the source code of this file.

Macros

#define ELV_HASH_BLOCK(sec)   ((sec) >> 3)
 
#define ELV_HASH_FN(sec)   (hash_long(ELV_HASH_BLOCK((sec)), elv_hash_shift))
 
#define ELV_HASH_ENTRIES   (1 << elv_hash_shift)
 
#define rq_hash_key(rq)   (blk_rq_pos(rq) + blk_rq_sectors(rq))
 
#define to_elv(atr)   container_of((atr), struct elv_fs_entry, attr)
 

Functions

bool elv_rq_merge_ok (struct request *rq, struct bio *bio)
 
 EXPORT_SYMBOL (elv_rq_merge_ok)
 
 __setup ("elevator=", elevator_setup)
 
int elevator_init (struct request_queue *q, char *name)
 
 EXPORT_SYMBOL (elevator_init)
 
void elevator_exit (struct elevator_queue *e)
 
 EXPORT_SYMBOL (elevator_exit)
 
void elv_rb_add (struct rb_root *root, struct request *rq)
 
 EXPORT_SYMBOL (elv_rb_add)
 
void elv_rb_del (struct rb_root *root, struct request *rq)
 
 EXPORT_SYMBOL (elv_rb_del)
 
struct requestelv_rb_find (struct rb_root *root, sector_t sector)
 
 EXPORT_SYMBOL (elv_rb_find)
 
void elv_dispatch_sort (struct request_queue *q, struct request *rq)
 
 EXPORT_SYMBOL (elv_dispatch_sort)
 
void elv_dispatch_add_tail (struct request_queue *q, struct request *rq)
 
 EXPORT_SYMBOL (elv_dispatch_add_tail)
 
int elv_merge (struct request_queue *q, struct request **req, struct bio *bio)
 
void elv_merged_request (struct request_queue *q, struct request *rq, int type)
 
void elv_merge_requests (struct request_queue *q, struct request *rq, struct request *next)
 
void elv_bio_merged (struct request_queue *q, struct request *rq, struct bio *bio)
 
void elv_requeue_request (struct request_queue *q, struct request *rq)
 
void elv_drain_elevator (struct request_queue *q)
 
void __elv_add_request (struct request_queue *q, struct request *rq, int where)
 
 EXPORT_SYMBOL (__elv_add_request)
 
void elv_add_request (struct request_queue *q, struct request *rq, int where)
 
 EXPORT_SYMBOL (elv_add_request)
 
struct requestelv_latter_request (struct request_queue *q, struct request *rq)
 
struct requestelv_former_request (struct request_queue *q, struct request *rq)
 
int elv_set_request (struct request_queue *q, struct request *rq, struct bio *bio, gfp_t gfp_mask)
 
void elv_put_request (struct request_queue *q, struct request *rq)
 
int elv_may_queue (struct request_queue *q, int rw)
 
void elv_abort_queue (struct request_queue *q)
 
 EXPORT_SYMBOL (elv_abort_queue)
 
void elv_completed_request (struct request_queue *q, struct request *rq)
 
int elv_register_queue (struct request_queue *q)
 
 EXPORT_SYMBOL (elv_register_queue)
 
void elv_unregister_queue (struct request_queue *q)
 
 EXPORT_SYMBOL (elv_unregister_queue)
 
int elv_register (struct elevator_type *e)
 
 EXPORT_SYMBOL_GPL (elv_register)
 
void elv_unregister (struct elevator_type *e)
 
 EXPORT_SYMBOL_GPL (elv_unregister)
 
int elevator_change (struct request_queue *q, const char *name)
 
 EXPORT_SYMBOL (elevator_change)
 
ssize_t elv_iosched_store (struct request_queue *q, const char *name, size_t count)
 
ssize_t elv_iosched_show (struct request_queue *q, char *name)
 
struct requestelv_rb_former_request (struct request_queue *q, struct request *rq)
 
 EXPORT_SYMBOL (elv_rb_former_request)
 
struct requestelv_rb_latter_request (struct request_queue *q, struct request *rq)
 
 EXPORT_SYMBOL (elv_rb_latter_request)
 

Macro Definition Documentation

#define ELV_HASH_BLOCK (   sec)    ((sec) >> 3)

Definition at line 50 of file elevator.c.

#define ELV_HASH_ENTRIES   (1 << elv_hash_shift)

Definition at line 53 of file elevator.c.

#define ELV_HASH_FN (   sec)    (hash_long(ELV_HASH_BLOCK((sec)), elv_hash_shift))

Definition at line 51 of file elevator.c.

#define rq_hash_key (   rq)    (blk_rq_pos(rq) + blk_rq_sectors(rq))

Definition at line 54 of file elevator.c.

#define to_elv (   atr)    container_of((atr), struct elv_fs_entry, attr)

Definition at line 727 of file elevator.c.

Function Documentation

void __elv_add_request ( struct request_queue q,
struct request rq,
int  where 
)

Definition at line 557 of file elevator.c.

__setup ( )
int elevator_change ( struct request_queue q,
const char name 
)

Definition at line 937 of file elevator.c.

void elevator_exit ( struct elevator_queue *  e)

Definition at line 230 of file elevator.c.

int elevator_init ( struct request_queue q,
char name 
)

Definition at line 180 of file elevator.c.

void elv_abort_queue ( struct request_queue q)

Definition at line 692 of file elevator.c.

void elv_add_request ( struct request_queue q,
struct request rq,
int  where 
)

Definition at line 636 of file elevator.c.

void elv_bio_merged ( struct request_queue q,
struct request rq,
struct bio *  bio 
)

Definition at line 516 of file elevator.c.

void elv_completed_request ( struct request_queue q,
struct request rq 
)

Definition at line 712 of file elevator.c.

void elv_dispatch_add_tail ( struct request_queue q,
struct request rq 
)

Definition at line 391 of file elevator.c.

void elv_dispatch_sort ( struct request_queue q,
struct request rq 
)

Definition at line 346 of file elevator.c.

void elv_drain_elevator ( struct request_queue q)

Definition at line 542 of file elevator.c.

struct request* elv_former_request ( struct request_queue q,
struct request rq 
)
read

Definition at line 655 of file elevator.c.

ssize_t elv_iosched_show ( struct request_queue q,
char name 
)

Definition at line 977 of file elevator.c.

ssize_t elv_iosched_store ( struct request_queue q,
const char name,
size_t  count 
)

Definition at line 961 of file elevator.c.

struct request* elv_latter_request ( struct request_queue q,
struct request rq 
)
read

Definition at line 646 of file elevator.c.

int elv_may_queue ( struct request_queue q,
int  rw 
)

Definition at line 682 of file elevator.c.

int elv_merge ( struct request_queue q,
struct request **  req,
struct bio *  bio 
)

Definition at line 406 of file elevator.c.

void elv_merge_requests ( struct request_queue q,
struct request rq,
struct request next 
)

Definition at line 497 of file elevator.c.

void elv_merged_request ( struct request_queue q,
struct request rq,
int  type 
)

Definition at line 484 of file elevator.c.

void elv_put_request ( struct request_queue q,
struct request rq 
)

Definition at line 674 of file elevator.c.

void elv_rb_add ( struct rb_root root,
struct request rq 
)

Definition at line 292 of file elevator.c.

void elv_rb_del ( struct rb_root root,
struct request rq 
)

Definition at line 313 of file elevator.c.

struct request* elv_rb_find ( struct rb_root root,
sector_t  sector 
)
read

Definition at line 321 of file elevator.c.

struct request* elv_rb_former_request ( struct request_queue q,
struct request rq 
)
read

Definition at line 1002 of file elevator.c.

struct request* elv_rb_latter_request ( struct request_queue q,
struct request rq 
)
read

Definition at line 1014 of file elevator.c.

int elv_register ( struct elevator_type *  e)

Definition at line 808 of file elevator.c.

int elv_register_queue ( struct request_queue q)

Definition at line 774 of file elevator.c.

void elv_requeue_request ( struct request_queue q,
struct request rq 
)

Definition at line 525 of file elevator.c.

bool elv_rq_merge_ok ( struct request rq,
struct bio *  bio 
)

Definition at line 74 of file elevator.c.

int elv_set_request ( struct request_queue q,
struct request rq,
struct bio *  bio,
gfp_t  gfp_mask 
)

Definition at line 664 of file elevator.c.

void elv_unregister ( struct elevator_type *  e)

Definition at line 849 of file elevator.c.

void elv_unregister_queue ( struct request_queue q)

Definition at line 796 of file elevator.c.

EXPORT_SYMBOL ( elv_rq_merge_ok  )
EXPORT_SYMBOL ( elevator_init  )
EXPORT_SYMBOL ( elevator_exit  )
EXPORT_SYMBOL ( elv_rb_add  )
EXPORT_SYMBOL ( elv_rb_del  )
EXPORT_SYMBOL ( elv_rb_find  )
EXPORT_SYMBOL ( elv_dispatch_sort  )
EXPORT_SYMBOL ( elv_dispatch_add_tail  )
EXPORT_SYMBOL ( __elv_add_request  )
EXPORT_SYMBOL ( elv_add_request  )
EXPORT_SYMBOL ( elv_abort_queue  )
EXPORT_SYMBOL ( elv_register_queue  )
EXPORT_SYMBOL ( elv_unregister_queue  )
EXPORT_SYMBOL ( elevator_change  )
EXPORT_SYMBOL ( elv_rb_former_request  )
EXPORT_SYMBOL ( elv_rb_latter_request  )
EXPORT_SYMBOL_GPL ( elv_register  )
EXPORT_SYMBOL_GPL ( elv_unregister  )