write_stats
write_stats(context, slaves, current_version);
cam_iosched_iop_stats_init(isc, &isc->write_stats);
cam_iosched_iop_stats_fini(&isc->write_stats);
cam_iosched_iop_stats_sysctl_init(isc, &isc->write_stats, "write");
isc->current_read_bias, isc->write_stats.queued,
if (cam_iosched_limiter_iop(&isc->write_stats, bp) != 0) {
isc->write_stats.state_flags |= IOP_RATE_LIMITED;
isc->write_stats.queued--;
isc->write_stats.total++;
isc->write_stats.pending++;
isc->write_stats.state_flags &= ~IOP_RATE_LIMITED;
if (cam_iosched_rate_limited(&isc->write_stats) ||
cam_iosched_limiter_iop(&isc->write_stats, bp) != 0) {
isc->write_stats.state_flags |= IOP_RATE_LIMITED;
isc->write_stats.state_flags &= ~IOP_RATE_LIMITED;
isc->write_stats.queued--;
isc->write_stats.total++;
isc->write_stats.pending++;
isc->write_stats.in++;
isc->write_stats.queued++;
isc->write_stats.in++;
isc->write_stats.queued++;
retval = cam_iosched_limiter_iodone(&isc->write_stats, bp);
isc->write_stats.errs++;
isc->write_stats.out++;
isc->write_stats.pending--;
cam_iosched_update(&isc->write_stats, sim_latency, bp);
db_printf("pending_writes: %d\n", isc->write_stats.pending);
db_printf("min_writes: %d\n", isc->write_stats.min);
db_printf("max_writes: %d\n", isc->write_stats.max);
db_printf("writes: %d\n", isc->write_stats.total);
db_printf("in_writes: %d\n", isc->write_stats.in);
db_printf("out_writes: %d\n", isc->write_stats.out);
db_printf("queued_writes: %d\n", isc->write_stats.queued);
struct iop_stats read_stats, write_stats, trim_stats;
cam_iosched_limiter_tick(&isc->write_stats);
pending = isc->read_stats.pending + isc->write_stats.pending /* + isc->trim_stats.pending */;
!!(isc->write_stats.state_flags & IOP_RATE_LIMITED) * isc->write_stats.queued /* +
if (isc->write_stats.current != isc->write_stats.max)
isc->write_stats.current, isc->write_stats.max);
isc->write_stats.current = isc->write_stats.max;
old = isc->write_stats.current;
isc->write_stats.current = isc->write_stats.current *
isc->write_stats.current = isc->write_stats.current *
if (isc->write_stats.current < isc->write_stats.min)
isc->write_stats.current = isc->write_stats.min;
if (isc->write_stats.current > isc->write_stats.max)
isc->write_stats.current = isc->write_stats.max;
if (old != isc->write_stats.current && iosched_debug)
old, isc->write_stats.current,
cam_iosched_limiter_caniop(&isc->write_stats, wbp) == 0;
printf("can write %d: pending_writes %d max_writes %d\n", can_write, isc->write_stats.pending, isc->write_stats.max);
printf("Queued reads %d writes %d\n", isc->read_stats.queued, isc->write_stats.queued);