From: Andrey Ryabinin <[email protected]> On a machine with a lot of cpus, the sd_alloc_entry() can trigger a high order allocation, which is slow and may fail if memory fragmentation is high. Use kvzalloc to fallback 0-order allocations if high-order isn't available.
Signed-off-by: Andrey Ryabinin <[email protected]> (cherry picked from commit 6a6935993911cfc6798566c8827da0e39a08aff8) VZ 8 rebase part https://jira.sw.ru/browse/PSBM-127837 Signed-off-by: Alexander Mikhalitsyn <[email protected]> --- kernel/sched/debug.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kernel/sched/debug.c b/kernel/sched/debug.c index dd5a97b7c7d8..93d13a33f704 100644 --- a/kernel/sched/debug.c +++ b/kernel/sched/debug.c @@ -210,7 +210,7 @@ static struct ctl_table sd_ctl_root[] = { static struct ctl_table *sd_alloc_ctl_entry(int n) { struct ctl_table *entry = - kcalloc(n, sizeof(struct ctl_table), GFP_KERNEL); + kvzalloc(n * sizeof(struct ctl_table), GFP_KERNEL); return entry; } @@ -232,7 +232,7 @@ static void sd_free_ctl_entry(struct ctl_table **tablep) kfree(entry->procname); } - kfree(*tablep); + kvfree(*tablep); *tablep = NULL; } -- 2.28.0 _______________________________________________ Devel mailing list [email protected] https://lists.openvz.org/mailman/listinfo/devel
