Messages in this thread Patch in this message | | | From | Andi Kleen <> | Subject | [PATCH] [4/4] SCHED: Use a lookup array in sd_level_to_string | Date | Wed, 12 Nov 2008 13:45:12 +0100 (CET) |
| |
Generates better/shorter code. Doesn't matter much because it's only a SCHED_DEBUG function.
Signed-off-by: Andi Kleen <ak@linux.intel.com>
--- kernel/sched.c | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-)
Index: linux-2.6.28-rc4-test/kernel/sched.c =================================================================== --- linux-2.6.28-rc4-test.orig/kernel/sched.c 2008-11-12 12:36:23.000000000 +0100 +++ linux-2.6.28-rc4-test/kernel/sched.c 2008-11-12 12:43:58.000000000 +0100 @@ -6629,24 +6629,17 @@ static inline const char *sd_level_to_string(enum sched_domain_level lvl) { - switch (lvl) { - case SD_LV_NONE: - return "NONE"; - case SD_LV_SIBLING: - return "SIBLING"; - case SD_LV_MC: - return "MC"; - case SD_LV_CPU: - return "CPU"; - case SD_LV_NODE: - return "NODE"; - case SD_LV_ALLNODES: - return "ALLNODES"; - case SD_LV_MAX: - return "MAX"; - - } - return "MAX"; + static const char *lva[] = { +#define T(x) [SD_LV_ ## x ] = #T + T(NONE), + T(SIBLING), + T(MC), + T(CPU), + T(NODE), + T(ALLNODES), +#undef T + }; + return (unsigned)lvl < ARRAY_SIZE(lva) ? lva[lvl] : "MAX"; } static int sched_domain_debug_one(struct sched_domain *sd, int cpu, int level,
| |