get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/816311/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "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"
    ]
}