1
0
mirror of https://github.com/systemd/systemd.git synced 2024-10-27 18:55:40 +03:00

cgroup-util: Move macros to macros and tests to tests

Friends to friends to be consistent with the other macros and make tests
separate from main code.
This commit is contained in:
Michal Koutný 2021-12-10 19:00:45 +01:00
parent d43ffcac84
commit d2bd0bfa36
3 changed files with 23 additions and 19 deletions

View File

@ -127,6 +127,20 @@ static inline bool CGROUP_CPU_SHARES_IS_OK(uint64_t x) {
(x >= CGROUP_CPU_SHARES_MIN && x <= CGROUP_CPU_SHARES_MAX);
}
/* Special values for the special {blkio,io}.bfq.weight attribute */
#define CGROUP_BFQ_WEIGHT_INVALID UINT64_MAX
#define CGROUP_BFQ_WEIGHT_MIN UINT64_C(1)
#define CGROUP_BFQ_WEIGHT_MAX UINT64_C(1000)
#define CGROUP_BFQ_WEIGHT_DEFAULT UINT64_C(100)
/* Convert the normal io.weight value to io.bfq.weight */
static inline uint64_t BFQ_WEIGHT(uint64_t io_weight) {
return
io_weight <= CGROUP_WEIGHT_DEFAULT ?
CGROUP_BFQ_WEIGHT_DEFAULT - (CGROUP_WEIGHT_DEFAULT - io_weight) * (CGROUP_BFQ_WEIGHT_DEFAULT - CGROUP_BFQ_WEIGHT_MIN) / (CGROUP_WEIGHT_DEFAULT - CGROUP_WEIGHT_MIN) :
CGROUP_BFQ_WEIGHT_DEFAULT + (io_weight - CGROUP_WEIGHT_DEFAULT) * (CGROUP_BFQ_WEIGHT_MAX - CGROUP_BFQ_WEIGHT_DEFAULT) / (CGROUP_WEIGHT_MAX - CGROUP_WEIGHT_DEFAULT);
}
/* Special values for the blkio.weight attribute */
#define CGROUP_BLKIO_WEIGHT_INVALID UINT64_MAX
#define CGROUP_BLKIO_WEIGHT_MIN UINT64_C(10)

View File

@ -45,12 +45,6 @@
#define CGROUP_CPU_QUOTA_DEFAULT_PERIOD_USEC ((usec_t) 100 * USEC_PER_MSEC)
/* Special values for the bfq.weight attribute */
#define CGROUP_BFQ_WEIGHT_INVALID UINT64_MAX
#define CGROUP_BFQ_WEIGHT_MIN UINT64_C(1)
#define CGROUP_BFQ_WEIGHT_MAX UINT64_C(1000)
#define CGROUP_BFQ_WEIGHT_DEFAULT UINT64_C(100)
/* Returns the log level to use when cgroup attribute writes fail. When an attribute is missing or we have access
* problems we downgrade to LOG_DEBUG. This is supposed to be nice to container managers and kernels which want to mask
* out specific attributes from us. */
@ -1264,19 +1258,6 @@ static int cgroup_apply_devices(Unit *u) {
return r;
}
/* Convert the normal io.weight value to io.bfq.weight */
#define BFQ_WEIGHT(weight) \
(weight <= CGROUP_WEIGHT_DEFAULT ? \
CGROUP_BFQ_WEIGHT_DEFAULT - (CGROUP_WEIGHT_DEFAULT - weight) * (CGROUP_BFQ_WEIGHT_DEFAULT - CGROUP_BFQ_WEIGHT_MIN) / (CGROUP_WEIGHT_DEFAULT - CGROUP_WEIGHT_MIN) : \
CGROUP_BFQ_WEIGHT_DEFAULT + (weight - CGROUP_WEIGHT_DEFAULT) * (CGROUP_BFQ_WEIGHT_MAX - CGROUP_BFQ_WEIGHT_DEFAULT) / (CGROUP_WEIGHT_MAX - CGROUP_WEIGHT_DEFAULT))
assert_cc(BFQ_WEIGHT(1) == 1);
assert_cc(BFQ_WEIGHT(50) == 50);
assert_cc(BFQ_WEIGHT(100) == 100);
assert_cc(BFQ_WEIGHT(500) == 136);
assert_cc(BFQ_WEIGHT(5000) == 545);
assert_cc(BFQ_WEIGHT(10000) == 1000);
static void set_io_weight(Unit *u, uint64_t weight) {
char buf[STRLEN("default \n")+DECIMAL_STR_MAX(uint64_t)];
uint64_t bfq_weight;

View File

@ -426,4 +426,13 @@ TEST(cg_get_keyed_attribute) {
}
}
TEST(bfq_weight_conversion) {
assert_se(BFQ_WEIGHT(1) == 1);
assert_se(BFQ_WEIGHT(50) == 50);
assert_se(BFQ_WEIGHT(100) == 100);
assert_se(BFQ_WEIGHT(500) == 136);
assert_se(BFQ_WEIGHT(5000) == 545);
assert_se(BFQ_WEIGHT(10000) == 1000);
}
DEFINE_TEST_MAIN(LOG_DEBUG);