FreeBSD kernel CAM code
|
Go to the source code of this file.
Macros | |
#define | CAM_IOSCHED_TIME_SHIFT 8 |
Typedefs | |
typedef void(* | cam_iosched_latfcn_t) (void *, sbintime_t, struct bio *) |
#define CAM_IOSCHED_TIME_SHIFT 8 |
Definition at line 57 of file cam_iosched.h.
typedef void(* cam_iosched_latfcn_t) (void *, sbintime_t, struct bio *) |
Definition at line 83 of file cam_iosched.h.
int cam_iosched_bio_complete | ( | struct cam_iosched_softc * | isc, |
struct bio * | bp, | ||
union ccb * | done_ccb | ||
) |
Definition at line 1693 of file cam_iosched.c.
References cam_iosched_sbintime_t(), CAM_QOS_VALID, ccb::ccb_h, iosched_debug, ccb_qos_area::periph_data, ccb_hdr::qos, and ccb_hdr::status.
Referenced by adadone(), dadone(), and ndadone().
void cam_iosched_clr_work_flags | ( | struct cam_iosched_softc * | isc, |
uint32_t | flags | ||
) |
Definition at line 1780 of file cam_iosched.c.
References cam_iosched_softc::flags.
Referenced by dastart().
|
inlinestatic |
Definition at line 68 of file cam_iosched.h.
References cam_iosched_now().
Referenced by xpt_done(), and xpt_done_direct().
void cam_iosched_fini | ( | struct cam_iosched_softc * | isc | ) |
Definition at line 1176 of file cam_iosched.c.
References CAM_IOSCHED_FLAG_CALLOUT_ACTIVE, cam_iosched_flush(), and cam_iosched_softc::flags.
Referenced by adacleanup(), dacleanup(), and ndacleanup().
void cam_iosched_finish_trim | ( | struct cam_iosched_softc * | isc | ) |
void cam_iosched_flush | ( | struct cam_iosched_softc * | isc, |
struct devstat * | stp, | ||
int | err | ||
) |
Definition at line 1313 of file cam_iosched.c.
References cam_iosched_softc::bio_queue, and cam_iosched_softc::trim_queue.
Referenced by adaoninvalidate(), cam_iosched_fini(), dadone(), daoninvalidate(), and ndaoninvalidate().
struct bio * cam_iosched_get_trim | ( | struct cam_iosched_softc * | isc | ) |
Definition at line 1440 of file cam_iosched.c.
References cam_iosched_softc::bio_queue, cam_iosched_has_more_trim(), cam_iosched_next_trim(), iosched_debug, and cam_iosched_softc::trim_queue.
Referenced by cam_iosched_next_bio().
int cam_iosched_has_work_flags | ( | struct cam_iosched_softc * | isc, |
uint32_t | flags | ||
) |
Definition at line 1768 of file cam_iosched.c.
References cam_iosched_softc::flags.
Referenced by daasync(), damediapoll(), and dastart().
int cam_iosched_init | ( | struct cam_iosched_softc ** | iscp, |
struct cam_periph * | periph | ||
) |
Definition at line 1136 of file cam_iosched.c.
References CAM_IOSCHED_FLAG_CALLOUT_ACTIVE, cam_periph_mtx(), and iosched_debug.
Referenced by adaregister(), daregister(), and ndaregister().
struct bio * cam_iosched_next_bio | ( | struct cam_iosched_softc * | isc | ) |
Definition at line 1505 of file cam_iosched.c.
References cam_iosched_softc::bio_queue, cam_iosched_get_trim(), and iosched_debug.
Referenced by adastart(), dastart(), and ndastart().
struct bio * cam_iosched_next_trim | ( | struct cam_iosched_softc * | isc | ) |
Definition at line 1414 of file cam_iosched.c.
References cam_iosched_softc::last_trim_tick, cam_iosched_softc::queued_trims, and cam_iosched_softc::trim_queue.
Referenced by ada_dsmtrim_req_create(), cam_iosched_get_trim(), da_delete_trim(), da_delete_unmap(), da_delete_ws(), and ndastart().
|
inlinestatic |
Definition at line 60 of file cam_iosched.h.
References CAM_IOSCHED_TIME_SHIFT.
Referenced by cam_iosched_delta_t(), and xpt_run_devq().
void cam_iosched_put_back_trim | ( | struct cam_iosched_softc * | isc, |
struct bio * | bp | ||
) |
Definition at line 1393 of file cam_iosched.c.
References cam_iosched_softc::last_trim_tick, cam_iosched_softc::queued_trims, and cam_iosched_softc::trim_queue.
Referenced by ada_dsmtrim_req_create(), da_delete_trim(), da_delete_unmap(), and da_delete_ws().
void cam_iosched_queue_work | ( | struct cam_iosched_softc * | isc, |
struct bio * | bp | ||
) |
Definition at line 1574 of file cam_iosched.c.
References cam_iosched_softc::bio_queue, cam_iosched_sort_queue, iosched_debug, cam_iosched_softc::last_trim_tick, cam_iosched_softc::queued_trims, cam_iosched_softc::trim_queue, and cam_iosched_softc::trim_ticks.
Referenced by adastrategy(), cmd6workaround(), dastrategy(), and ndastrategy().
|
inlinestatic |
Definition at line 76 of file cam_iosched.h.
References CAM_IOSCHED_TIME_SHIFT.
Referenced by cam_iosched_bio_complete().
void cam_iosched_schedule | ( | struct cam_iosched_softc * | isc, |
struct cam_periph * | periph | ||
) |
Definition at line 1671 of file cam_iosched.c.
References cam_iosched_has_work(), CAM_PRIORITY_NORMAL, and xpt_schedule().
Referenced by adaschedule(), daschedule(), and ndaschedule().
void cam_iosched_set_latfcn | ( | struct cam_iosched_softc * | isc, |
cam_iosched_latfcn_t | fnp, | ||
void * | argp | ||
) |
Definition at line 1263 of file cam_iosched.c.
void cam_iosched_set_sort_queue | ( | struct cam_iosched_softc * | isc, |
int | val | ||
) |
Definition at line 1761 of file cam_iosched.c.
References cam_iosched_softc::sort_io_queue.
Referenced by adaregister(), dadone_probeata(), dadone_probebdc(), and ndaregister().
void cam_iosched_set_trim_goal | ( | struct cam_iosched_softc * | isc, |
int | goal | ||
) |
Definition at line 1294 of file cam_iosched.c.
References cam_iosched_softc::trim_goal.
void cam_iosched_set_trim_ticks | ( | struct cam_iosched_softc * | isc, |
int | ticks | ||
) |
Definition at line 1301 of file cam_iosched.c.
References cam_iosched_softc::trim_ticks.
void cam_iosched_set_work_flags | ( | struct cam_iosched_softc * | isc, |
uint32_t | flags | ||
) |
Definition at line 1774 of file cam_iosched.c.
References cam_iosched_softc::flags.
Referenced by daasync(), and damediapoll().
void cam_iosched_submit_trim | ( | struct cam_iosched_softc * | isc | ) |
Definition at line 1751 of file cam_iosched.c.
References CAM_IOSCHED_FLAG_TRIM_ACTIVE, and cam_iosched_softc::flags.
Referenced by adastart(), da_delete_trim(), and da_delete_unmap().
void cam_iosched_sysctl_init | ( | struct cam_iosched_softc * | isc, |
struct sysctl_ctx_list * | ctx, | ||
struct sysctl_oid * | node | ||
) |
Definition at line 1201 of file cam_iosched.c.
References cam_iosched_softc::sort_io_queue, and cam_iosched_softc::trim_goal.
Referenced by adasysctlinit(), dasysctlinit(), and ndasysctlinit().
void cam_iosched_trim_done | ( | struct cam_iosched_softc * | isc | ) |
Definition at line 1682 of file cam_iosched.c.
References cam_iosched_softc::flags.
Referenced by adadone(), and dadone().