get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 458036,
    "url": "http://patchwork.ozlabs.org/api/patches/458036/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/1428092835-16834-15-git-send-email-jeffrey.t.kirsher@intel.com/",
    "project": {
        "id": 46,
        "url": "http://patchwork.ozlabs.org/api/projects/46/?format=api",
        "name": "Intel Wired Ethernet development",
        "link_name": "intel-wired-lan",
        "list_id": "intel-wired-lan.osuosl.org",
        "list_email": "intel-wired-lan@osuosl.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": "",
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<1428092835-16834-15-git-send-email-jeffrey.t.kirsher@intel.com>",
    "list_archive_url": null,
    "date": "2015-04-03T20:27:05",
    "name": "[net-next,15/25] fm10k: use separate workqueue for fm10k driver",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": false,
    "hash": "d97a2b1fa7e4093d046c328ef48a8f4a21a171d9",
    "submitter": {
        "id": 473,
        "url": "http://patchwork.ozlabs.org/api/people/473/?format=api",
        "name": "Kirsher, Jeffrey T",
        "email": "jeffrey.t.kirsher@intel.com"
    },
    "delegate": {
        "id": 68,
        "url": "http://patchwork.ozlabs.org/api/users/68/?format=api",
        "username": "jtkirshe",
        "first_name": "Jeff",
        "last_name": "Kirsher",
        "email": "jeffrey.t.kirsher@intel.com"
    },
    "mbox": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/1428092835-16834-15-git-send-email-jeffrey.t.kirsher@intel.com/mbox/",
    "series": [],
    "comments": "http://patchwork.ozlabs.org/api/patches/458036/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/458036/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<intel-wired-lan-bounces@lists.osuosl.org>",
        "X-Original-To": [
            "incoming@patchwork.ozlabs.org",
            "intel-wired-lan@lists.osuosl.org"
        ],
        "Delivered-To": [
            "patchwork-incoming@bilbo.ozlabs.org",
            "intel-wired-lan@lists.osuosl.org"
        ],
        "Received": [
            "from fraxinus.osuosl.org (fraxinus.osuosl.org [140.211.166.137])\n\tby ozlabs.org (Postfix) with ESMTP id 6FA541400B7\n\tfor <incoming@patchwork.ozlabs.org>;\n\tSat,  4 Apr 2015 07:27:25 +1100 (AEDT)",
            "from localhost (localhost [127.0.0.1])\n\tby fraxinus.osuosl.org (Postfix) with ESMTP id BA00EA40AF;\n\tFri,  3 Apr 2015 20:27:24 +0000 (UTC)",
            "from fraxinus.osuosl.org ([127.0.0.1])\n\tby localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id PFMy-8oKGwAv; Fri,  3 Apr 2015 20:27:23 +0000 (UTC)",
            "from ash.osuosl.org (ash.osuosl.org [140.211.166.34])\n\tby fraxinus.osuosl.org (Postfix) with ESMTP id DCCE9A3502;\n\tFri,  3 Apr 2015 20:27:22 +0000 (UTC)",
            "from whitealder.osuosl.org (whitealder.osuosl.org\n\t[140.211.166.138])\n\tby ash.osuosl.org (Postfix) with ESMTP id DF48B1C107C\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tFri,  3 Apr 2015 20:27:21 +0000 (UTC)",
            "from localhost (localhost [127.0.0.1])\n\tby whitealder.osuosl.org (Postfix) with ESMTP id DD4CA9214E\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tFri,  3 Apr 2015 20:27:21 +0000 (UTC)",
            "from whitealder.osuosl.org ([127.0.0.1])\n\tby localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id 7UIWjXLcVrJX for <intel-wired-lan@lists.osuosl.org>;\n\tFri,  3 Apr 2015 20:27:21 +0000 (UTC)",
            "from mga09.intel.com (mga09.intel.com [134.134.136.24])\n\tby whitealder.osuosl.org (Postfix) with ESMTP id 74BC192163\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tFri,  3 Apr 2015 20:27:21 +0000 (UTC)",
            "from fmsmga003.fm.intel.com ([10.253.24.29])\n\tby orsmga102.jf.intel.com with ESMTP; 03 Apr 2015 13:27:21 -0700",
            "from lwang4-mobl1.amr.corp.intel.com (HELO\n\tjtkirshe-mobl.amr.corp.intel.com) ([10.254.109.203])\n\tby FMSMGA003.fm.intel.com with ESMTP; 03 Apr 2015 13:27:21 -0700"
        ],
        "X-Virus-Scanned": [
            "amavisd-new at osuosl.org",
            "amavisd-new at osuosl.org"
        ],
        "X-Greylist": "domain auto-whitelisted by SQLgrey-1.7.6",
        "X-ExtLoop1": "1",
        "X-IronPort-AV": "E=Sophos;i=\"5.11,519,1422950400\"; d=\"scan'208\";a=\"476517926\"",
        "From": "Jeff Kirsher <jeffrey.t.kirsher@intel.com>",
        "To": "intel-wired-lan@lists.osuosl.org",
        "Date": "Fri,  3 Apr 2015 13:27:05 -0700",
        "Message-Id": "<1428092835-16834-15-git-send-email-jeffrey.t.kirsher@intel.com>",
        "X-Mailer": "git-send-email 1.9.3",
        "In-Reply-To": "<1428092835-16834-1-git-send-email-jeffrey.t.kirsher@intel.com>",
        "References": "<1428092835-16834-1-git-send-email-jeffrey.t.kirsher@intel.com>",
        "Subject": "[Intel-wired-lan] [net-next 15/25] fm10k: use separate workqueue\n\tfor fm10k driver",
        "X-BeenThere": "intel-wired-lan@lists.osuosl.org",
        "X-Mailman-Version": "2.1.18-1",
        "Precedence": "list",
        "List-Id": "Intel Wired Ethernet Linux Kernel Driver Development\n\t<intel-wired-lan.lists.osuosl.org>",
        "List-Unsubscribe": "<http://lists.osuosl.org/mailman/options/intel-wired-lan>, \n\t<mailto:intel-wired-lan-request@lists.osuosl.org?subject=unsubscribe>",
        "List-Archive": "<http://lists.osuosl.org/pipermail/intel-wired-lan/>",
        "List-Post": "<mailto:intel-wired-lan@lists.osuosl.org>",
        "List-Help": "<mailto:intel-wired-lan-request@lists.osuosl.org?subject=help>",
        "List-Subscribe": "<http://lists.osuosl.org/mailman/listinfo/intel-wired-lan>, \n\t<mailto:intel-wired-lan-request@lists.osuosl.org?subject=subscribe>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=\"us-ascii\"",
        "Content-Transfer-Encoding": "7bit",
        "Errors-To": "intel-wired-lan-bounces@lists.osuosl.org",
        "Sender": "\"Intel-wired-lan\" <intel-wired-lan-bounces@lists.osuosl.org>"
    },
    "content": "Since we run the watchdog periodically, which might take a while and\npotentially monopolize the system default workqueue, create our own\nseparate work queue. This also helps reduce and stabilize latency\nbetween scheduling the work in our interrupt and actually performing\nthe work. Still use a timer for the regular scheduled interval but\nqueue the work onto its own work queue.\n\nIt seemed overkill to create a single workqueue per interface, so we\njust spawn a single work queue for all interfaces upon driver load. For\nthis reason, use a multi-threaded workqueue with one thread per\nprocessor, rather than single threaded queue.\n\nSigned-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>\nSigned-off-by: Jacob Keller <jacob.e.keller@intel.com>\nAcked-by: Matthew Vick <matthew.vick@intel.com>\n---\n drivers/net/ethernet/intel/fm10k/fm10k.h      |  3 +++\n drivers/net/ethernet/intel/fm10k/fm10k_main.c | 12 ++++++++++++\n drivers/net/ethernet/intel/fm10k/fm10k_pci.c  |  2 +-\n 3 files changed, 16 insertions(+), 1 deletion(-)",
    "diff": "diff --git a/drivers/net/ethernet/intel/fm10k/fm10k.h b/drivers/net/ethernet/intel/fm10k/fm10k.h\nindex 715d0a0..cc7f442e 100644\n--- a/drivers/net/ethernet/intel/fm10k/fm10k.h\n+++ b/drivers/net/ethernet/intel/fm10k/fm10k.h\n@@ -235,6 +235,9 @@ struct fm10k_vxlan_port {\n \t__be16\t\t\tport;\n };\n \n+/* one work queue for entire driver */\n+extern struct workqueue_struct *fm10k_workqueue;\n+\n struct fm10k_intfc {\n \tunsigned long active_vlans[BITS_TO_LONGS(VLAN_N_VID)];\n \tstruct net_device *netdev;\ndiff --git a/drivers/net/ethernet/intel/fm10k/fm10k_main.c b/drivers/net/ethernet/intel/fm10k/fm10k_main.c\nindex 5022a45..1e08832 100644\n--- a/drivers/net/ethernet/intel/fm10k/fm10k_main.c\n+++ b/drivers/net/ethernet/intel/fm10k/fm10k_main.c\n@@ -41,6 +41,9 @@ MODULE_DESCRIPTION(\"Intel(R) Ethernet Switch Host Interface Driver\");\n MODULE_LICENSE(\"GPL\");\n MODULE_VERSION(DRV_VERSION);\n \n+/* single workqueue for entire fm10k driver */\n+struct workqueue_struct *fm10k_workqueue = NULL;\n+\n /**\n  * fm10k_init_module - Driver Registration Routine\n  *\n@@ -52,6 +55,10 @@ static int __init fm10k_init_module(void)\n \tpr_info(\"%s - version %s\\n\", fm10k_driver_string, fm10k_driver_version);\n \tpr_info(\"%s\\n\", fm10k_copyright);\n \n+\t/* create driver workqueue */\n+\tif (!fm10k_workqueue)\n+\t\tfm10k_workqueue = create_workqueue(\"fm10k\");\n+\n \tfm10k_dbg_init();\n \n \treturn fm10k_register_pci_driver();\n@@ -69,6 +76,11 @@ static void __exit fm10k_exit_module(void)\n \tfm10k_unregister_pci_driver();\n \n \tfm10k_dbg_exit();\n+\n+\t/* destroy driver workqueue */\n+\tflush_workqueue(fm10k_workqueue);\n+\tdestroy_workqueue(fm10k_workqueue);\n+\tfm10k_workqueue = NULL;\n }\n module_exit(fm10k_exit_module);\n \ndiff --git a/drivers/net/ethernet/intel/fm10k/fm10k_pci.c b/drivers/net/ethernet/intel/fm10k/fm10k_pci.c\nindex d7af466..fcf0d5a 100644\n--- a/drivers/net/ethernet/intel/fm10k/fm10k_pci.c\n+++ b/drivers/net/ethernet/intel/fm10k/fm10k_pci.c\n@@ -94,7 +94,7 @@ void fm10k_service_event_schedule(struct fm10k_intfc *interface)\n {\n \tif (!test_bit(__FM10K_SERVICE_DISABLE, &interface->state) &&\n \t    !test_and_set_bit(__FM10K_SERVICE_SCHED, &interface->state))\n-\t\tschedule_work(&interface->service_task);\n+\t\tqueue_work(fm10k_workqueue, &interface->service_task);\n }\n \n static void fm10k_service_event_complete(struct fm10k_intfc *interface)\n",
    "prefixes": [
        "net-next",
        "15/25"
    ]
}