get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 256,
    "url": "http://patchwork.ozlabs.org/api/patches/256/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/cbe-oss-dev/patch/200809112038.19772.adetsch@br.ibm.com/",
    "project": {
        "id": 1,
        "url": "http://patchwork.ozlabs.org/api/projects/1/?format=api",
        "name": "Cell Broadband Engine development",
        "link_name": "cbe-oss-dev",
        "list_id": "cbe-oss-dev.ozlabs.org",
        "list_email": "cbe-oss-dev@ozlabs.org",
        "web_url": null,
        "scm_url": null,
        "webscm_url": null,
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<200809112038.19772.adetsch@br.ibm.com>",
    "list_archive_url": null,
    "date": "2008-09-11T23:38:19",
    "name": "powerpc/spufs: Add zombie statistics for gang scheduling",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": false,
    "hash": "90a8fce04ce96682946680b547b0ced526bacf19",
    "submitter": {
        "id": 93,
        "url": "http://patchwork.ozlabs.org/api/people/93/?format=api",
        "name": "Andre Detsch",
        "email": "adetsch@br.ibm.com"
    },
    "delegate": {
        "id": 1,
        "url": "http://patchwork.ozlabs.org/api/users/1/?format=api",
        "username": "jk",
        "first_name": "Jeremy",
        "last_name": "Kerr",
        "email": "jk@ozlabs.org"
    },
    "mbox": "http://patchwork.ozlabs.org/project/cbe-oss-dev/patch/200809112038.19772.adetsch@br.ibm.com/mbox/",
    "series": [],
    "comments": "http://patchwork.ozlabs.org/api/patches/256/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/256/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<cbe-oss-dev-bounces+patchwork=ozlabs.org@ozlabs.org>",
        "X-Original-To": [
            "patchwork@ozlabs.org",
            "cbe-oss-dev@ozlabs.org"
        ],
        "Delivered-To": [
            "patchwork@ozlabs.org",
            "cbe-oss-dev@ozlabs.org"
        ],
        "Received": [
            "from ozlabs.org (localhost [127.0.0.1])\n\tby ozlabs.org (Postfix) with ESMTP id 251E7DE91D\n\tfor <patchwork@ozlabs.org>; Fri, 12 Sep 2008 09:40:28 +1000 (EST)",
            "from igw1.br.ibm.com (igw1.br.ibm.com [32.104.18.24])\n\t(using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))\n\t(Client did not present a certificate)\n\tby ozlabs.org (Postfix) with ESMTPS id A82CFDE006;\n\tFri, 12 Sep 2008 09:39:12 +1000 (EST)",
            "from mailhub3.br.ibm.com (mailhub3 [9.18.232.110])\n\tby igw1.br.ibm.com (Postfix) with ESMTP id 2395E32C103;\n\tThu, 11 Sep 2008 20:08:31 -0300 (BRT)",
            "from d24av01.br.ibm.com (d24av01.br.ibm.com [9.18.232.46])\n\tby mailhub3.br.ibm.com (8.13.8/8.13.8/NCO v8.7) with ESMTP id\n\tm8BNd8LG606254; Thu, 11 Sep 2008 20:39:08 -0300",
            "from d24av01.br.ibm.com (loopback [127.0.0.1])\n\tby d24av01.br.ibm.com (8.12.11.20060308/8.13.3) with ESMTP id\n\tm8BNd1Qj024361; Thu, 11 Sep 2008 20:39:01 -0300",
            "from [9.8.10.86] ([9.8.10.86])\n\tby d24av01.br.ibm.com (8.12.11.20060308/8.12.11) with ESMTP id\n\tm8BNd0xd024351; Thu, 11 Sep 2008 20:39:01 -0300"
        ],
        "From": "Andre Detsch <adetsch@br.ibm.com>",
        "To": "cbe-oss-dev@ozlabs.org",
        "Date": "Thu, 11 Sep 2008 20:38:19 -0300",
        "User-Agent": "KMail/1.9.6",
        "References": "<200809111955.28780.adetsch@br.ibm.com>",
        "In-Reply-To": "<200809111955.28780.adetsch@br.ibm.com>",
        "MIME-Version": "1.0",
        "Content-Disposition": "inline",
        "Message-Id": "<200809112038.19772.adetsch@br.ibm.com>",
        "Cc": "LukeBrowning@us.ibm.com, Jeremy Kerr <jk@ozlabs.org>",
        "Subject": "[Cbe-oss-dev] [PATCH 08/11] powerpc/spufs: Add zombie statistics\n\tfor gang scheduling",
        "X-BeenThere": "cbe-oss-dev@ozlabs.org",
        "X-Mailman-Version": "2.1.11",
        "Precedence": "list",
        "List-Id": "Discussion about Open Source Software for the Cell Broadband Engine\n\t<cbe-oss-dev.ozlabs.org>",
        "List-Unsubscribe": "<https://ozlabs.org/mailman/options/cbe-oss-dev>,\n\t<mailto:cbe-oss-dev-request@ozlabs.org?subject=unsubscribe>",
        "List-Archive": "<http://ozlabs.org/pipermail/cbe-oss-dev>",
        "List-Post": "<mailto:cbe-oss-dev@ozlabs.org>",
        "List-Help": "<mailto:cbe-oss-dev-request@ozlabs.org?subject=help>",
        "List-Subscribe": "<https://ozlabs.org/mailman/listinfo/cbe-oss-dev>,\n\t<mailto:cbe-oss-dev-request@ozlabs.org?subject=subscribe>",
        "Content-Type": "text/plain; charset=\"us-ascii\"",
        "Content-Transfer-Encoding": "7bit",
        "Sender": "cbe-oss-dev-bounces+patchwork=ozlabs.org@ozlabs.org",
        "Errors-To": "cbe-oss-dev-bounces+patchwork=ozlabs.org@ozlabs.org"
    },
    "content": "Harvest statistics for contexts when they terminate so that perf tools may\nshow lifetime statistics for gangs.  Active statistics must be obtained\nfrom the context structures as before.  It is too expensive from a locking\nperspective to add these statistics to the gang structure when they are\nincremented, so just collect them for terminated contexts.\n\nSigned-off-by: Luke Browning <lukebrowning@us.ibm.com>\nSigned-off-by: Andre Detsch <adetsch@br.ibm.com>",
    "diff": "diff --git a/arch/powerpc/platforms/cell/spufs/gang.c \nb/arch/powerpc/platforms/cell/spufs/gang.c\nindex 3fcbdc7..c64d0ad 100644\n--- a/arch/powerpc/platforms/cell/spufs/gang.c\n+++ b/arch/powerpc/platforms/cell/spufs/gang.c\n@@ -82,6 +82,22 @@ void spu_gang_add_ctx(struct spu_gang *gang, struct \nspu_context *ctx)\n \tmutex_unlock(&gang->mutex);\n }\n \n+void update_gang_stats(struct spu_gang *gang, struct spu_context *ctx)\n+{\n+\tint i;\n+\n+\tfor (i = 0; i < SPU_UTIL_MAX; i++)\n+\t\tgang->stats.times[i] += ctx->stats.times[i];\n+\tgang->stats.vol_ctx_switch += ctx->stats.vol_ctx_switch;\n+\tgang->stats.invol_ctx_switch += ctx->stats.invol_ctx_switch;\n+\tgang->stats.min_flt += ctx->stats.min_flt;\n+\tgang->stats.maj_flt += ctx->stats.maj_flt;\n+\tgang->stats.hash_flt += ctx->stats.hash_flt;\n+\tgang->stats.slb_flt += ctx->stats.slb_flt;\n+\tgang->stats.class2_intr += ctx->stats.class2_intr;\n+\tgang->stats.libassist += ctx->stats.libassist;\n+}\n+\n void spu_gang_remove_ctx(struct spu_gang *gang, struct spu_context *ctx)\n {\n \tmutex_lock(&gang->mutex);\n@@ -92,6 +108,7 @@ void spu_gang_remove_ctx(struct spu_gang *gang, struct \nspu_context *ctx)\n \t}\n \tlist_del_init(&ctx->gang_list);\n \tgang->contexts--;\n+\tupdate_gang_stats(gang, ctx);\n \tatomic_dec(&gang->nstarted);\n \tif (spu_gang_runnable(gang)) {\n \t\tctx = list_first_entry(&gang->list,\ndiff --git a/arch/powerpc/platforms/cell/spufs/spufs.h \nb/arch/powerpc/platforms/cell/spufs/spufs.h\nindex bc3b499..de436f2 100644\n--- a/arch/powerpc/platforms/cell/spufs/spufs.h\n+++ b/arch/powerpc/platforms/cell/spufs/spufs.h\n@@ -179,6 +179,23 @@ struct spu_gang {\n \tint aff_flags;\n \tstruct spu *aff_ref_spu;\n \tatomic_t aff_sched_count;\n+\n+\t/* spu scheduler statistics for zombie ctxts */\n+\tstruct {\n+\t\tenum spu_utilization_state util_state;\t\t/* N/A */\n+\t\tunsigned long long tstamp;\t\t\t/* N/A */\n+\t\tunsigned long long times[SPU_UTIL_MAX];\n+\t\tunsigned long long vol_ctx_switch;\n+\t\tunsigned long long invol_ctx_switch;\n+\t\tunsigned long long min_flt;\n+\t\tunsigned long long maj_flt;\n+\t\tunsigned long long hash_flt;\n+\t\tunsigned long long slb_flt;\n+\t\tunsigned long long slb_flt_base;\t\t/* N/A */\n+\t\tunsigned long long class2_intr;\n+\t\tunsigned long long class2_intr_base;\t\t/* N/A */\n+\t\tunsigned long long libassist;\n+\t} stats;\n };\n \n static inline int spu_gang_runnable(struct spu_gang *g)\n",
    "prefixes": []
}