get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 45053,
    "url": "https://patches.dpdk.org/api/patches/45053/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/df103a747e256eabdbdc30b3eb8abdf468252d0e.1537457926.git.anatoly.burakov@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": "<df103a747e256eabdbdc30b3eb8abdf468252d0e.1537457926.git.anatoly.burakov@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/df103a747e256eabdbdc30b3eb8abdf468252d0e.1537457926.git.anatoly.burakov@intel.com",
    "date": "2018-09-20T15:41:26",
    "name": "[v2] mem: store memory mode flags in shared config",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "cc73b4a7f9eda08a02bafe0564c0e683a8258a5c",
    "submitter": {
        "id": 4,
        "url": "https://patches.dpdk.org/api/people/4/?format=api",
        "name": "Anatoly Burakov",
        "email": "anatoly.burakov@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/df103a747e256eabdbdc30b3eb8abdf468252d0e.1537457926.git.anatoly.burakov@intel.com/mbox/",
    "series": [
        {
            "id": 1425,
            "url": "https://patches.dpdk.org/api/series/1425/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=1425",
            "date": "2018-09-20T15:41:26",
            "name": "[v2] mem: store memory mode flags in shared config",
            "version": 2,
            "mbox": "https://patches.dpdk.org/series/1425/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/45053/comments/",
    "check": "success",
    "checks": "https://patches.dpdk.org/api/patches/45053/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 64C306C9B;\n\tThu, 20 Sep 2018 17:41:46 +0200 (CEST)",
            "from mga03.intel.com (mga03.intel.com [134.134.136.65])\n\tby dpdk.org (Postfix) with ESMTP id A460D5F48\n\tfor <dev@dpdk.org>; Thu, 20 Sep 2018 17:41:43 +0200 (CEST)",
            "from orsmga003.jf.intel.com ([10.7.209.27])\n\tby orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n\t20 Sep 2018 08:41:42 -0700",
            "from irvmail001.ir.intel.com ([163.33.26.43])\n\tby orsmga003.jf.intel.com with ESMTP; 20 Sep 2018 08:41:27 -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\tw8KFfQ7G009941; Thu, 20 Sep 2018 16:41:26 +0100",
            "from sivswdev01.ir.intel.com (localhost [127.0.0.1])\n\tby sivswdev01.ir.intel.com with ESMTP id w8KFfQYB024231;\n\tThu, 20 Sep 2018 16:41:26 +0100",
            "(from aburakov@localhost)\n\tby sivswdev01.ir.intel.com with LOCAL id w8KFfQuQ024227;\n\tThu, 20 Sep 2018 16:41:26 +0100"
        ],
        "X-Amp-Result": "SKIPPED(no attachment in message)",
        "X-Amp-File-Uploaded": "False",
        "X-ExtLoop1": "1",
        "X-IronPort-AV": "E=Sophos;i=\"5.53,399,1531810800\"; d=\"scan'208\";a=\"85188170\"",
        "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>, thomas@monjalon.net",
        "Date": "Thu, 20 Sep 2018 16:41:26 +0100",
        "Message-Id": "<df103a747e256eabdbdc30b3eb8abdf468252d0e.1537457926.git.anatoly.burakov@intel.com>",
        "X-Mailer": "git-send-email 1.7.0.7",
        "In-Reply-To": "<98f283ce5bcf8973c5c08d13f4fbfe375ded6ebf.1535368896.git.anatoly.burakov@intel.com>",
        "References": "<98f283ce5bcf8973c5c08d13f4fbfe375ded6ebf.1535368896.git.anatoly.burakov@intel.com>",
        "Subject": "[dpdk-dev] [PATCH v2] mem: store memory mode flags in shared config",
        "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": "Currently, command-line switches for legacy mem mode or single-file\nsegments mode are only stored in internal config. This leads to a\nsituation where these flags have to always match between primary\nand secondary, which is bad for usability.\n\nFix this by storing these flags in the shared config as well, so\nthat secondary process can know if the primary was launched in\nsingle-file segments or legacy mem mode.\n\nThis bumps the EAL ABI, however there's an EAL deprecation notice\nalready in place[1] for a different feature, so that's OK.\n\n[1] http://patches.dpdk.org/patch/43502/\n\nSigned-off-by: Anatoly Burakov <anatoly.burakov@intel.com>\n---\n\nNotes:\n    v2:\n    - Added documentation on ABI break\n\n doc/guides/rel_notes/rel_description.rst      |  5 +++++\n doc/guides/rel_notes/release_18_11.rst        |  6 +++++-\n .../common/include/rte_eal_memconfig.h        |  4 ++++\n lib/librte_eal/linuxapp/eal/Makefile          |  2 +-\n lib/librte_eal/linuxapp/eal/eal.c             | 20 +++++++++++++++++++\n lib/librte_eal/meson.build                    |  2 +-\n 6 files changed, 36 insertions(+), 3 deletions(-)",
    "diff": "diff --git a/doc/guides/rel_notes/rel_description.rst b/doc/guides/rel_notes/rel_description.rst\nindex 8f285566f..3fd289939 100644\n--- a/doc/guides/rel_notes/rel_description.rst\n+++ b/doc/guides/rel_notes/rel_description.rst\n@@ -10,3 +10,8 @@ release version |release| and previous releases.\n It lists new features, fixed bugs, API and ABI changes and known issues.\n \n For instructions on compiling and running the release, see the :ref:`DPDK Getting Started Guide <linux_gsg>`.\n+\n+* eal: new ABI version for EAL library due to adding ``legacy_mem`` and\n+       ``single_file_segments`` values to ``rte_config`` structure on account of\n+       improving DPDK usability when using either ``--legacy-mem`` or\n+       ``--single-file-segments`` flags.\ndiff --git a/doc/guides/rel_notes/release_18_11.rst b/doc/guides/rel_notes/release_18_11.rst\nindex 3ae6b3f58..34acf01d9 100644\n--- a/doc/guides/rel_notes/release_18_11.rst\n+++ b/doc/guides/rel_notes/release_18_11.rst\n@@ -83,6 +83,10 @@ ABI Changes\n    Also, make sure to start the actual text at the margin.\n    =========================================================\n \n+* eal: added ``legacy_mem`` and ``single_file_segments`` values to\n+       ``rte_config`` structure on account of improving DPDK usability when\n+       using either ``--legacy-mem`` or ``--single-file-segments`` flags.\n+\n \n Removed Items\n -------------\n@@ -129,7 +133,7 @@ The libraries prepended with a plus sign were incremented in this version.\n      librte_compressdev.so.1\n      librte_cryptodev.so.5\n      librte_distributor.so.1\n-     librte_eal.so.8\n+   + librte_eal.so.9\n      librte_ethdev.so.10\n      librte_eventdev.so.4\n      librte_flow_classify.so.1\ndiff --git a/lib/librte_eal/common/include/rte_eal_memconfig.h b/lib/librte_eal/common/include/rte_eal_memconfig.h\nindex aff0688dd..62a21c2dc 100644\n--- a/lib/librte_eal/common/include/rte_eal_memconfig.h\n+++ b/lib/librte_eal/common/include/rte_eal_memconfig.h\n@@ -77,6 +77,10 @@ struct rte_mem_config {\n \t * exact same address the primary process maps it.\n \t */\n \tuint64_t mem_cfg_addr;\n+\n+\t/* legacy mem and single file segments options are shared */\n+\tuint32_t legacy_mem;\n+\tuint32_t single_file_segments;\n } __attribute__((__packed__));\n \n \ndiff --git a/lib/librte_eal/linuxapp/eal/Makefile b/lib/librte_eal/linuxapp/eal/Makefile\nindex fd92c75c2..5c16bc40f 100644\n--- a/lib/librte_eal/linuxapp/eal/Makefile\n+++ b/lib/librte_eal/linuxapp/eal/Makefile\n@@ -10,7 +10,7 @@ ARCH_DIR ?= $(RTE_ARCH)\n EXPORT_MAP := ../../rte_eal_version.map\n VPATH += $(RTE_SDK)/lib/librte_eal/common/arch/$(ARCH_DIR)\n \n-LIBABIVER := 8\n+LIBABIVER := 9\n \n VPATH += $(RTE_SDK)/lib/librte_eal/common\n \ndiff --git a/lib/librte_eal/linuxapp/eal/eal.c b/lib/librte_eal/linuxapp/eal/eal.c\nindex e59ac6577..4a55d3b69 100644\n--- a/lib/librte_eal/linuxapp/eal/eal.c\n+++ b/lib/librte_eal/linuxapp/eal/eal.c\n@@ -352,6 +352,24 @@ eal_proc_type_detect(void)\n \treturn ptype;\n }\n \n+/* copies data from internal config to shared config */\n+static void\n+eal_update_mem_config(void)\n+{\n+\tstruct rte_mem_config *mcfg = rte_eal_get_configuration()->mem_config;\n+\tmcfg->legacy_mem = internal_config.legacy_mem;\n+\tmcfg->single_file_segments = internal_config.single_file_segments;\n+}\n+\n+/* copies data from shared config to internal config */\n+static void\n+eal_update_internal_config(void)\n+{\n+\tstruct rte_mem_config *mcfg = rte_eal_get_configuration()->mem_config;\n+\tinternal_config.legacy_mem = mcfg->legacy_mem;\n+\tinternal_config.single_file_segments = mcfg->single_file_segments;\n+}\n+\n /* Sets up rte_config structure with the pointer to shared memory config.*/\n static void\n rte_config_init(void)\n@@ -361,11 +379,13 @@ rte_config_init(void)\n \tswitch (rte_config.process_type){\n \tcase RTE_PROC_PRIMARY:\n \t\trte_eal_config_create();\n+\t\teal_update_mem_config();\n \t\tbreak;\n \tcase RTE_PROC_SECONDARY:\n \t\trte_eal_config_attach();\n \t\trte_eal_mcfg_wait_complete(rte_config.mem_config);\n \t\trte_eal_config_reattach();\n+\t\teal_update_internal_config();\n \t\tbreak;\n \tcase RTE_PROC_AUTO:\n \tcase RTE_PROC_INVALID:\ndiff --git a/lib/librte_eal/meson.build b/lib/librte_eal/meson.build\nindex e1fde15d1..62ef985b9 100644\n--- a/lib/librte_eal/meson.build\n+++ b/lib/librte_eal/meson.build\n@@ -21,7 +21,7 @@ else\n \terror('unsupported system type \"@0@\"'.format(host_machine.system()))\n endif\n \n-version = 8  # the version of the EAL API\n+version = 9  # the version of the EAL API\n allow_experimental_apis = true\n deps += 'compat'\n deps += 'kvargs'\n",
    "prefixes": [
        "v2"
    ]
}