From d13103074ab5c7614eeb94f88a61803ed8f3e878 Mon Sep 17 00:00:00 2001 From: Siddhesh Poyarekar Date: Wed, 17 May 2017 13:11:00 +0530 Subject: [PATCH] tunables: Specify a default value for tunables Enhance dl-tunables.list to allow specifying a default value for a tunable that it would be initialized to. * scripts/gen-tunables.awk: Recognize 'default' keyword in dl-tunables.list. * README.tunables: Document it. --- ChangeLog | 6 ++++++ README.tunables | 2 ++ scripts/gen-tunables.awk | 12 ++++++++++-- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7a0a45a845..a4a88e530c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2017-05-17 Siddhesh Poyarekar + + * scripts/gen-tunables.awk: Recognize 'default' keyword in + dl-tunables.list. + * README.tunables: Document it. + 2017-05-15 Adhemerval Zanella * sysdeps/posix/preadv.c: Use sysdeps/posix/preadv_common.c. diff --git a/README.tunables b/README.tunables index aace2fca8f..3f16b5d827 100644 --- a/README.tunables +++ b/README.tunables @@ -56,6 +56,8 @@ The list of allowed attributes are: - maxval: Optional maximum acceptable value. For a string type this is the maximum length of the value. +- default: Specify an optional default value for the tunable. + - env_alias: An alias environment variable - security_level: Specify security level of the tunable. Valid values: diff --git a/scripts/gen-tunables.awk b/scripts/gen-tunables.awk index defb3e7354..b10b00ebd6 100644 --- a/scripts/gen-tunables.awk +++ b/scripts/gen-tunables.awk @@ -113,6 +113,14 @@ $1 == "}" { exit 1 } } + else if (attr == "default") { + if (types[top_ns][ns][tunable] == "STRING") { + default_val[top_ns][ns][tunable] = sprintf(".strval = \"%s\"", val); + } + else { + default_val[top_ns][ns][tunable] = sprintf(".numval = %s", val) + } + } } END { @@ -146,9 +154,9 @@ END { for (n in types[t]) { for (m in types[t][n]) { printf (" {TUNABLE_NAME_S(%s, %s, %s)", t, n, m) - printf (", {TUNABLE_TYPE_%s, %s, %s}, {.numval = 0}, NULL, TUNABLE_SECLEVEL_%s, %s},\n", + printf (", {TUNABLE_TYPE_%s, %s, %s}, {%s}, NULL, TUNABLE_SECLEVEL_%s, %s},\n", types[t][n][m], minvals[t][n][m], maxvals[t][n][m], - security_level[t][n][m], env_alias[t][n][m]); + default_val[t][n][m], security_level[t][n][m], env_alias[t][n][m]); } } } -- 2.43.5