throttle: use THROTTLE_MAX/ARRAY_SIZE for hard code
The first dimension of both to_check and bucket_types_size/bucket_types_units is used as throttle direction, use THROTTLE_MAX instead of hard coded number. Also use ARRAY_SIZE() to avoid hard coded number for the second dimension. Hanna noticed that the two array should be static. Yes, turn them into static variables. Reviewed-by: Hanna Czenczek <hreitz@redhat.com> Signed-off-by: zhenwei pi <pizhenwei@bytedance.com> Message-Id: <20230728022006.1098509-8-pizhenwei@bytedance.com> Signed-off-by: Hanna Czenczek <hreitz@redhat.com>
This commit is contained in:
parent
e76f201f69
commit
7017313882
|
@ -142,7 +142,8 @@ int64_t throttle_compute_wait(LeakyBucket *bkt)
|
||||||
static int64_t throttle_compute_wait_for(ThrottleState *ts,
|
static int64_t throttle_compute_wait_for(ThrottleState *ts,
|
||||||
ThrottleDirection direction)
|
ThrottleDirection direction)
|
||||||
{
|
{
|
||||||
BucketType to_check[2][4] = { {THROTTLE_BPS_TOTAL,
|
static const BucketType to_check[THROTTLE_MAX][4] = {
|
||||||
|
{THROTTLE_BPS_TOTAL,
|
||||||
THROTTLE_OPS_TOTAL,
|
THROTTLE_OPS_TOTAL,
|
||||||
THROTTLE_BPS_READ,
|
THROTTLE_BPS_READ,
|
||||||
THROTTLE_OPS_READ},
|
THROTTLE_OPS_READ},
|
||||||
|
@ -153,7 +154,7 @@ static int64_t throttle_compute_wait_for(ThrottleState *ts,
|
||||||
int64_t wait, max_wait = 0;
|
int64_t wait, max_wait = 0;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (i = 0; i < 4; i++) {
|
for (i = 0; i < ARRAY_SIZE(to_check[THROTTLE_READ]); i++) {
|
||||||
BucketType index = to_check[direction][i];
|
BucketType index = to_check[direction][i];
|
||||||
wait = throttle_compute_wait(&ts->cfg.buckets[index]);
|
wait = throttle_compute_wait(&ts->cfg.buckets[index]);
|
||||||
if (wait > max_wait) {
|
if (wait > max_wait) {
|
||||||
|
@ -469,11 +470,11 @@ bool throttle_schedule_timer(ThrottleState *ts,
|
||||||
void throttle_account(ThrottleState *ts, ThrottleDirection direction,
|
void throttle_account(ThrottleState *ts, ThrottleDirection direction,
|
||||||
uint64_t size)
|
uint64_t size)
|
||||||
{
|
{
|
||||||
const BucketType bucket_types_size[2][2] = {
|
static const BucketType bucket_types_size[THROTTLE_MAX][2] = {
|
||||||
{ THROTTLE_BPS_TOTAL, THROTTLE_BPS_READ },
|
{ THROTTLE_BPS_TOTAL, THROTTLE_BPS_READ },
|
||||||
{ THROTTLE_BPS_TOTAL, THROTTLE_BPS_WRITE }
|
{ THROTTLE_BPS_TOTAL, THROTTLE_BPS_WRITE }
|
||||||
};
|
};
|
||||||
const BucketType bucket_types_units[2][2] = {
|
static const BucketType bucket_types_units[THROTTLE_MAX][2] = {
|
||||||
{ THROTTLE_OPS_TOTAL, THROTTLE_OPS_READ },
|
{ THROTTLE_OPS_TOTAL, THROTTLE_OPS_READ },
|
||||||
{ THROTTLE_OPS_TOTAL, THROTTLE_OPS_WRITE }
|
{ THROTTLE_OPS_TOTAL, THROTTLE_OPS_WRITE }
|
||||||
};
|
};
|
||||||
|
@ -486,7 +487,7 @@ void throttle_account(ThrottleState *ts, ThrottleDirection direction,
|
||||||
units = (double) size / ts->cfg.op_size;
|
units = (double) size / ts->cfg.op_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < 2; i++) {
|
for (i = 0; i < ARRAY_SIZE(bucket_types_size[THROTTLE_READ]); i++) {
|
||||||
LeakyBucket *bkt;
|
LeakyBucket *bkt;
|
||||||
|
|
||||||
bkt = &ts->cfg.buckets[bucket_types_size[direction][i]];
|
bkt = &ts->cfg.buckets[bucket_types_size[direction][i]];
|
||||||
|
|
Loading…
Reference in New Issue