Extract stats builder utils to separate file.

Signed-off-by: Michal Mielewczyk <michal.mielewczyk@intel.com>
This commit is contained in:
Michal Mielewczyk 2019-09-12 04:41:59 -04:00
parent 29c1c7f9e8
commit 494a1ccc79
2 changed files with 51 additions and 40 deletions

View File

@ -9,46 +9,7 @@
#include "engine/cache_engine.h"
#include "utils/utils_part.h"
#include "utils/utils_cache_line.h"
#define _ocf_stats_zero(stats) \
do { \
if (stats) { \
typeof(*stats) zero = { { 0 } }; \
*stats = zero; \
} \
} while (0)
static uint64_t _fraction(uint64_t numerator, uint64_t denominator)
{
uint64_t result;
if (denominator) {
result = 10000 * numerator / denominator;
} else {
result = 0;
}
return result;
}
static uint64_t _lines4k(uint64_t size,
ocf_cache_line_size_t cache_line_size)
{
long unsigned int result;
result = size * (cache_line_size / 4096);
return result;
}
static uint64_t _bytes4k(uint64_t bytes)
{
return (bytes + 4095UL) >> 12;
}
static void _set(struct ocf_stat *stat, uint64_t value, uint64_t denominator)
{
stat->value = value;
stat->fraction = _fraction(value, denominator);
}
#include "utils/utils_stats.h"
static void _fill_req(struct ocf_stats_requests *req, struct ocf_stats_core *s)
{

50
src/utils/utils_stats.h Normal file
View File

@ -0,0 +1,50 @@
/*
* Copyright(c) 2012-2019 Intel Corporation
* SPDX-License-Identifier: BSD-3-Clause-Clear
*/
#ifndef UTILS_STATS_H_
#define UTILS_STATS_H_
#define _ocf_stats_zero(stats) \
do { \
if (stats) { \
typeof(*stats) zero = { { 0 } }; \
*stats = zero; \
} \
} while (0)
static inline uint64_t _fraction(uint64_t numerator, uint64_t denominator)
{
uint64_t result;
if (denominator) {
result = 10000 * numerator / denominator;
} else {
result = 0;
}
return result;
}
static inline uint64_t _lines4k(uint64_t size,
ocf_cache_line_size_t cache_line_size)
{
long unsigned int result;
result = size * (cache_line_size / 4096);
return result;
}
static inline uint64_t _bytes4k(uint64_t bytes)
{
return (bytes + 4095UL) >> 12;
}
static inline void _set(struct ocf_stat *stat, uint64_t value,
uint64_t denominator)
{
stat->value = value;
stat->fraction = _fraction(value, denominator);
}
#endif