cam iosched: Limit the quanta default to hz if it's below 200

The cam_iosched_ticker() can't be scheduled more than once per tick.
Some limiters depend on quanta matching the number of calls per second
to enforce the proper limits. Limit the quanta to no faster than 1 per
clock tick. This fixes some features when running in VMs where the
default HZ is 100.

PR: 221953
Obtained from: ElectroBSD
Differential Revision: https://reviews.freebsd.org/D12337
Submitted by: Fabian Keil
This commit is contained in:
Warner Losh 2017-09-12 23:46:33 +00:00
parent e460f3adbb
commit d7fa1ab02d
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=323511

View File

@ -1022,7 +1022,7 @@ cam_iosched_init(struct cam_iosched_softc **iscp, struct cam_periph *periph)
bioq_init(&(*iscp)->write_queue);
(*iscp)->read_bias = 100;
(*iscp)->current_read_bias = 100;
(*iscp)->quanta = 200;
(*iscp)->quanta = min(hz, 200);
cam_iosched_iop_stats_init(*iscp, &(*iscp)->read_stats);
cam_iosched_iop_stats_init(*iscp, &(*iscp)->write_stats);
cam_iosched_iop_stats_init(*iscp, &(*iscp)->trim_stats);