get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 41560,
    "url": "http://patches.dpdk.org/api/patches/41560/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/aada758c7e06795d41ec8abfaba44609657da08a.1530009564.git.anatoly.burakov@intel.com/",
    "project": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<aada758c7e06795d41ec8abfaba44609657da08a.1530009564.git.anatoly.burakov@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/aada758c7e06795d41ec8abfaba44609657da08a.1530009564.git.anatoly.burakov@intel.com",
    "date": "2018-06-26T10:53:18",
    "name": "[v2,7/7] doc: document IPC callback limitations",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "0aacac6e24b9ba1276c8c4b805e8e34f734bc21f",
    "submitter": {
        "id": 4,
        "url": "http://patches.dpdk.org/api/people/4/?format=api",
        "name": "Anatoly Burakov",
        "email": "anatoly.burakov@intel.com"
    },
    "delegate": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/users/1/?format=api",
        "username": "tmonjalo",
        "first_name": "Thomas",
        "last_name": "Monjalon",
        "email": "thomas@monjalon.net"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/aada758c7e06795d41ec8abfaba44609657da08a.1530009564.git.anatoly.burakov@intel.com/mbox/",
    "series": [
        {
            "id": 238,
            "url": "http://patches.dpdk.org/api/series/238/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=238",
            "date": "2018-06-26T10:53:12",
            "name": "Remove asynchronous IPC thread",
            "version": 2,
            "mbox": "http://patches.dpdk.org/series/238/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/41560/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/41560/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@dpdk.org",
        "Delivered-To": "patchwork@dpdk.org",
        "Received": [
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id AE9CD1B57D;\n\tTue, 26 Jun 2018 12:53:39 +0200 (CEST)",
            "from mga17.intel.com (mga17.intel.com [192.55.52.151])\n\tby dpdk.org (Postfix) with ESMTP id 276EF1B4B5\n\tfor <dev@dpdk.org>; Tue, 26 Jun 2018 12:53:25 +0200 (CEST)",
            "from fmsmga001.fm.intel.com ([10.253.24.23])\n\tby fmsmga107.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n\t26 Jun 2018 03:53:23 -0700",
            "from irvmail001.ir.intel.com ([163.33.26.43])\n\tby fmsmga001.fm.intel.com with ESMTP; 26 Jun 2018 03:53:21 -0700",
            "from sivswdev01.ir.intel.com (sivswdev01.ir.intel.com\n\t[10.237.217.45])\n\tby irvmail001.ir.intel.com (8.14.3/8.13.6/MailSET/Hub) with ESMTP id\n\tw5QArKKY026454; Tue, 26 Jun 2018 11:53:20 +0100",
            "from sivswdev01.ir.intel.com (localhost [127.0.0.1])\n\tby sivswdev01.ir.intel.com with ESMTP id w5QArKm1021231;\n\tTue, 26 Jun 2018 11:53:20 +0100",
            "(from aburakov@localhost)\n\tby sivswdev01.ir.intel.com with LOCAL id w5QArKfo021227;\n\tTue, 26 Jun 2018 11:53:20 +0100"
        ],
        "X-Amp-Result": "SKIPPED(no attachment in message)",
        "X-Amp-File-Uploaded": "False",
        "X-ExtLoop1": "1",
        "X-IronPort-AV": "E=Sophos;i=\"5.51,274,1526367600\"; d=\"scan'208\";a=\"67358863\"",
        "From": "Anatoly Burakov <anatoly.burakov@intel.com>",
        "To": "dev@dpdk.org",
        "Cc": "John McNamara <john.mcnamara@intel.com>,\n\tMarko Kovacevic <marko.kovacevic@intel.com>,\n\tkonstantin.ananyev@intel.com, thomas@monjalon.net,\n\tbruce.richardson@intel.com, qi.z.zhang@intel.com",
        "Date": "Tue, 26 Jun 2018 11:53:18 +0100",
        "Message-Id": "<aada758c7e06795d41ec8abfaba44609657da08a.1530009564.git.anatoly.burakov@intel.com>",
        "X-Mailer": "git-send-email 1.7.0.7",
        "In-Reply-To": [
            "<cover.1530009564.git.anatoly.burakov@intel.com>",
            "<cover.1530009564.git.anatoly.burakov@intel.com>"
        ],
        "References": [
            "<cover.1530009564.git.anatoly.burakov@intel.com>",
            "<cover.1529071026.git.anatoly.burakov@intel.com>\n\t<cover.1530009564.git.anatoly.burakov@intel.com>"
        ],
        "Subject": "[dpdk-dev] [PATCH v2 7/7] doc: document IPC callback limitations",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "For asynchronous requests, user callback may be triggered either from\nIPC thread or from interrupt thread. Because of this, delivery of\nother interrupt-based events such as alarms may not be possible inside\nthe asynchronous IPC request callback handler. Document this\nlimitation.\n\nSigned-off-by: Anatoly Burakov <anatoly.burakov@intel.com>\n---\n doc/guides/prog_guide/multi_proc_support.rst | 17 +++++++++++++++--\n 1 file changed, 15 insertions(+), 2 deletions(-)",
    "diff": "diff --git a/doc/guides/prog_guide/multi_proc_support.rst b/doc/guides/prog_guide/multi_proc_support.rst\nindex 46a00ec11..1384fe335 100644\n--- a/doc/guides/prog_guide/multi_proc_support.rst\n+++ b/doc/guides/prog_guide/multi_proc_support.rst\n@@ -220,8 +220,8 @@ way communication mechanism, with the requester expecting a response from the\n other side.\n \n Both messages and requests will trigger a named callback on the receiver side.\n-These callbacks will be called from within a dedicated IPC thread that is not\n-part of EAL lcore threads.\n+These callbacks will be called from within a dedicated IPC or interrupt thread\n+that are not part of EAL lcore threads.\n \n Registering for incoming messages\n ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n@@ -280,6 +280,13 @@ For asynchronous requests, a function pointer to the callback function must be\n provided instead. This callback will be called when the request either has timed\n out, or will have received a response to all the messages that were sent.\n \n+.. warning::\n+\n+    When an asynchronous request times out, the callback will be called not by\n+    a dedicated IPC thread, but rather from EAL interrupt thread. Because of\n+    this, it may not be possible for DPDK to trigger another interrupt-based\n+    event (such as an alarm) while handling asynchronous IPC callback.\n+\n When the callback is called, the original request descriptor will be provided\n (so that it would be possible to determine for which sent message this is a\n callback to), along with a response descriptor like the one described above.\n@@ -311,6 +318,12 @@ supported. However, since sending messages (not requests) does not involve an\n IPC thread, sending messages while processing another message or request is\n supported.\n \n+Asynchronous request callbacks may be triggered either from IPC thread or from\n+interrupt thread, depending on whether the request has timed out. It is\n+therefore suggested to avoid waiting for interrupt-based events (such as alarms)\n+inside asynchronous IPC request callbacks. This limitation does not apply to\n+messages or synchronous requests.\n+\n If callbacks spend a long time processing the incoming requests, the requestor\n might time out, so setting the right timeout value on the requestor side is\n imperative.\n",
    "prefixes": [
        "v2",
        "7/7"
    ]
}