Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/816311/?format=api
{ "id": 816311, "url": "http://patchwork.ozlabs.org/api/patches/816311/?format=api", "web_url": "http://patchwork.ozlabs.org/project/ubuntu-kernel/patch/3c194524dadc3bda6a04632e71f68e0fe6ac72a0.1505920769.git.joseph.salisbury@canonical.com/", "project": { "id": 15, "url": "http://patchwork.ozlabs.org/api/projects/15/?format=api", "name": "Ubuntu Kernel", "link_name": "ubuntu-kernel", "list_id": "kernel-team.lists.ubuntu.com", "list_email": "kernel-team@lists.ubuntu.com", "web_url": null, "scm_url": null, "webscm_url": null, "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<3c194524dadc3bda6a04632e71f68e0fe6ac72a0.1505920769.git.joseph.salisbury@canonical.com>", "list_archive_url": null, "date": "2017-09-20T15:32:23", "name": "[SRU,Zesty,1/1] sched/fair: Prefer sibiling only if local group is under-utilized", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "5ed1fea72e755fd55e719d984dcab4bbec2440ba", "submitter": { "id": 7793, "url": "http://patchwork.ozlabs.org/api/people/7793/?format=api", "name": "Joseph Salisbury", "email": "joseph.salisbury@canonical.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/ubuntu-kernel/patch/3c194524dadc3bda6a04632e71f68e0fe6ac72a0.1505920769.git.joseph.salisbury@canonical.com/mbox/", "series": [ { "id": 4150, "url": "http://patchwork.ozlabs.org/api/series/4150/?format=api", "web_url": "http://patchwork.ozlabs.org/project/ubuntu-kernel/list/?series=4150", "date": "2017-09-20T15:32:22", "name": "[SRU,Zesty,1/1] sched/fair: Prefer sibiling only if local group is under-utilized", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/4150/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/816311/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/816311/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<kernel-team-bounces@lists.ubuntu.com>", "X-Original-To": "incoming@patchwork.ozlabs.org", "Delivered-To": "patchwork-incoming@bilbo.ozlabs.org", "Authentication-Results": "ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=lists.ubuntu.com\n\t(client-ip=91.189.94.19; helo=huckleberry.canonical.com;\n\tenvelope-from=kernel-team-bounces@lists.ubuntu.com;\n\treceiver=<UNKNOWN>)", "Received": [ "from huckleberry.canonical.com (huckleberry.canonical.com\n\t[91.189.94.19])\n\tby ozlabs.org (Postfix) with ESMTP id 3xy3dq5WwTz9t2Q;\n\tThu, 21 Sep 2017 01:32:31 +1000 (AEST)", "from localhost ([127.0.0.1] helo=huckleberry.canonical.com)\n\tby huckleberry.canonical.com with esmtp (Exim 4.86_2)\n\t(envelope-from <kernel-team-bounces@lists.ubuntu.com>)\n\tid 1dugzD-0007bp-4W; Wed, 20 Sep 2017 15:32:27 +0000", "from youngberry.canonical.com ([91.189.89.112])\n\tby huckleberry.canonical.com with esmtps\n\t(TLS1.0:DHE_RSA_AES_128_CBC_SHA1:128)\n\t(Exim 4.86_2) (envelope-from <joseph.salisbury@canonical.com>)\n\tid 1dugzA-0007ag-KW\n\tfor kernel-team@lists.ubuntu.com; Wed, 20 Sep 2017 15:32:24 +0000", "from 1.general.jsalisbury.us.vpn ([10.172.67.212] helo=salisbury)\n\tby youngberry.canonical.com with esmtpsa\n\t(TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.76) (envelope-from <joseph.salisbury@canonical.com>)\n\tid 1dugzA-00037q-7b\n\tfor kernel-team@lists.ubuntu.com; Wed, 20 Sep 2017 15:32:24 +0000", "by salisbury (Postfix, from userid 1000)\n\tid 3CBBC7E2808; Wed, 20 Sep 2017 11:32:23 -0400 (EDT)" ], "From": "Joseph Salisbury <joseph.salisbury@canonical.com>", "To": "kernel-team@lists.ubuntu.com", "Subject": "[SRU][Zesty][PATCH 1/1] sched/fair: Prefer sibiling only if local\n\tgroup is under-utilized", "Date": "Wed, 20 Sep 2017 11:32:23 -0400", "Message-Id": "<3c194524dadc3bda6a04632e71f68e0fe6ac72a0.1505920769.git.joseph.salisbury@canonical.com>", "X-Mailer": "git-send-email 2.7.4", "In-Reply-To": [ "<cover.1505920769.git.joseph.salisbury@canonical.com>", "<cover.1505920769.git.joseph.salisbury@canonical.com>" ], "References": [ "<cover.1505920769.git.joseph.salisbury@canonical.com>", "<cover.1505920769.git.joseph.salisbury@canonical.com>" ], "X-BeenThere": "kernel-team@lists.ubuntu.com", "X-Mailman-Version": "2.1.20", "Precedence": "list", "List-Id": "Kernel team discussions <kernel-team.lists.ubuntu.com>", "List-Unsubscribe": "<https://lists.ubuntu.com/mailman/options/kernel-team>,\n\t<mailto:kernel-team-request@lists.ubuntu.com?subject=unsubscribe>", "List-Archive": "<https://lists.ubuntu.com/archives/kernel-team>", "List-Post": "<mailto:kernel-team@lists.ubuntu.com>", "List-Help": "<mailto:kernel-team-request@lists.ubuntu.com?subject=help>", "List-Subscribe": "<https://lists.ubuntu.com/mailman/listinfo/kernel-team>,\n\t<mailto:kernel-team-request@lists.ubuntu.com?subject=subscribe>", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=\"utf-8\"", "Content-Transfer-Encoding": "base64", "Errors-To": "kernel-team-bounces@lists.ubuntu.com", "Sender": "\"kernel-team\" <kernel-team-bounces@lists.ubuntu.com>" }, "content": "From: Srikar Dronamraju <srikar@linux.vnet.ibm.com>\n\nBugLink: http://bugs.launchpad.net/bugs/1713576\n\nIf the child domain prefers tasks to go siblings, the local group could\nend up pulling tasks to itself even if the local group is almost equally\nloaded as the source group.\n\nLets assume a 4 core,smt==2 machine running 5 thread ebizzy workload.\nEverytime, local group has capacity and source group has atleast 2 threads,\nlocal group tries to pull the task. This causes the threads to constantly\nmove between different cores. This is even more profound if the cores have\nmore threads, like in Power 8, smt 8 mode.\n\nFix this by only allowing local group to pull a task, if the source group\nhas more number of tasks than the local group.\n\nHere are the relevant perf stat numbers of a 22 core,smt 8 Power 8 machine.\n\nWithout patch:\n Performance counter stats for 'ebizzy -t 22 -S 100' (5 runs):\n\n 1,440 context-switches # 0.001 K/sec ( +- 1.26% )\n 366 cpu-migrations # 0.000 K/sec ( +- 5.58% )\n 3,933 page-faults # 0.002 K/sec ( +- 11.08% )\n\n Performance counter stats for 'ebizzy -t 48 -S 100' (5 runs):\n\n 6,287 context-switches # 0.001 K/sec ( +- 3.65% )\n 3,776 cpu-migrations # 0.001 K/sec ( +- 4.84% )\n 5,702 page-faults # 0.001 K/sec ( +- 9.36% )\n\n Performance counter stats for 'ebizzy -t 96 -S 100' (5 runs):\n\n 8,776 context-switches # 0.001 K/sec ( +- 0.73% )\n 2,790 cpu-migrations # 0.000 K/sec ( +- 0.98% )\n 10,540 page-faults # 0.001 K/sec ( +- 3.12% )\n\nWith patch:\n\n Performance counter stats for 'ebizzy -t 22 -S 100' (5 runs):\n\n 1,133 context-switches # 0.001 K/sec ( +- 4.72% )\n 123 cpu-migrations # 0.000 K/sec ( +- 3.42% )\n 3,858 page-faults # 0.002 K/sec ( +- 8.52% )\n\n Performance counter stats for 'ebizzy -t 48 -S 100' (5 runs):\n\n 2,169 context-switches # 0.000 K/sec ( +- 6.19% )\n 189 cpu-migrations # 0.000 K/sec ( +- 12.75% )\n 5,917 page-faults # 0.001 K/sec ( +- 8.09% )\n\n Performance counter stats for 'ebizzy -t 96 -S 100' (5 runs):\n\n 5,333 context-switches # 0.001 K/sec ( +- 5.91% )\n 506 cpu-migrations # 0.000 K/sec ( +- 3.35% )\n 10,792 page-faults # 0.001 K/sec ( +- 7.75% )\n\nWhich show that in these workloads CPU migrations get reduced significantly.\n\nSigned-off-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com>\nSigned-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>\nCc: Linus Torvalds <torvalds@linux-foundation.org>\nCc: Mike Galbraith <efault@gmx.de>\nCc: Peter Zijlstra <peterz@infradead.org>\nCc: Thomas Gleixner <tglx@linutronix.de>\nCc: Vincent Guittot <vincent.guittot@linaro.org>\nLink: http://lkml.kernel.org/r/1490205470-10249-1-git-send-email-srikar@linux.vnet.ibm.com\nSigned-off-by: Ingo Molnar <mingo@kernel.org>\n(cherry picked from commit 05b40e057734811ce452344fb3690d09965a7b6a)\nSigned-off-by: Joseph Salisbury <joseph.salisbury@canonical.com>\n---\n kernel/sched/fair.c | 7 ++++---\n 1 file changed, 4 insertions(+), 3 deletions(-)", "diff": "diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c\nindex 6559d19..a6dd010 100644\n--- a/kernel/sched/fair.c\n+++ b/kernel/sched/fair.c\n@@ -7496,6 +7496,7 @@ static inline void update_sd_lb_stats(struct lb_env *env, struct sd_lb_stats *sd\n {\n \tstruct sched_domain *child = env->sd->child;\n \tstruct sched_group *sg = env->sd->groups;\n+\tstruct sg_lb_stats *local = &sds->local_stat;\n \tstruct sg_lb_stats tmp_sgs;\n \tint load_idx, prefer_sibling = 0;\n \tbool overload = false;\n@@ -7512,7 +7513,7 @@ static inline void update_sd_lb_stats(struct lb_env *env, struct sd_lb_stats *sd\n \t\tlocal_group = cpumask_test_cpu(env->dst_cpu, sched_group_cpus(sg));\n \t\tif (local_group) {\n \t\t\tsds->local = sg;\n-\t\t\tsgs = &sds->local_stat;\n+\t\t\tsgs = local;\n \n \t\t\tif (env->idle != CPU_NEWLY_IDLE ||\n \t\t\t time_after_eq(jiffies, sg->sgc->next_update))\n@@ -7536,8 +7537,8 @@ static inline void update_sd_lb_stats(struct lb_env *env, struct sd_lb_stats *sd\n \t\t * the tasks on the system).\n \t\t */\n \t\tif (prefer_sibling && sds->local &&\n-\t\t group_has_capacity(env, &sds->local_stat) &&\n-\t\t (sgs->sum_nr_running > 1)) {\n+\t\t group_has_capacity(env, local) &&\n+\t\t (sgs->sum_nr_running > local->sum_nr_running + 1)) {\n \t\t\tsgs->group_no_capacity = 1;\n \t\t\tsgs->group_type = group_classify(sg, sgs);\n \t\t}\n", "prefixes": [ "SRU", "Zesty", "1/1" ] }