get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 42290,
    "url": "https://patches.dpdk.org/api/patches/42290/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20180705141321.129989-1-yong.liu@intel.com/",
    "project": {
        "id": 1,
        "url": "https://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": "<20180705141321.129989-1-yong.liu@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20180705141321.129989-1-yong.liu@intel.com",
    "date": "2018-07-05T14:13:21",
    "name": "mk: using initial-exec model for thread local variable",
    "commit_ref": null,
    "pull_url": null,
    "state": "rejected",
    "archived": true,
    "hash": "1251a3ba9cee8f710b9e5e8e7900db3c215ee480",
    "submitter": {
        "id": 17,
        "url": "https://patches.dpdk.org/api/people/17/?format=api",
        "name": "Marvin Liu",
        "email": "yong.liu@intel.com"
    },
    "delegate": {
        "id": 1,
        "url": "https://patches.dpdk.org/api/users/1/?format=api",
        "username": "tmonjalo",
        "first_name": "Thomas",
        "last_name": "Monjalon",
        "email": "thomas@monjalon.net"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/20180705141321.129989-1-yong.liu@intel.com/mbox/",
    "series": [
        {
            "id": 409,
            "url": "https://patches.dpdk.org/api/series/409/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=409",
            "date": "2018-07-05T14:13:21",
            "name": "mk: using initial-exec model for thread local variable",
            "version": 1,
            "mbox": "https://patches.dpdk.org/series/409/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/42290/comments/",
    "check": "success",
    "checks": "https://patches.dpdk.org/api/patches/42290/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 969A01BDE6;\n\tThu,  5 Jul 2018 08:27:58 +0200 (CEST)",
            "from mga06.intel.com (mga06.intel.com [134.134.136.31])\n\tby dpdk.org (Postfix) with ESMTP id B9D034C97\n\tfor <dev@dpdk.org>; Thu,  5 Jul 2018 08:27:56 +0200 (CEST)",
            "from fmsmga001.fm.intel.com ([10.253.24.23])\n\tby orsmga104.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n\t04 Jul 2018 23:27:54 -0700",
            "from dpdk-test32.sh.intel.com ([10.67.119.193])\n\tby fmsmga001.fm.intel.com with ESMTP; 04 Jul 2018 23:27:53 -0700"
        ],
        "X-Amp-Result": "SKIPPED(no attachment in message)",
        "X-Amp-File-Uploaded": "False",
        "X-ExtLoop1": "1",
        "X-IronPort-AV": "E=Sophos;i=\"5.51,310,1526367600\"; d=\"scan'208\";a=\"69771531\"",
        "From": "Marvin Liu <yong.liu@intel.com>",
        "To": "zhiyong.yang@intel.com,\n\tthomas@monjalon.net,\n\tdev@dpdk.org",
        "Cc": "Marvin Liu <yong.liu@intel.com>",
        "Date": "Thu,  5 Jul 2018 22:13:21 +0800",
        "Message-Id": "<20180705141321.129989-1-yong.liu@intel.com>",
        "X-Mailer": "git-send-email 2.17.0",
        "Subject": "[dpdk-dev] [PATCH] mk: using initial-exec model for thread local\n\tvariable",
        "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": "When building share library, thread-local storage model will be changed\nto global-dynamic. It will add additional cost for reading thread local\nvariable. On the other hand, dynamically load share library with static\nTLS will request additional DTV slot which is limited by loader. By now\nonly librte_pmd_eal.so contain thread local variable. So that can make\nTLS model back to initial-exec like static library for better\nperformance.\n\nSigned-off-by: Marvin Liu <yong.liu@intel.com>",
    "diff": "diff --git a/mk/toolchain/gcc/rte.vars.mk b/mk/toolchain/gcc/rte.vars.mk\nindex 7e4531bab..19d5e11ef 100644\n--- a/mk/toolchain/gcc/rte.vars.mk\n+++ b/mk/toolchain/gcc/rte.vars.mk\n@@ -43,6 +43,13 @@ ifeq (,$(findstring -O0,$(EXTRA_CFLAGS)))\n endif\n endif\n \n+# Initial execution TLS model has better performane compared to dynamic\n+# global. But this model require for addtional slot on DTV when dlopen\n+# object with thread local variable.\n+ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y)\n+TOOLCHAIN_CFLAGS += -ftls-model=initial-exec\n+endif\n+\n WERROR_FLAGS := -W -Wall -Wstrict-prototypes -Wmissing-prototypes\n WERROR_FLAGS += -Wmissing-declarations -Wold-style-definition -Wpointer-arith\n WERROR_FLAGS += -Wcast-align -Wnested-externs -Wcast-qual\n",
    "prefixes": []
}