Changeset View
Changeset View
Standalone View
Standalone View
sys/cam/ata/ata_da.c
Show All 12 Lines | |||||
static int ada_retry_count = ADA_DEFAULT_RETRY; | static int ada_retry_count = ADA_DEFAULT_RETRY; | ||||
static int ada_default_timeout = ADA_DEFAULT_TIMEOUT; | static int ada_default_timeout = ADA_DEFAULT_TIMEOUT; | ||||
static int ada_send_ordered = ADA_DEFAULT_SEND_ORDERED; | static int ada_send_ordered = ADA_DEFAULT_SEND_ORDERED; | ||||
static int ada_spindown_shutdown = ADA_DEFAULT_SPINDOWN_SHUTDOWN; | static int ada_spindown_shutdown = ADA_DEFAULT_SPINDOWN_SHUTDOWN; | ||||
static int ada_spindown_suspend = ADA_DEFAULT_SPINDOWN_SUSPEND; | static int ada_spindown_suspend = ADA_DEFAULT_SPINDOWN_SUSPEND; | ||||
static int ada_read_ahead = ADA_DEFAULT_READ_AHEAD; | static int ada_read_ahead = ADA_DEFAULT_READ_AHEAD; | ||||
static int ada_write_cache = ADA_DEFAULT_WRITE_CACHE; | static int ada_write_cache = ADA_DEFAULT_WRITE_CACHE; | ||||
static SYSCTL_NODE(_kern_cam, OID_AUTO, ada, CTLFLAG_RD, 0, | static SYSCTL_NODE(_kern_cam, OID_AUTO, ada, CTLFLAG_RD | CTLFLAG_MPSAFE, 0, | ||||
"CAM Direct Access Disk driver"); | "CAM Direct Access Disk driver"); | ||||
SYSCTL_INT(_kern_cam_ada, OID_AUTO, retry_count, CTLFLAG_RWTUN, | SYSCTL_INT(_kern_cam_ada, OID_AUTO, retry_count, CTLFLAG_RWTUN, | ||||
&ada_retry_count, 0, "Normal I/O retry count"); | &ada_retry_count, 0, "Normal I/O retry count"); | ||||
SYSCTL_INT(_kern_cam_ada, OID_AUTO, default_timeout, CTLFLAG_RWTUN, | SYSCTL_INT(_kern_cam_ada, OID_AUTO, default_timeout, CTLFLAG_RWTUN, | ||||
&ada_default_timeout, 0, "Normal I/O timeout (in seconds)"); | &ada_default_timeout, 0, "Normal I/O timeout (in seconds)"); | ||||
SYSCTL_INT(_kern_cam_ada, OID_AUTO, send_ordered, CTLFLAG_RWTUN, | SYSCTL_INT(_kern_cam_ada, OID_AUTO, send_ordered, CTLFLAG_RWTUN, | ||||
&ada_send_ordered, 0, "Send Ordered Tags"); | &ada_send_ordered, 0, "Send Ordered Tags"); | ||||
SYSCTL_INT(_kern_cam_ada, OID_AUTO, spindown_shutdown, CTLFLAG_RWTUN, | SYSCTL_INT(_kern_cam_ada, OID_AUTO, spindown_shutdown, CTLFLAG_RWTUN, | ||||
&ada_spindown_shutdown, 0, "Spin down upon shutdown"); | &ada_spindown_shutdown, 0, "Spin down upon shutdown"); | ||||
Show All 24 Lines | |||||
softc = (struct ada_softc *)periph->softc; | softc = (struct ada_softc *)periph->softc; | ||||
snprintf(tmpstr, sizeof(tmpstr), "CAM ADA unit %d",periph->unit_number); | snprintf(tmpstr, sizeof(tmpstr), "CAM ADA unit %d",periph->unit_number); | ||||
snprintf(tmpstr2, sizeof(tmpstr2), "%d", periph->unit_number); | snprintf(tmpstr2, sizeof(tmpstr2), "%d", periph->unit_number); | ||||
sysctl_ctx_init(&softc->sysctl_ctx); | sysctl_ctx_init(&softc->sysctl_ctx); | ||||
softc->flags |= ADA_FLAG_SCTX_INIT; | softc->flags |= ADA_FLAG_SCTX_INIT; | ||||
softc->sysctl_tree = SYSCTL_ADD_NODE_WITH_LABEL(&softc->sysctl_ctx, | softc->sysctl_tree = SYSCTL_ADD_NODE_WITH_LABEL(&softc->sysctl_ctx, | ||||
SYSCTL_STATIC_CHILDREN(_kern_cam_ada), OID_AUTO, tmpstr2, | SYSCTL_STATIC_CHILDREN(_kern_cam_ada), OID_AUTO, tmpstr2, | ||||
CTLFLAG_RD, 0, tmpstr, "device_index"); | CTLFLAG_RD | CTLFLAG_MPSAFE, 0, tmpstr, "device_index"); | ||||
if (softc->sysctl_tree == NULL) { | if (softc->sysctl_tree == NULL) { | ||||
printf("adasysctlinit: unable to allocate sysctl tree\n"); | printf("adasysctlinit: unable to allocate sysctl tree\n"); | ||||
cam_periph_release(periph); | cam_periph_release(periph); | ||||
return; | return; | ||||
} | } | ||||
SYSCTL_ADD_PROC(&softc->sysctl_ctx, SYSCTL_CHILDREN(softc->sysctl_tree), | SYSCTL_ADD_PROC(&softc->sysctl_ctx, SYSCTL_CHILDREN(softc->sysctl_tree), | ||||
OID_AUTO, "delete_method", CTLTYPE_STRING | CTLFLAG_RW, | OID_AUTO, "delete_method", | ||||
CTLTYPE_STRING | CTLFLAG_RW | CTLFLAG_NEEDGIANT, | |||||
softc, 0, adadeletemethodsysctl, "A", | softc, 0, adadeletemethodsysctl, "A", | ||||
"BIO_DELETE execution method"); | "BIO_DELETE execution method"); | ||||
SYSCTL_ADD_UQUAD(&softc->sysctl_ctx, | SYSCTL_ADD_UQUAD(&softc->sysctl_ctx, | ||||
SYSCTL_CHILDREN(softc->sysctl_tree), OID_AUTO, | SYSCTL_CHILDREN(softc->sysctl_tree), OID_AUTO, | ||||
"trim_count", CTLFLAG_RD, &softc->trim_count, | "trim_count", CTLFLAG_RD, &softc->trim_count, | ||||
"Total number of dsm commands sent"); | "Total number of dsm commands sent"); | ||||
SYSCTL_ADD_UQUAD(&softc->sysctl_ctx, | SYSCTL_ADD_UQUAD(&softc->sysctl_ctx, | ||||
SYSCTL_CHILDREN(softc->sysctl_tree), OID_AUTO, | SYSCTL_CHILDREN(softc->sysctl_tree), OID_AUTO, | ||||
Show All 11 Lines | |||||
&softc->write_cache, 0, "Enable disk write cache."); | &softc->write_cache, 0, "Enable disk write cache."); | ||||
SYSCTL_ADD_INT(&softc->sysctl_ctx, SYSCTL_CHILDREN(softc->sysctl_tree), | SYSCTL_ADD_INT(&softc->sysctl_ctx, SYSCTL_CHILDREN(softc->sysctl_tree), | ||||
OID_AUTO, "unmapped_io", CTLFLAG_RD | CTLFLAG_MPSAFE, | OID_AUTO, "unmapped_io", CTLFLAG_RD | CTLFLAG_MPSAFE, | ||||
&softc->unmappedio, 0, "Unmapped I/O leaf"); | &softc->unmappedio, 0, "Unmapped I/O leaf"); | ||||
SYSCTL_ADD_INT(&softc->sysctl_ctx, SYSCTL_CHILDREN(softc->sysctl_tree), | SYSCTL_ADD_INT(&softc->sysctl_ctx, SYSCTL_CHILDREN(softc->sysctl_tree), | ||||
OID_AUTO, "rotating", CTLFLAG_RD | CTLFLAG_MPSAFE, | OID_AUTO, "rotating", CTLFLAG_RD | CTLFLAG_MPSAFE, | ||||
&softc->rotating, 0, "Rotating media"); | &softc->rotating, 0, "Rotating media"); | ||||
SYSCTL_ADD_PROC(&softc->sysctl_ctx, SYSCTL_CHILDREN(softc->sysctl_tree), | SYSCTL_ADD_PROC(&softc->sysctl_ctx, SYSCTL_CHILDREN(softc->sysctl_tree), | ||||
OID_AUTO, "zone_mode", CTLTYPE_STRING | CTLFLAG_RD, | OID_AUTO, "zone_mode", | ||||
CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_NEEDGIANT, | |||||
softc, 0, adazonemodesysctl, "A", | softc, 0, adazonemodesysctl, "A", | ||||
"Zone Mode"); | "Zone Mode"); | ||||
SYSCTL_ADD_PROC(&softc->sysctl_ctx, SYSCTL_CHILDREN(softc->sysctl_tree), | SYSCTL_ADD_PROC(&softc->sysctl_ctx, SYSCTL_CHILDREN(softc->sysctl_tree), | ||||
OID_AUTO, "zone_support", CTLTYPE_STRING | CTLFLAG_RD, | OID_AUTO, "zone_support", | ||||
CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_NEEDGIANT, | |||||
softc, 0, adazonesupsysctl, "A", | softc, 0, adazonesupsysctl, "A", | ||||
"Zone Support"); | "Zone Support"); | ||||
SYSCTL_ADD_UQUAD(&softc->sysctl_ctx, | SYSCTL_ADD_UQUAD(&softc->sysctl_ctx, | ||||
SYSCTL_CHILDREN(softc->sysctl_tree), OID_AUTO, | SYSCTL_CHILDREN(softc->sysctl_tree), OID_AUTO, | ||||
"optimal_seq_zones", CTLFLAG_RD, &softc->optimal_seq_zones, | "optimal_seq_zones", CTLFLAG_RD, &softc->optimal_seq_zones, | ||||
"Optimal Number of Open Sequential Write Preferred Zones"); | "Optimal Number of Open Sequential Write Preferred Zones"); | ||||
SYSCTL_ADD_UQUAD(&softc->sysctl_ctx, | SYSCTL_ADD_UQUAD(&softc->sysctl_ctx, | ||||
SYSCTL_CHILDREN(softc->sysctl_tree), OID_AUTO, | SYSCTL_CHILDREN(softc->sysctl_tree), OID_AUTO, | ||||
Show All 24 Lines | |||||
OID_AUTO, "invalidate", CTLTYPE_U64 | CTLFLAG_RW | CTLFLAG_MPSAFE, | OID_AUTO, "invalidate", CTLTYPE_U64 | CTLFLAG_RW | CTLFLAG_MPSAFE, | ||||
periph, 0, cam_periph_invalidate_sysctl, "I", | periph, 0, cam_periph_invalidate_sysctl, "I", | ||||
"Write 1 to invalidate the drive immediately"); | "Write 1 to invalidate the drive immediately"); | ||||
#endif | #endif | ||||
#ifdef CAM_IO_STATS | #ifdef CAM_IO_STATS | ||||
softc->sysctl_stats_tree = SYSCTL_ADD_NODE(&softc->sysctl_stats_ctx, | softc->sysctl_stats_tree = SYSCTL_ADD_NODE(&softc->sysctl_stats_ctx, | ||||
SYSCTL_CHILDREN(softc->sysctl_tree), OID_AUTO, "stats", | SYSCTL_CHILDREN(softc->sysctl_tree), OID_AUTO, "stats", | ||||
CTLFLAG_RD, 0, "Statistics"); | CTLFLAG_RD | CTLFLAG_MPSAFE, 0, "Statistics"); | ||||
SYSCTL_ADD_INT(&softc->sysctl_stats_ctx, | SYSCTL_ADD_INT(&softc->sysctl_stats_ctx, | ||||
SYSCTL_CHILDREN(softc->sysctl_stats_tree), | SYSCTL_CHILDREN(softc->sysctl_stats_tree), | ||||
OID_AUTO, "timeouts", CTLFLAG_RD | CTLFLAG_MPSAFE, | OID_AUTO, "timeouts", CTLFLAG_RD | CTLFLAG_MPSAFE, | ||||
&softc->timeouts, 0, | &softc->timeouts, 0, | ||||
"Device timeouts reported by the SIM"); | "Device timeouts reported by the SIM"); | ||||
SYSCTL_ADD_INT(&softc->sysctl_stats_ctx, | SYSCTL_ADD_INT(&softc->sysctl_stats_ctx, | ||||
SYSCTL_CHILDREN(softc->sysctl_stats_tree), | SYSCTL_CHILDREN(softc->sysctl_stats_tree), | ||||
OID_AUTO, "errors", CTLFLAG_RD | CTLFLAG_MPSAFE, | OID_AUTO, "errors", CTLFLAG_RD | CTLFLAG_MPSAFE, | ||||
Show All 12 Lines |