diff --git a/src/engine/engine_common.c b/src/engine/engine_common.c index 53a5fcc..2a03496 100644 --- a/src/engine/engine_common.c +++ b/src/engine/engine_common.c @@ -469,26 +469,8 @@ void ocf_engine_update_block_stats(struct ocf_request *req) void ocf_engine_update_request_stats(struct ocf_request *req) { - ocf_part_id_t part_id = req->part_id; - struct ocf_counters_req *reqs; - - switch (req->rw) { - case OCF_READ: - reqs = &req->core->counters->part_counters[part_id].read_reqs; - break; - case OCF_WRITE: - reqs = &req->core->counters->part_counters[part_id].write_reqs; - break; - default: - ENV_BUG(); - } - - env_atomic64_inc(&reqs->total); - - if (req->info.hit_no == 0) - env_atomic64_inc(&reqs->full_miss); - else if (req->info.hit_no < req->core_line_count) - env_atomic64_inc(&reqs->partial_miss); + ocf_core_stats_request_update(req->core, req->part_id, req->rw, + req->info.hit_no, req->core_line_count); } void ocf_engine_push_req_back(struct ocf_request *req, bool allow_sync) diff --git a/src/engine/engine_d2c.c b/src/engine/engine_d2c.c index d88a964..ef0c3c8 100644 --- a/src/engine/engine_d2c.c +++ b/src/engine/engine_d2c.c @@ -47,13 +47,8 @@ int ocf_io_d2c(struct ocf_request *req) ocf_engine_update_block_stats(req); - if (req->rw == OCF_READ) { - env_atomic64_inc(&core->counters-> - part_counters[req->part_id].read_reqs.pass_through); - } else { - env_atomic64_inc(&core->counters-> - part_counters[req->part_id].write_reqs.pass_through); - } + ocf_core_stats_request_pt_update(req->core, req->part_id, req->rw, + req->info.hit_no, req->core_line_count); /* Put OCF request - decrease reference counter */ ocf_req_put(req); diff --git a/src/engine/engine_pt.c b/src/engine/engine_pt.c index fd73609..bf18431 100644 --- a/src/engine/engine_pt.c +++ b/src/engine/engine_pt.c @@ -87,8 +87,8 @@ int ocf_read_pt_do(struct ocf_request *req) /* Update statistics */ ocf_engine_update_block_stats(req); - env_atomic64_inc(&req->core->counters-> - part_counters[req->part_id].read_reqs.pass_through); + ocf_core_stats_request_pt_update(req->core, req->part_id, req->rw, + req->info.hit_no, req->core_line_count); /* Put OCF request - decrease reference counter */ ocf_req_put(req); diff --git a/src/engine/engine_wa.c b/src/engine/engine_wa.c index c41fd8b..3c854c2 100644 --- a/src/engine/engine_wa.c +++ b/src/engine/engine_wa.c @@ -76,8 +76,8 @@ int ocf_write_wa(struct ocf_request *req) /* Update statistics */ ocf_engine_update_block_stats(req); - env_atomic64_inc(&req->core->counters-> - part_counters[req->part_id].write_reqs.pass_through); + ocf_core_stats_request_pt_update(req->core, req->part_id, req->rw, + req->info.hit_no, req->core_line_count); } /* Put OCF request - decrease reference counter */ diff --git a/src/engine/engine_wi.c b/src/engine/engine_wi.c index 6e8c285..b0d204c 100644 --- a/src/engine/engine_wi.c +++ b/src/engine/engine_wi.c @@ -112,8 +112,8 @@ static int _ocf_write_wi_do(struct ocf_request *req) /* Update statistics */ ocf_engine_update_block_stats(req); - env_atomic64_inc(&req->core->counters-> - part_counters[req->part_id].write_reqs.pass_through); + ocf_core_stats_request_pt_update(req->core, req->part_id, req->rw, + req->info.hit_no, req->core_line_count); /* Put OCF request - decrease reference counter */ ocf_req_put(req);