get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 77751,
    "url": "http://patches.dpdk.org/api/patches/77751/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20200915151114.12024-4-stephen@networkplumber.org/",
    "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": "<20200915151114.12024-4-stephen@networkplumber.org>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20200915151114.12024-4-stephen@networkplumber.org",
    "date": "2020-09-15T15:11:00",
    "name": "[v3,03/17] eal: rename lcore word choices",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "715230c376cb538b8f508b9c1809169b371dd6bd",
    "submitter": {
        "id": 27,
        "url": "http://patches.dpdk.org/api/people/27/?format=api",
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org"
    },
    "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/20200915151114.12024-4-stephen@networkplumber.org/mbox/",
    "series": [
        {
            "id": 12238,
            "url": "http://patches.dpdk.org/api/series/12238/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=12238",
            "date": "2020-09-15T15:11:09",
            "name": "Replace terms master/slave",
            "version": 3,
            "mbox": "http://patches.dpdk.org/series/12238/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/77751/comments/",
    "check": "warning",
    "checks": "http://patches.dpdk.org/api/patches/77751/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 50178A04C7;\n\tTue, 15 Sep 2020 17:20:54 +0200 (CEST)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 899861C195;\n\tTue, 15 Sep 2020 17:19:43 +0200 (CEST)",
            "from mail-oi1-f194.google.com (mail-oi1-f194.google.com\n [209.85.167.194]) by dpdk.org (Postfix) with ESMTP id A257E1C10C\n for <dev@dpdk.org>; Tue, 15 Sep 2020 17:19:34 +0200 (CEST)",
            "by mail-oi1-f194.google.com with SMTP id n2so4302374oij.1\n for <dev@dpdk.org>; Tue, 15 Sep 2020 08:19:34 -0700 (PDT)",
            "from hermes.lan (204-195-22-127.wavecable.com. [204.195.22.127])\n by smtp.gmail.com with ESMTPSA id c127sm13742278pfa.165.2020.09.15.08.11.26\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Tue, 15 Sep 2020 08:11:27 -0700 (PDT)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=networkplumber-org.20150623.gappssmtp.com; s=20150623;\n h=from:to:cc:subject:date:message-id:in-reply-to:references\n :mime-version:content-transfer-encoding;\n bh=nr1IaPOXLrDHFbgbbrhJ6UUNRm6GkRlUy7B3VgbNSbA=;\n b=XgvO+YU9nItHk1Q4J2iXgCXot6qnJ2iOpYg1dzj5NqHWXu9EimeNORbfH5v7NaLOca\n 2Aq7UfbM/7jzFR+rTZxBNnfSV88Po9yMcAegu8w5bujIdZNk9sM7ttoD+kzZn+FVNjiR\n QZNFFeV0wcFD2FyP83fZmzzJMExaWB+yltoj+UNqRm9gd5H4q6sOYsgeq1bbwr3TUUmD\n N476MICur1wsJyZpeilinggMFV5wzYc+aPP9DIH8pCJjK9aFxP8bc/f5ygZbFbBW8Ekn\n EdvZV9O90wYiRnhMD3tnlGNrjOoOuPgreotNx0E8cRx+0vGPP1FZ3ITCEXKoV/tRGheD\n IkvA==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20161025;\n h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to\n :references:mime-version:content-transfer-encoding;\n bh=nr1IaPOXLrDHFbgbbrhJ6UUNRm6GkRlUy7B3VgbNSbA=;\n b=dAqX+8GrPA8b2wLo/QN4HJTUVBD6yW5j6sWTPetVsmpLSI1tmVejafo/9rPGmBI7da\n /p4pnB51rSsBfYE7IL8dMFKM3rkLBGD72EkfmsH6Uwq4IFlQsUc98oYKiih+5UuMx/Kc\n V29uMGhz41rMShTy1dEB89cxyq5bkYhfM62kqSrF+awzgLxV3frst2mMMEghevIZiCl8\n bIA7KYFUk2CgGyw2N8RaCj+XiqmyFG+uoXT33nUPGMjMEo0cAcAOIAZ0JWd4PNRzGjtU\n KN15iHxiDdaRQ6oHhEW+Ohcq1k9JFC1LNoFjIQpXA2BEz05buTYF1+WOv1fiUswlq7xw\n JqgA==",
        "X-Gm-Message-State": "AOAM533dFfBsfmPfCkqZegpGU2jgd8athRW9L8iwdActaXp+BMzUMnh/\n t2ck9NDvOjlG+UgVPIrFgM45klQu31unaA==",
        "X-Google-Smtp-Source": "\n ABdhPJwHzurde2qTNE6Mmp2fV8VXmcF1oCdNNFk6cJ8jYitwXRnsQENbN+nuu229Xpp1hWu7n9tgsA==",
        "X-Received": "by 2002:a17:90b:4b09:: with SMTP id\n lx9mr4525659pjb.76.1600182688182;\n Tue, 15 Sep 2020 08:11:28 -0700 (PDT)",
        "From": "Stephen Hemminger <stephen@networkplumber.org>",
        "To": "dev@dpdk.org",
        "Cc": "Stephen Hemminger <stephen@networkplumber.org>",
        "Date": "Tue, 15 Sep 2020 08:11:00 -0700",
        "Message-Id": "<20200915151114.12024-4-stephen@networkplumber.org>",
        "X-Mailer": "git-send-email 2.27.0",
        "In-Reply-To": "<20200915151114.12024-1-stephen@networkplumber.org>",
        "References": "<20200911190701.29171-1-stephen@networkplumber.org>\n <20200915151114.12024-1-stephen@networkplumber.org>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dpdk-dev] [PATCH v3 03/17] eal: rename lcore word choices",
        "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 <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 <mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "Replace master lcore with main lcore and\nreplace slave lcore with worker lcore.\n\nKeep the old functions and macros but mark them as deprecated\nfor this release.\n\nThe \"--master-lcore\" command line option is also deprecated\nand any usage will print a warning and use \"--main-lcore\"\nas replacement.\n\nSigned-off-by: Stephen Hemminger <stephen@networkplumber.org>\n---\n doc/guides/rel_notes/deprecation.rst       | 19 -------\n doc/guides/rel_notes/release_20_11.rst     | 11 ++++\n lib/librte_eal/common/eal_common_dynmem.c  | 10 ++--\n lib/librte_eal/common/eal_common_launch.c  | 36 ++++++-------\n lib/librte_eal/common/eal_common_lcore.c   |  8 +--\n lib/librte_eal/common/eal_common_options.c | 56 +++++++++++---------\n lib/librte_eal/common/eal_options.h        |  2 +\n lib/librte_eal/common/eal_private.h        |  6 +--\n lib/librte_eal/common/rte_random.c         |  2 +-\n lib/librte_eal/common/rte_service.c        |  2 +-\n lib/librte_eal/freebsd/eal.c               | 28 +++++-----\n lib/librte_eal/freebsd/eal_thread.c        | 32 ++++++------\n lib/librte_eal/include/rte_eal.h           |  4 +-\n lib/librte_eal/include/rte_eal_trace.h     |  4 +-\n lib/librte_eal/include/rte_launch.h        | 60 ++++++++++++----------\n lib/librte_eal/include/rte_lcore.h         | 35 +++++++++----\n lib/librte_eal/linux/eal.c                 | 28 +++++-----\n lib/librte_eal/linux/eal_memory.c          | 10 ++--\n lib/librte_eal/linux/eal_thread.c          | 32 ++++++------\n lib/librte_eal/rte_eal_version.map         |  2 +-\n lib/librte_eal/windows/eal.c               | 16 +++---\n lib/librte_eal/windows/eal_thread.c        | 30 +++++------\n 22 files changed, 226 insertions(+), 207 deletions(-)",
    "diff": "diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst\nindex 52168f775198..4132fb4b7c46 100644\n--- a/doc/guides/rel_notes/deprecation.rst\n+++ b/doc/guides/rel_notes/deprecation.rst\n@@ -25,25 +25,6 @@ Deprecation Notices\n * kvargs: The function ``rte_kvargs_process`` will get a new parameter\n   for returning key match count. It will ease handling of no-match case.\n \n-* eal: To be more inclusive in choice of naming, the DPDK project\n-  will replace uses of master/slave in the API's and command line arguments.\n-\n-  References to master/slave in relation to lcore will be renamed\n-  to initial/worker.  The function ``rte_get_master_lcore()``\n-  will be renamed to ``rte_get_initial_lcore()``.\n-  For the 20.11 release, both names will be present and the\n-  old function will be marked with the deprecated tag.\n-  The old function will be removed in a future version.\n-\n-  The iterator for worker lcores will also change:\n-  ``RTE_LCORE_FOREACH_SLAVE`` will be replaced with\n-  ``RTE_LCORE_FOREACH_WORKER``.\n-\n-  The ``master-lcore`` argument to testpmd will be replaced\n-  with ``initial-lcore``. The old ``master-lcore`` argument\n-  will produce a runtime notification in 20.11 release, and\n-  be removed completely in a future release.\n-\n * eal: The terms blacklist and whitelist to describe devices used\n   by DPDK will be replaced in the 20.11 relase.\n   This will apply to command line arguments as well as macros.\ndiff --git a/doc/guides/rel_notes/release_20_11.rst b/doc/guides/rel_notes/release_20_11.rst\nindex b729bdf20022..08e6fbcb3eb4 100644\n--- a/doc/guides/rel_notes/release_20_11.rst\n+++ b/doc/guides/rel_notes/release_20_11.rst\n@@ -97,6 +97,17 @@ API Changes\n   and the function ``rte_rawdev_queue_conf_get()``\n   from ``void`` to ``int`` allowing the return of error codes from drivers.\n \n+* eal: Changed the function ``rte_get_master_lcore()`` is\n+  replaced to ``rte_get_main_lcore()``. The old function is deprecated.\n+\n+  The iterator for worker lcores will also change:\n+  ``RTE_LCORE_FOREACH_SLAVE`` will be replaced with\n+  ``RTE_LCORE_FOREACH_WORKER``.\n+\n+  The ``master-lcore`` argument to testpmd will be replaced\n+  with ``main-lcore``. The old ``master-lcore`` argument\n+  will produce a runtime notification in 20.11 release, and\n+  be removed completely in a future release.\n \n ABI Changes\n -----------\ndiff --git a/lib/librte_eal/common/eal_common_dynmem.c b/lib/librte_eal/common/eal_common_dynmem.c\nindex 614648d8a4de..1cefe52443c4 100644\n--- a/lib/librte_eal/common/eal_common_dynmem.c\n+++ b/lib/librte_eal/common/eal_common_dynmem.c\n@@ -427,19 +427,19 @@ eal_dynmem_calc_num_pages_per_socket(\n \t\t\ttotal_size -= default_size;\n \t\t}\n #else\n-\t\t/* in 32-bit mode, allocate all of the memory only on master\n+\t\t/* in 32-bit mode, allocate all of the memory only on main\n \t\t * lcore socket\n \t\t */\n \t\ttotal_size = internal_conf->memory;\n \t\tfor (socket = 0; socket < RTE_MAX_NUMA_NODES && total_size != 0;\n \t\t\t\tsocket++) {\n \t\t\tstruct rte_config *cfg = rte_eal_get_configuration();\n-\t\t\tunsigned int master_lcore_socket;\n+\t\t\tunsigned int main_lcore_socket;\n \n-\t\t\tmaster_lcore_socket =\n-\t\t\t\trte_lcore_to_socket_id(cfg->master_lcore);\n+\t\t\tmain_lcore_socket =\n+\t\t\t\trte_lcore_to_socket_id(cfg->main_lcore);\n \n-\t\t\tif (master_lcore_socket != socket)\n+\t\t\tif (main_lcore_socket != socket)\n \t\t\t\tcontinue;\n \n \t\t\t/* Update sizes */\ndiff --git a/lib/librte_eal/common/eal_common_launch.c b/lib/librte_eal/common/eal_common_launch.c\nindex cf52d717f68e..34f854ad80c8 100644\n--- a/lib/librte_eal/common/eal_common_launch.c\n+++ b/lib/librte_eal/common/eal_common_launch.c\n@@ -21,55 +21,55 @@\n  * Wait until a lcore finished its job.\n  */\n int\n-rte_eal_wait_lcore(unsigned slave_id)\n+rte_eal_wait_lcore(unsigned worker_id)\n {\n-\tif (lcore_config[slave_id].state == WAIT)\n+\tif (lcore_config[worker_id].state == WAIT)\n \t\treturn 0;\n \n-\twhile (lcore_config[slave_id].state != WAIT &&\n-\t       lcore_config[slave_id].state != FINISHED)\n+\twhile (lcore_config[worker_id].state != WAIT &&\n+\t       lcore_config[worker_id].state != FINISHED)\n \t\trte_pause();\n \n \trte_rmb();\n \n \t/* we are in finished state, go to wait state */\n-\tlcore_config[slave_id].state = WAIT;\n-\treturn lcore_config[slave_id].ret;\n+\tlcore_config[worker_id].state = WAIT;\n+\treturn lcore_config[worker_id].ret;\n }\n \n /*\n- * Check that every SLAVE lcores are in WAIT state, then call\n- * rte_eal_remote_launch() for all of them. If call_master is true\n- * (set to CALL_MASTER), also call the function on the master lcore.\n+ * Check that every WORKER lcores are in WAIT state, then call\n+ * rte_eal_remote_launch() for all of them. If call_main is true\n+ * (set to CALL_MAIN), also call the function on the main lcore.\n  */\n int\n rte_eal_mp_remote_launch(int (*f)(void *), void *arg,\n-\t\t\t enum rte_rmt_call_master_t call_master)\n+\t\t\t enum rte_rmt_call_main_t call_main)\n {\n \tint lcore_id;\n-\tint master = rte_get_master_lcore();\n+\tint main_lcore = rte_get_main_lcore();\n \n \t/* check state of lcores */\n-\tRTE_LCORE_FOREACH_SLAVE(lcore_id) {\n+\tRTE_LCORE_FOREACH_WORKER(lcore_id) {\n \t\tif (lcore_config[lcore_id].state != WAIT)\n \t\t\treturn -EBUSY;\n \t}\n \n \t/* send messages to cores */\n-\tRTE_LCORE_FOREACH_SLAVE(lcore_id) {\n+\tRTE_LCORE_FOREACH_WORKER(lcore_id) {\n \t\trte_eal_remote_launch(f, arg, lcore_id);\n \t}\n \n-\tif (call_master == CALL_MASTER) {\n-\t\tlcore_config[master].ret = f(arg);\n-\t\tlcore_config[master].state = FINISHED;\n+\tif (call_main == CALL_MAIN) {\n+\t\tlcore_config[main_lcore].ret = f(arg);\n+\t\tlcore_config[main_lcore].state = FINISHED;\n \t}\n \n \treturn 0;\n }\n \n /*\n- * Return the state of the lcore identified by slave_id.\n+ * Return the state of the lcore identified by worker_id.\n  */\n enum rte_lcore_state_t\n rte_eal_get_lcore_state(unsigned lcore_id)\n@@ -86,7 +86,7 @@ rte_eal_mp_wait_lcore(void)\n {\n \tunsigned lcore_id;\n \n-\tRTE_LCORE_FOREACH_SLAVE(lcore_id) {\n+\tRTE_LCORE_FOREACH_WORKER(lcore_id) {\n \t\trte_eal_wait_lcore(lcore_id);\n \t}\n }\ndiff --git a/lib/librte_eal/common/eal_common_lcore.c b/lib/librte_eal/common/eal_common_lcore.c\nindex d64569b3c758..66d6bad1a7d7 100644\n--- a/lib/librte_eal/common/eal_common_lcore.c\n+++ b/lib/librte_eal/common/eal_common_lcore.c\n@@ -18,9 +18,9 @@\n #include \"eal_private.h\"\n #include \"eal_thread.h\"\n \n-unsigned int rte_get_master_lcore(void)\n+unsigned int rte_get_main_lcore(void)\n {\n-\treturn rte_eal_get_configuration()->master_lcore;\n+\treturn rte_eal_get_configuration()->main_lcore;\n }\n \n unsigned int rte_lcore_count(void)\n@@ -93,7 +93,7 @@ int rte_lcore_is_enabled(unsigned int lcore_id)\n \treturn cfg->lcore_role[lcore_id] == ROLE_RTE;\n }\n \n-unsigned int rte_get_next_lcore(unsigned int i, int skip_master, int wrap)\n+unsigned int rte_get_next_lcore(unsigned int i, int skip_main, int wrap)\n {\n \ti++;\n \tif (wrap)\n@@ -101,7 +101,7 @@ unsigned int rte_get_next_lcore(unsigned int i, int skip_master, int wrap)\n \n \twhile (i < RTE_MAX_LCORE) {\n \t\tif (!rte_lcore_is_enabled(i) ||\n-\t\t    (skip_master && (i == rte_get_master_lcore()))) {\n+\t\t    (skip_main && (i == rte_get_main_lcore()))) {\n \t\t\ti++;\n \t\t\tif (wrap)\n \t\t\t\ti %= RTE_MAX_LCORE;\ndiff --git a/lib/librte_eal/common/eal_common_options.c b/lib/librte_eal/common/eal_common_options.c\nindex a5426e12346a..667ba2111c1a 100644\n--- a/lib/librte_eal/common/eal_common_options.c\n+++ b/lib/librte_eal/common/eal_common_options.c\n@@ -81,6 +81,7 @@ eal_long_options[] = {\n \t{OPT_TRACE_BUF_SIZE,    1, NULL, OPT_TRACE_BUF_SIZE_NUM   },\n \t{OPT_TRACE_MODE,        1, NULL, OPT_TRACE_MODE_NUM       },\n \t{OPT_MASTER_LCORE,      1, NULL, OPT_MASTER_LCORE_NUM     },\n+\t{OPT_MAIN_LCORE,        1, NULL, OPT_MAIN_LCORE_NUM       },\n \t{OPT_MBUF_POOL_OPS_NAME, 1, NULL, OPT_MBUF_POOL_OPS_NAME_NUM},\n \t{OPT_NO_HPET,           0, NULL, OPT_NO_HPET_NUM          },\n \t{OPT_NO_HUGE,           0, NULL, OPT_NO_HUGE_NUM          },\n@@ -144,7 +145,7 @@ struct device_option {\n static struct device_option_list devopt_list =\n TAILQ_HEAD_INITIALIZER(devopt_list);\n \n-static int master_lcore_parsed;\n+static int main_lcore_parsed;\n static int mem_parsed;\n static int core_parsed;\n \n@@ -575,12 +576,12 @@ eal_parse_service_coremask(const char *coremask)\n \t\tfor (j = 0; j < BITS_PER_HEX && idx < RTE_MAX_LCORE;\n \t\t\t\tj++, idx++) {\n \t\t\tif ((1 << j) & val) {\n-\t\t\t\t/* handle master lcore already parsed */\n+\t\t\t\t/* handle main lcore already parsed */\n \t\t\t\tuint32_t lcore = idx;\n-\t\t\t\tif (master_lcore_parsed &&\n-\t\t\t\t\t\tcfg->master_lcore == lcore) {\n+\t\t\t\tif (main_lcore_parsed &&\n+\t\t\t\t\t\tcfg->main_lcore == lcore) {\n \t\t\t\t\tRTE_LOG(ERR, EAL,\n-\t\t\t\t\t\t\"lcore %u is master lcore, cannot use as service core\\n\",\n+\t\t\t\t\t\t\"lcore %u is main lcore, cannot use as service core\\n\",\n \t\t\t\t\t\tidx);\n \t\t\t\t\treturn -1;\n \t\t\t\t}\n@@ -748,12 +749,12 @@ eal_parse_service_corelist(const char *corelist)\n \t\t\t\tmin = idx;\n \t\t\tfor (idx = min; idx <= max; idx++) {\n \t\t\t\tif (cfg->lcore_role[idx] != ROLE_SERVICE) {\n-\t\t\t\t\t/* handle master lcore already parsed */\n+\t\t\t\t\t/* handle main lcore already parsed */\n \t\t\t\t\tuint32_t lcore = idx;\n-\t\t\t\t\tif (cfg->master_lcore == lcore &&\n-\t\t\t\t\t\t\tmaster_lcore_parsed) {\n+\t\t\t\t\tif (cfg->main_lcore == lcore &&\n+\t\t\t\t\t\t\tmain_lcore_parsed) {\n \t\t\t\t\t\tRTE_LOG(ERR, EAL,\n-\t\t\t\t\t\t\t\"Error: lcore %u is master lcore, cannot use as service core\\n\",\n+\t\t\t\t\t\t\t\"Error: lcore %u is main lcore, cannot use as service core\\n\",\n \t\t\t\t\t\t\tidx);\n \t\t\t\t\t\treturn -1;\n \t\t\t\t\t}\n@@ -836,23 +837,23 @@ eal_parse_corelist(const char *corelist, int *cores)\n \treturn 0;\n }\n \n-/* Changes the lcore id of the master thread */\n+/* Changes the lcore id of the main thread */\n static int\n-eal_parse_master_lcore(const char *arg)\n+eal_parse_main_lcore(const char *arg)\n {\n \tchar *parsing_end;\n \tstruct rte_config *cfg = rte_eal_get_configuration();\n \n \terrno = 0;\n-\tcfg->master_lcore = (uint32_t) strtol(arg, &parsing_end, 0);\n+\tcfg->main_lcore = (uint32_t) strtol(arg, &parsing_end, 0);\n \tif (errno || parsing_end[0] != 0)\n \t\treturn -1;\n-\tif (cfg->master_lcore >= RTE_MAX_LCORE)\n+\tif (cfg->main_lcore >= RTE_MAX_LCORE)\n \t\treturn -1;\n-\tmaster_lcore_parsed = 1;\n+\tmain_lcore_parsed = 1;\n \n-\t/* ensure master core is not used as service core */\n-\tif (lcore_config[cfg->master_lcore].core_role == ROLE_SERVICE) {\n+\t/* ensure main core is not used as service core */\n+\tif (lcore_config[cfg->main_lcore].core_role == ROLE_SERVICE) {\n \t\tRTE_LOG(ERR, EAL,\n \t\t\t\"Error: Master lcore is used as a service core\\n\");\n \t\treturn -1;\n@@ -1593,7 +1594,12 @@ eal_parse_common_option(int opt, const char *optarg,\n \t\tbreak;\n \n \tcase OPT_MASTER_LCORE_NUM:\n-\t\tif (eal_parse_master_lcore(optarg) < 0) {\n+\t\tfprintf(stderr,\n+\t\t\t\"option --\" OPT_MASTER_LCORE\n+\t\t\t\" is deprecated use \" OPT_MAIN_LCORE \"\\n\");\n+\t\t/* fallthrough */\n+\tcase OPT_MAIN_LCORE_NUM:\n+\t\tif (eal_parse_main_lcore(optarg) < 0) {\n \t\t\tRTE_LOG(ERR, EAL, \"invalid parameter for --\"\n \t\t\t\t\tOPT_MASTER_LCORE \"\\n\");\n \t\t\treturn -1;\n@@ -1763,9 +1769,9 @@ compute_ctrl_threads_cpuset(struct internal_config *internal_cfg)\n \n \tRTE_CPU_AND(cpuset, cpuset, &default_set);\n \n-\t/* if no remaining cpu, use master lcore cpu affinity */\n+\t/* if no remaining cpu, use main lcore cpu affinity */\n \tif (!CPU_COUNT(cpuset)) {\n-\t\tmemcpy(cpuset, &lcore_config[rte_get_master_lcore()].cpuset,\n+\t\tmemcpy(cpuset, &lcore_config[rte_get_main_lcore()].cpuset,\n \t\t\tsizeof(*cpuset));\n \t}\n }\n@@ -1797,12 +1803,12 @@ eal_adjust_config(struct internal_config *internal_cfg)\n \tif (internal_conf->process_type == RTE_PROC_AUTO)\n \t\tinternal_conf->process_type = eal_proc_type_detect();\n \n-\t/* default master lcore is the first one */\n-\tif (!master_lcore_parsed) {\n-\t\tcfg->master_lcore = rte_get_next_lcore(-1, 0, 0);\n-\t\tif (cfg->master_lcore >= RTE_MAX_LCORE)\n+\t/* default main lcore is the first one */\n+\tif (!main_lcore_parsed) {\n+\t\tcfg->main_lcore = rte_get_next_lcore(-1, 0, 0);\n+\t\tif (cfg->main_lcore >= RTE_MAX_LCORE)\n \t\t\treturn -1;\n-\t\tlcore_config[cfg->master_lcore].core_role = ROLE_RTE;\n+\t\tlcore_config[cfg->main_lcore].core_role = ROLE_RTE;\n \t}\n \n \tcompute_ctrl_threads_cpuset(internal_cfg);\n@@ -1822,7 +1828,7 @@ eal_check_common_options(struct internal_config *internal_cfg)\n \tconst struct internal_config *internal_conf =\n \t\teal_get_internal_configuration();\n \n-\tif (cfg->lcore_role[cfg->master_lcore] != ROLE_RTE) {\n+\tif (cfg->lcore_role[cfg->main_lcore] != ROLE_RTE) {\n \t\tRTE_LOG(ERR, EAL, \"Master lcore is not enabled for DPDK\\n\");\n \t\treturn -1;\n \t}\ndiff --git a/lib/librte_eal/common/eal_options.h b/lib/librte_eal/common/eal_options.h\nindex 89769d48b487..d363228a7a25 100644\n--- a/lib/librte_eal/common/eal_options.h\n+++ b/lib/librte_eal/common/eal_options.h\n@@ -43,6 +43,8 @@ enum {\n \tOPT_TRACE_BUF_SIZE_NUM,\n #define OPT_TRACE_MODE        \"trace-mode\"\n \tOPT_TRACE_MODE_NUM,\n+#define OPT_MAIN_LCORE        \"main-lcore\"\n+\tOPT_MAIN_LCORE_NUM,\n #define OPT_MASTER_LCORE      \"master-lcore\"\n \tOPT_MASTER_LCORE_NUM,\n #define OPT_MBUF_POOL_OPS_NAME \"mbuf-pool-ops-name\"\ndiff --git a/lib/librte_eal/common/eal_private.h b/lib/librte_eal/common/eal_private.h\nindex a6a6381567f4..4684c4c7df19 100644\n--- a/lib/librte_eal/common/eal_private.h\n+++ b/lib/librte_eal/common/eal_private.h\n@@ -20,8 +20,8 @@\n  */\n struct lcore_config {\n \tpthread_t thread_id;       /**< pthread identifier */\n-\tint pipe_master2slave[2];  /**< communication pipe with master */\n-\tint pipe_slave2master[2];  /**< communication pipe with master */\n+\tint pipe_main2worker[2];   /**< communication pipe with main */\n+\tint pipe_worker2main[2];   /**< communication pipe with main */\n \n \tlcore_function_t * volatile f; /**< function to call */\n \tvoid * volatile arg;       /**< argument of function */\n@@ -42,7 +42,7 @@ extern struct lcore_config lcore_config[RTE_MAX_LCORE];\n  * The global RTE configuration structure.\n  */\n struct rte_config {\n-\tuint32_t master_lcore;       /**< Id of the master lcore */\n+\tuint32_t main_lcore;         /**< Id of the main lcore */\n \tuint32_t lcore_count;        /**< Number of available logical cores. */\n \tuint32_t numa_node_count;    /**< Number of detected NUMA nodes. */\n \tuint32_t numa_nodes[RTE_MAX_NUMA_NODES]; /**< List of detected NUMA nodes. */\ndiff --git a/lib/librte_eal/common/rte_random.c b/lib/librte_eal/common/rte_random.c\nindex b7a089ac4fe0..8d88aca26299 100644\n--- a/lib/librte_eal/common/rte_random.c\n+++ b/lib/librte_eal/common/rte_random.c\n@@ -122,7 +122,7 @@ struct rte_rand_state *__rte_rand_get_state(void)\n \tlcore_id = rte_lcore_id();\n \n \tif (unlikely(lcore_id == LCORE_ID_ANY))\n-\t\tlcore_id = rte_get_master_lcore();\n+\t\tlcore_id = rte_get_main_lcore();\n \n \treturn &rand_states[lcore_id];\n }\ndiff --git a/lib/librte_eal/common/rte_service.c b/lib/librte_eal/common/rte_service.c\nindex 6a0e0ff65d14..626d2409ad57 100644\n--- a/lib/librte_eal/common/rte_service.c\n+++ b/lib/librte_eal/common/rte_service.c\n@@ -106,7 +106,7 @@ rte_service_init(void)\n \tstruct rte_config *cfg = rte_eal_get_configuration();\n \tfor (i = 0; i < RTE_MAX_LCORE; i++) {\n \t\tif (lcore_config[i].core_role == ROLE_SERVICE) {\n-\t\t\tif ((unsigned int)i == cfg->master_lcore)\n+\t\t\tif ((unsigned int)i == cfg->main_lcore)\n \t\t\t\tcontinue;\n \t\t\trte_service_lcore_add(i);\n \t\t\tcount++;\ndiff --git a/lib/librte_eal/freebsd/eal.c b/lib/librte_eal/freebsd/eal.c\nindex 798add0b5919..f7bdd8caabc3 100644\n--- a/lib/librte_eal/freebsd/eal.c\n+++ b/lib/librte_eal/freebsd/eal.c\n@@ -626,10 +626,10 @@ eal_check_mem_on_local_socket(void)\n \tint socket_id;\n \tconst struct rte_config *config = rte_eal_get_configuration();\n \n-\tsocket_id = rte_lcore_to_socket_id(config->master_lcore);\n+\tsocket_id = rte_lcore_to_socket_id(config->main_lcore);\n \n \tif (rte_memseg_list_walk(check_socket, &socket_id) == 0)\n-\t\tRTE_LOG(WARNING, EAL, \"WARNING: Master core has no memory on local socket!\\n\");\n+\t\tRTE_LOG(WARNING, EAL, \"WARNING: Main core has no memory on local socket!\\n\");\n }\n \n \n@@ -850,29 +850,29 @@ rte_eal_init(int argc, char **argv)\n \teal_check_mem_on_local_socket();\n \n \tif (pthread_setaffinity_np(pthread_self(), sizeof(rte_cpuset_t),\n-\t\t\t&lcore_config[config->master_lcore].cpuset) != 0) {\n+\t\t\t&lcore_config[config->main_lcore].cpuset) != 0) {\n \t\trte_eal_init_alert(\"Cannot set affinity\");\n \t\trte_errno = EINVAL;\n \t\treturn -1;\n \t}\n-\t__rte_thread_init(config->master_lcore,\n-\t\t&lcore_config[config->master_lcore].cpuset);\n+\t__rte_thread_init(config->main_lcore,\n+\t\t&lcore_config[config->main_lcore].cpuset);\n \n \tret = eal_thread_dump_current_affinity(cpuset, sizeof(cpuset));\n \n-\tRTE_LOG(DEBUG, EAL, \"Master lcore %u is ready (tid=%p;cpuset=[%s%s])\\n\",\n-\t\tconfig->master_lcore, thread_id, cpuset,\n+\tRTE_LOG(DEBUG, EAL, \"Main lcore %u is ready (tid=%p;cpuset=[%s%s])\\n\",\n+\t\tconfig->main_lcore, thread_id, cpuset,\n \t\tret == 0 ? \"\" : \"...\");\n \n-\tRTE_LCORE_FOREACH_SLAVE(i) {\n+\tRTE_LCORE_FOREACH_WORKER(i) {\n \n \t\t/*\n-\t\t * create communication pipes between master thread\n+\t\t * create communication pipes between main thread\n \t\t * and children\n \t\t */\n-\t\tif (pipe(lcore_config[i].pipe_master2slave) < 0)\n+\t\tif (pipe(lcore_config[i].pipe_main2worker) < 0)\n \t\t\trte_panic(\"Cannot create pipe\\n\");\n-\t\tif (pipe(lcore_config[i].pipe_slave2master) < 0)\n+\t\tif (pipe(lcore_config[i].pipe_worker2main) < 0)\n \t\t\trte_panic(\"Cannot create pipe\\n\");\n \n \t\tlcore_config[i].state = WAIT;\n@@ -885,7 +885,7 @@ rte_eal_init(int argc, char **argv)\n \n \t\t/* Set thread_name for aid in debugging. */\n \t\tsnprintf(thread_name, sizeof(thread_name),\n-\t\t\t\t\"lcore-slave-%d\", i);\n+\t\t\t\t\"lcore-worker-%d\", i);\n \t\trte_thread_setname(lcore_config[i].thread_id, thread_name);\n \n \t\tret = pthread_setaffinity_np(lcore_config[i].thread_id,\n@@ -895,10 +895,10 @@ rte_eal_init(int argc, char **argv)\n \t}\n \n \t/*\n-\t * Launch a dummy function on all slave lcores, so that master lcore\n+\t * Launch a dummy function on all worker lcores, so that main lcore\n \t * knows they are all ready when this function returns.\n \t */\n-\trte_eal_mp_remote_launch(sync_func, NULL, SKIP_MASTER);\n+\trte_eal_mp_remote_launch(sync_func, NULL, SKIP_MAIN);\n \trte_eal_mp_wait_lcore();\n \n \t/* initialize services so vdevs register service during bus_probe. */\ndiff --git a/lib/librte_eal/freebsd/eal_thread.c b/lib/librte_eal/freebsd/eal_thread.c\nindex 99b5fefc4c5b..1dce9b04f24a 100644\n--- a/lib/librte_eal/freebsd/eal_thread.c\n+++ b/lib/librte_eal/freebsd/eal_thread.c\n@@ -26,35 +26,35 @@\n #include \"eal_thread.h\"\n \n /*\n- * Send a message to a slave lcore identified by slave_id to call a\n+ * Send a message to a worker lcore identified by worker_id to call a\n  * function f with argument arg. Once the execution is done, the\n  * remote lcore switch in FINISHED state.\n  */\n int\n-rte_eal_remote_launch(int (*f)(void *), void *arg, unsigned slave_id)\n+rte_eal_remote_launch(int (*f)(void *), void *arg, unsigned worker_id)\n {\n \tint n;\n \tchar c = 0;\n-\tint m2s = lcore_config[slave_id].pipe_master2slave[1];\n-\tint s2m = lcore_config[slave_id].pipe_slave2master[0];\n+\tint m2w = lcore_config[worker_id].pipe_main2worker[1];\n+\tint w2m = lcore_config[worker_id].pipe_worker2main[0];\n \tint rc = -EBUSY;\n \n-\tif (lcore_config[slave_id].state != WAIT)\n+\tif (lcore_config[worker_id].state != WAIT)\n \t\tgoto finish;\n \n-\tlcore_config[slave_id].f = f;\n-\tlcore_config[slave_id].arg = arg;\n+\tlcore_config[worker_id].f = f;\n+\tlcore_config[worker_id].arg = arg;\n \n \t/* send message */\n \tn = 0;\n \twhile (n == 0 || (n < 0 && errno == EINTR))\n-\t\tn = write(m2s, &c, 1);\n+\t\tn = write(m2w, &c, 1);\n \tif (n < 0)\n \t\trte_panic(\"cannot write on configuration pipe\\n\");\n \n \t/* wait ack */\n \tdo {\n-\t\tn = read(s2m, &c, 1);\n+\t\tn = read(w2m, &c, 1);\n \t} while (n < 0 && errno == EINTR);\n \n \tif (n <= 0)\n@@ -62,7 +62,7 @@ rte_eal_remote_launch(int (*f)(void *), void *arg, unsigned slave_id)\n \n \trc = 0;\n finish:\n-\trte_eal_trace_thread_remote_launch(f, arg, slave_id, rc);\n+\trte_eal_trace_thread_remote_launch(f, arg, worker_id, rc);\n \treturn rc;\n }\n \n@@ -74,21 +74,21 @@ eal_thread_loop(__rte_unused void *arg)\n \tint n, ret;\n \tunsigned lcore_id;\n \tpthread_t thread_id;\n-\tint m2s, s2m;\n+\tint m2w, w2m;\n \tchar cpuset[RTE_CPU_AFFINITY_STR_LEN];\n \n \tthread_id = pthread_self();\n \n \t/* retrieve our lcore_id from the configuration structure */\n-\tRTE_LCORE_FOREACH_SLAVE(lcore_id) {\n+\tRTE_LCORE_FOREACH_WORKER(lcore_id) {\n \t\tif (thread_id == lcore_config[lcore_id].thread_id)\n \t\t\tbreak;\n \t}\n \tif (lcore_id == RTE_MAX_LCORE)\n \t\trte_panic(\"cannot retrieve lcore id\\n\");\n \n-\tm2s = lcore_config[lcore_id].pipe_master2slave[0];\n-\ts2m = lcore_config[lcore_id].pipe_slave2master[1];\n+\tm2w = lcore_config[lcore_id].pipe_main2worker[0];\n+\tw2m = lcore_config[lcore_id].pipe_worker2main[1];\n \n \t__rte_thread_init(lcore_id, &lcore_config[lcore_id].cpuset);\n \n@@ -104,7 +104,7 @@ eal_thread_loop(__rte_unused void *arg)\n \n \t\t/* wait command */\n \t\tdo {\n-\t\t\tn = read(m2s, &c, 1);\n+\t\t\tn = read(m2w, &c, 1);\n \t\t} while (n < 0 && errno == EINTR);\n \n \t\tif (n <= 0)\n@@ -115,7 +115,7 @@ eal_thread_loop(__rte_unused void *arg)\n \t\t/* send ack */\n \t\tn = 0;\n \t\twhile (n == 0 || (n < 0 && errno == EINTR))\n-\t\t\tn = write(s2m, &c, 1);\n+\t\t\tn = write(w2m, &c, 1);\n \t\tif (n < 0)\n \t\t\trte_panic(\"cannot write on configuration pipe\\n\");\n \ndiff --git a/lib/librte_eal/include/rte_eal.h b/lib/librte_eal/include/rte_eal.h\nindex ddcf6a2e7a1a..f8f0d74b476c 100644\n--- a/lib/librte_eal/include/rte_eal.h\n+++ b/lib/librte_eal/include/rte_eal.h\n@@ -65,11 +65,11 @@ int rte_eal_iopl_init(void);\n /**\n  * Initialize the Environment Abstraction Layer (EAL).\n  *\n- * This function is to be executed on the MASTER lcore only, as soon\n+ * This function is to be executed on the MAIN lcore only, as soon\n  * as possible in the application's main() function.\n  *\n  * The function finishes the initialization process before main() is called.\n- * It puts the SLAVE lcores in the WAIT state.\n+ * It puts the WORKER lcores in the WAIT state.\n  *\n  * When the multi-partition feature is supported, depending on the\n  * configuration (if CONFIG_RTE_EAL_MAIN_PARTITION is disabled), this\ndiff --git a/lib/librte_eal/include/rte_eal_trace.h b/lib/librte_eal/include/rte_eal_trace.h\nindex 6b1a813c7b1b..dd4e30e7fe5c 100644\n--- a/lib/librte_eal/include/rte_eal_trace.h\n+++ b/lib/librte_eal/include/rte_eal_trace.h\n@@ -258,10 +258,10 @@ RTE_TRACE_POINT(\n RTE_TRACE_POINT(\n \trte_eal_trace_thread_remote_launch,\n \tRTE_TRACE_POINT_ARGS(int (*f)(void *), void *arg,\n-\t\tunsigned int slave_id, int rc),\n+\t\tunsigned int worker_id, int rc),\n \trte_trace_point_emit_ptr(f);\n \trte_trace_point_emit_ptr(arg);\n-\trte_trace_point_emit_u32(slave_id);\n+\trte_trace_point_emit_u32(worker_id);\n \trte_trace_point_emit_int(rc);\n )\n RTE_TRACE_POINT(\ndiff --git a/lib/librte_eal/include/rte_launch.h b/lib/librte_eal/include/rte_launch.h\nindex 06a671752ace..2b061c7dea8e 100644\n--- a/lib/librte_eal/include/rte_launch.h\n+++ b/lib/librte_eal/include/rte_launch.h\n@@ -32,12 +32,12 @@ typedef int (lcore_function_t)(void *);\n /**\n  * Launch a function on another lcore.\n  *\n- * To be executed on the MASTER lcore only.\n+ * To be executed on the MAIN lcore only.\n  *\n- * Sends a message to a slave lcore (identified by the slave_id) that\n+ * Sends a message to a worker lcore (identified by the worker_id) that\n  * is in the WAIT state (this is true after the first call to\n  * rte_eal_init()). This can be checked by first calling\n- * rte_eal_wait_lcore(slave_id).\n+ * rte_eal_wait_lcore(worker_id).\n  *\n  * When the remote lcore receives the message, it switches to\n  * the RUNNING state, then calls the function f with argument arg. Once the\n@@ -45,7 +45,7 @@ typedef int (lcore_function_t)(void *);\n  * the return value of f is stored in a local variable to be read using\n  * rte_eal_wait_lcore().\n  *\n- * The MASTER lcore returns as soon as the message is sent and knows\n+ * The MAIN lcore returns as soon as the message is sent and knows\n  * nothing about the completion of f.\n  *\n  * Note: This function is not designed to offer optimum\n@@ -56,37 +56,41 @@ typedef int (lcore_function_t)(void *);\n  *   The function to be called.\n  * @param arg\n  *   The argument for the function.\n- * @param slave_id\n+ * @param worker_id\n  *   The identifier of the lcore on which the function should be executed.\n  * @return\n  *   - 0: Success. Execution of function f started on the remote lcore.\n  *   - (-EBUSY): The remote lcore is not in a WAIT state.\n  */\n-int rte_eal_remote_launch(lcore_function_t *f, void *arg, unsigned slave_id);\n+int rte_eal_remote_launch(lcore_function_t *f, void *arg, unsigned worker_id);\n \n /**\n- * This enum indicates whether the master core must execute the handler\n+ * This enum indicates whether the main core must execute the handler\n  * launched on all logical cores.\n  */\n-enum rte_rmt_call_master_t {\n-\tSKIP_MASTER = 0, /**< lcore handler not executed by master core. */\n-\tCALL_MASTER,     /**< lcore handler executed by master core. */\n+enum rte_rmt_call_main_t {\n+\tSKIP_MAIN = 0, /**< lcore handler not executed by main core. */\n+\tCALL_MAIN,     /**< lcore handler executed by main core. */\n };\n \n+/* These legacy definitions will be removed in future release */\n+#define SKIP_MASTER \tRTE_DEPRECATED(SKIP_MASTER) SKIP_MAIN\n+#define CALL_MASTER \tRTE_DEPRECATED(CALL_MASTER) CALL_MAIN\n+\n /**\n  * Launch a function on all lcores.\n  *\n- * Check that each SLAVE lcore is in a WAIT state, then call\n+ * Check that each WORKER lcore is in a WAIT state, then call\n  * rte_eal_remote_launch() for each lcore.\n  *\n  * @param f\n  *   The function to be called.\n  * @param arg\n  *   The argument for the function.\n- * @param call_master\n- *   If call_master set to SKIP_MASTER, the MASTER lcore does not call\n- *   the function. If call_master is set to CALL_MASTER, the function\n- *   is also called on master before returning. In any case, the master\n+ * @param call_main\n+ *   If call_main set to SKIP_MAIN, the MAIN lcore does not call\n+ *   the function. If call_main is set to CALL_MAIN, the function\n+ *   is also called on main before returning. In any case, the main\n  *   lcore returns as soon as it finished its job and knows nothing\n  *   about the completion of f on the other lcores.\n  * @return\n@@ -95,49 +99,49 @@ enum rte_rmt_call_master_t {\n  *     case, no message is sent to any of the lcores.\n  */\n int rte_eal_mp_remote_launch(lcore_function_t *f, void *arg,\n-\t\t\t     enum rte_rmt_call_master_t call_master);\n+\t\t\t     enum rte_rmt_call_main_t call_main);\n \n /**\n- * Get the state of the lcore identified by slave_id.\n+ * Get the state of the lcore identified by worker_id.\n  *\n- * To be executed on the MASTER lcore only.\n+ * To be executed on the MAIN lcore only.\n  *\n- * @param slave_id\n+ * @param worker_id\n  *   The identifier of the lcore.\n  * @return\n  *   The state of the lcore.\n  */\n-enum rte_lcore_state_t rte_eal_get_lcore_state(unsigned slave_id);\n+enum rte_lcore_state_t rte_eal_get_lcore_state(unsigned worker_id);\n \n /**\n  * Wait until an lcore finishes its job.\n  *\n- * To be executed on the MASTER lcore only.\n+ * To be executed on the MAIN lcore only.\n  *\n- * If the slave lcore identified by the slave_id is in a FINISHED state,\n+ * If the worker lcore identified by the worker_id is in a FINISHED state,\n  * switch to the WAIT state. If the lcore is in RUNNING state, wait until\n  * the lcore finishes its job and moves to the FINISHED state.\n  *\n- * @param slave_id\n+ * @param worker_id\n  *   The identifier of the lcore.\n  * @return\n- *   - 0: If the lcore identified by the slave_id is in a WAIT state.\n+ *   - 0: If the lcore identified by the worker_id is in a WAIT state.\n  *   - The value that was returned by the previous remote launch\n- *     function call if the lcore identified by the slave_id was in a\n+ *     function call if the lcore identified by the worker_id was in a\n  *     FINISHED or RUNNING state. In this case, it changes the state\n  *     of the lcore to WAIT.\n  */\n-int rte_eal_wait_lcore(unsigned slave_id);\n+int rte_eal_wait_lcore(unsigned worker_id);\n \n /**\n  * Wait until all lcores finish their jobs.\n  *\n- * To be executed on the MASTER lcore only. Issue an\n+ * To be executed on the MAIN lcore only. Issue an\n  * rte_eal_wait_lcore() for every lcore. The return values are\n  * ignored.\n  *\n  * After a call to rte_eal_mp_wait_lcore(), the caller can assume\n- * that all slave lcores are in a WAIT state.\n+ * that all worker lcores are in a WAIT state.\n  */\n void rte_eal_mp_wait_lcore(void);\n \ndiff --git a/lib/librte_eal/include/rte_lcore.h b/lib/librte_eal/include/rte_lcore.h\nindex b8b64a625200..48b87e253afa 100644\n--- a/lib/librte_eal/include/rte_lcore.h\n+++ b/lib/librte_eal/include/rte_lcore.h\n@@ -78,12 +78,24 @@ rte_lcore_id(void)\n }\n \n /**\n- * Get the id of the master lcore\n+ * Get the id of the main lcore\n  *\n  * @return\n- *   the id of the master lcore\n+ *   the id of the main lcore\n  */\n-unsigned int rte_get_master_lcore(void);\n+unsigned int rte_get_main_lcore(void);\n+\n+/**\n+ * Deprecated function the id of the main lcore\n+ *\n+ * @return\n+ *   the id of the main lcore\n+ */\n+__rte_deprecated\n+static inline unsigned int rte_get_master_lcore(void)\n+{\n+\treturn rte_get_main_lcore();\n+}\n \n /**\n  * Return the number of execution units (lcores) on the system.\n@@ -203,32 +215,35 @@ int rte_lcore_is_enabled(unsigned int lcore_id);\n  *\n  * @param i\n  *   The current lcore (reference).\n- * @param skip_master\n- *   If true, do not return the ID of the master lcore.\n+ * @param skip_main\n+ *   If true, do not return the ID of the main lcore.\n  * @param wrap\n  *   If true, go back to 0 when RTE_MAX_LCORE is reached; otherwise,\n  *   return RTE_MAX_LCORE.\n  * @return\n  *   The next lcore_id or RTE_MAX_LCORE if not found.\n  */\n-unsigned int rte_get_next_lcore(unsigned int i, int skip_master, int wrap);\n+unsigned int rte_get_next_lcore(unsigned int i, int skip_main, int wrap);\n \n /**\n  * Macro to browse all running lcores.\n  */\n #define RTE_LCORE_FOREACH(i)\t\t\t\t\t\t\\\n \tfor (i = rte_get_next_lcore(-1, 0, 0);\t\t\t\t\\\n-\t     i<RTE_MAX_LCORE;\t\t\t\t\t\t\\\n+\t     i < RTE_MAX_LCORE;\t\t\t\t\t\t\\\n \t     i = rte_get_next_lcore(i, 0, 0))\n \n /**\n- * Macro to browse all running lcores except the master lcore.\n+ * Macro to browse all running lcores except the main lcore.\n  */\n-#define RTE_LCORE_FOREACH_SLAVE(i)\t\t\t\t\t\\\n+#define RTE_LCORE_FOREACH_WORKER(i)\t\t\t\t\t\\\n \tfor (i = rte_get_next_lcore(-1, 1, 0);\t\t\t\t\\\n-\t     i<RTE_MAX_LCORE;\t\t\t\t\t\t\\\n+\t     i < RTE_MAX_LCORE;\t\t\t\t\t\t\\\n \t     i = rte_get_next_lcore(i, 1, 0))\n \n+#define RTE_LCORE_FOREACH_SLAVE(l)\t\t\t\t\t\\\n+\tRTE_DEPRECATED(RTE_LCORE_FOREACH_SLAVE) RTE_LCORE_FOREACH_WORKER(l)\n+\n /**\n  * Callback prototype for initializing lcores.\n  *\ndiff --git a/lib/librte_eal/linux/eal.c b/lib/librte_eal/linux/eal.c\nindex 0960f01d0516..d8b1948585dc 100644\n--- a/lib/librte_eal/linux/eal.c\n+++ b/lib/librte_eal/linux/eal.c\n@@ -884,10 +884,10 @@ eal_check_mem_on_local_socket(void)\n \tint socket_id;\n \tconst struct rte_config *config = rte_eal_get_configuration();\n \n-\tsocket_id = rte_lcore_to_socket_id(config->master_lcore);\n+\tsocket_id = rte_lcore_to_socket_id(config->main_lcore);\n \n \tif (rte_memseg_list_walk(check_socket, &socket_id) == 0)\n-\t\tRTE_LOG(WARNING, EAL, \"WARNING: Master core has no memory on local socket!\\n\");\n+\t\tRTE_LOG(WARNING, EAL, \"WARNING: Main core has no memory on local socket!\\n\");\n }\n \n static int\n@@ -1214,28 +1214,28 @@ rte_eal_init(int argc, char **argv)\n \teal_check_mem_on_local_socket();\n \n \tif (pthread_setaffinity_np(pthread_self(), sizeof(rte_cpuset_t),\n-\t\t\t&lcore_config[config->master_lcore].cpuset) != 0) {\n+\t\t\t&lcore_config[config->main_lcore].cpuset) != 0) {\n \t\trte_eal_init_alert(\"Cannot set affinity\");\n \t\trte_errno = EINVAL;\n \t\treturn -1;\n \t}\n-\t__rte_thread_init(config->master_lcore,\n-\t\t&lcore_config[config->master_lcore].cpuset);\n+\t__rte_thread_init(config->main_lcore,\n+\t\t&lcore_config[config->main_lcore].cpuset);\n \n \tret = eal_thread_dump_current_affinity(cpuset, sizeof(cpuset));\n-\tRTE_LOG(DEBUG, EAL, \"Master lcore %u is ready (tid=%zx;cpuset=[%s%s])\\n\",\n-\t\tconfig->master_lcore, (uintptr_t)thread_id, cpuset,\n+\tRTE_LOG(DEBUG, EAL, \"Main lcore %u is ready (tid=%zx;cpuset=[%s%s])\\n\",\n+\t\tconfig->main_lcore, (uintptr_t)thread_id, cpuset,\n \t\tret == 0 ? \"\" : \"...\");\n \n-\tRTE_LCORE_FOREACH_SLAVE(i) {\n+\tRTE_LCORE_FOREACH_WORKER(i) {\n \n \t\t/*\n-\t\t * create communication pipes between master thread\n+\t\t * create communication pipes between main thread\n \t\t * and children\n \t\t */\n-\t\tif (pipe(lcore_config[i].pipe_master2slave) < 0)\n+\t\tif (pipe(lcore_config[i].pipe_main2worker) < 0)\n \t\t\trte_panic(\"Cannot create pipe\\n\");\n-\t\tif (pipe(lcore_config[i].pipe_slave2master) < 0)\n+\t\tif (pipe(lcore_config[i].pipe_worker2main) < 0)\n \t\t\trte_panic(\"Cannot create pipe\\n\");\n \n \t\tlcore_config[i].state = WAIT;\n@@ -1248,7 +1248,7 @@ rte_eal_init(int argc, char **argv)\n \n \t\t/* Set thread_name for aid in debugging. */\n \t\tsnprintf(thread_name, sizeof(thread_name),\n-\t\t\t\"lcore-slave-%d\", i);\n+\t\t\t\"lcore-worker-%d\", i);\n \t\tret = rte_thread_setname(lcore_config[i].thread_id,\n \t\t\t\t\t\tthread_name);\n \t\tif (ret != 0)\n@@ -1262,10 +1262,10 @@ rte_eal_init(int argc, char **argv)\n \t}\n \n \t/*\n-\t * Launch a dummy function on all slave lcores, so that master lcore\n+\t * Launch a dummy function on all worker lcores, so that main lcore\n \t * knows they are all ready when this function returns.\n \t */\n-\trte_eal_mp_remote_launch(sync_func, NULL, SKIP_MASTER);\n+\trte_eal_mp_remote_launch(sync_func, NULL, SKIP_MAIN);\n \trte_eal_mp_wait_lcore();\n \n \t/* initialize services so vdevs register service during bus_probe. */\ndiff --git a/lib/librte_eal/linux/eal_memory.c b/lib/librte_eal/linux/eal_memory.c\nindex 89725291b0ce..3e47efe58212 100644\n--- a/lib/librte_eal/linux/eal_memory.c\n+++ b/lib/librte_eal/linux/eal_memory.c\n@@ -1737,7 +1737,7 @@ memseg_primary_init_32(void)\n \t/* the allocation logic is a little bit convoluted, but here's how it\n \t * works, in a nutshell:\n \t *  - if user hasn't specified on which sockets to allocate memory via\n-\t *    --socket-mem, we allocate all of our memory on master core socket.\n+\t *    --socket-mem, we allocate all of our memory on main core socket.\n \t *  - if user has specified sockets to allocate memory on, there may be\n \t *    some \"unused\" memory left (e.g. if user has specified --socket-mem\n \t *    such that not all memory adds up to 2 gigabytes), so add it to all\n@@ -1751,7 +1751,7 @@ memseg_primary_init_32(void)\n \tfor (i = 0; i < rte_socket_count(); i++) {\n \t\tint hp_sizes = (int) internal_conf->num_hugepage_sizes;\n \t\tuint64_t max_socket_mem, cur_socket_mem;\n-\t\tunsigned int master_lcore_socket;\n+\t\tunsigned int main_lcore_socket;\n \t\tstruct rte_config *cfg = rte_eal_get_configuration();\n \t\tbool skip;\n \n@@ -1767,10 +1767,10 @@ memseg_primary_init_32(void)\n \t\tskip = active_sockets != 0 &&\n \t\t\t\tinternal_conf->socket_mem[socket_id] == 0;\n \t\t/* ...or if we didn't specifically request memory on *any*\n-\t\t * socket, and this is not master lcore\n+\t\t * socket, and this is not main lcore\n \t\t */\n-\t\tmaster_lcore_socket = rte_lcore_to_socket_id(cfg->master_lcore);\n-\t\tskip |= active_sockets == 0 && socket_id != master_lcore_socket;\n+\t\tmain_lcore_socket = rte_lcore_to_socket_id(cfg->main_lcore);\n+\t\tskip |= active_sockets == 0 && socket_id != main_lcore_socket;\n \n \t\tif (skip) {\n \t\t\tRTE_LOG(DEBUG, EAL, \"Will not preallocate memory on socket %u\\n\",\ndiff --git a/lib/librte_eal/linux/eal_thread.c b/lib/librte_eal/linux/eal_thread.c\nindex 068de2559555..bed1d513c841 100644\n--- a/lib/librte_eal/linux/eal_thread.c\n+++ b/lib/librte_eal/linux/eal_thread.c\n@@ -26,35 +26,35 @@\n #include \"eal_thread.h\"\n \n /*\n- * Send a message to a slave lcore identified by slave_id to call a\n+ * Send a message to a worker lcore identified by worker_id to call a\n  * function f with argument arg. Once the execution is done, the\n  * remote lcore switch in FINISHED state.\n  */\n int\n-rte_eal_remote_launch(int (*f)(void *), void *arg, unsigned slave_id)\n+rte_eal_remote_launch(int (*f)(void *), void *arg, unsigned worker_id)\n {\n \tint n;\n \tchar c = 0;\n-\tint m2s = lcore_config[slave_id].pipe_master2slave[1];\n-\tint s2m = lcore_config[slave_id].pipe_slave2master[0];\n+\tint m2w = lcore_config[worker_id].pipe_main2worker[1];\n+\tint w2m = lcore_config[worker_id].pipe_worker2main[0];\n \tint rc = -EBUSY;\n \n-\tif (lcore_config[slave_id].state != WAIT)\n+\tif (lcore_config[worker_id].state != WAIT)\n \t\tgoto finish;\n \n-\tlcore_config[slave_id].f = f;\n-\tlcore_config[slave_id].arg = arg;\n+\tlcore_config[worker_id].f = f;\n+\tlcore_config[worker_id].arg = arg;\n \n \t/* send message */\n \tn = 0;\n \twhile (n == 0 || (n < 0 && errno == EINTR))\n-\t\tn = write(m2s, &c, 1);\n+\t\tn = write(m2w, &c, 1);\n \tif (n < 0)\n \t\trte_panic(\"cannot write on configuration pipe\\n\");\n \n \t/* wait ack */\n \tdo {\n-\t\tn = read(s2m, &c, 1);\n+\t\tn = read(w2m, &c, 1);\n \t} while (n < 0 && errno == EINTR);\n \n \tif (n <= 0)\n@@ -62,7 +62,7 @@ rte_eal_remote_launch(int (*f)(void *), void *arg, unsigned slave_id)\n \n \trc = 0;\n finish:\n-\trte_eal_trace_thread_remote_launch(f, arg, slave_id, rc);\n+\trte_eal_trace_thread_remote_launch(f, arg, worker_id, rc);\n \treturn rc;\n }\n \n@@ -74,21 +74,21 @@ eal_thread_loop(__rte_unused void *arg)\n \tint n, ret;\n \tunsigned lcore_id;\n \tpthread_t thread_id;\n-\tint m2s, s2m;\n+\tint m2w, w2m;\n \tchar cpuset[RTE_CPU_AFFINITY_STR_LEN];\n \n \tthread_id = pthread_self();\n \n \t/* retrieve our lcore_id from the configuration structure */\n-\tRTE_LCORE_FOREACH_SLAVE(lcore_id) {\n+\tRTE_LCORE_FOREACH_WORKER(lcore_id) {\n \t\tif (thread_id == lcore_config[lcore_id].thread_id)\n \t\t\tbreak;\n \t}\n \tif (lcore_id == RTE_MAX_LCORE)\n \t\trte_panic(\"cannot retrieve lcore id\\n\");\n \n-\tm2s = lcore_config[lcore_id].pipe_master2slave[0];\n-\ts2m = lcore_config[lcore_id].pipe_slave2master[1];\n+\tm2w = lcore_config[lcore_id].pipe_main2worker[0];\n+\tw2m = lcore_config[lcore_id].pipe_worker2main[1];\n \n \t__rte_thread_init(lcore_id, &lcore_config[lcore_id].cpuset);\n \n@@ -104,7 +104,7 @@ eal_thread_loop(__rte_unused void *arg)\n \n \t\t/* wait command */\n \t\tdo {\n-\t\t\tn = read(m2s, &c, 1);\n+\t\t\tn = read(m2w, &c, 1);\n \t\t} while (n < 0 && errno == EINTR);\n \n \t\tif (n <= 0)\n@@ -115,7 +115,7 @@ eal_thread_loop(__rte_unused void *arg)\n \t\t/* send ack */\n \t\tn = 0;\n \t\twhile (n == 0 || (n < 0 && errno == EINTR))\n-\t\t\tn = write(s2m, &c, 1);\n+\t\t\tn = write(w2m, &c, 1);\n \t\tif (n < 0)\n \t\t\trte_panic(\"cannot write on configuration pipe\\n\");\n \ndiff --git a/lib/librte_eal/rte_eal_version.map b/lib/librte_eal/rte_eal_version.map\nindex 0b18e2ef85f9..8ff6fe7c3eaf 100644\n--- a/lib/librte_eal/rte_eal_version.map\n+++ b/lib/librte_eal/rte_eal_version.map\n@@ -74,7 +74,7 @@ DPDK_21 {\n \trte_free;\n \trte_get_hpet_cycles;\n \trte_get_hpet_hz;\n-\trte_get_master_lcore;\n+\trte_get_main_lcore;\n \trte_get_next_lcore;\n \trte_get_tsc_hz;\n \trte_hexdump;\ndiff --git a/lib/librte_eal/windows/eal.c b/lib/librte_eal/windows/eal.c\nindex bc48f27ab39a..cbca20956210 100644\n--- a/lib/librte_eal/windows/eal.c\n+++ b/lib/librte_eal/windows/eal.c\n@@ -350,8 +350,8 @@ rte_eal_init(int argc, char **argv)\n \t\treturn -1;\n \t}\n \n-\t__rte_thread_init(config->master_lcore,\n-\t\t&lcore_config[config->master_lcore].cpuset);\n+\t__rte_thread_init(config->main_lcore,\n+\t\t&lcore_config[config->main_lcore].cpuset);\n \n \tbscan = rte_bus_scan();\n \tif (bscan < 0) {\n@@ -360,16 +360,16 @@ rte_eal_init(int argc, char **argv)\n \t\treturn -1;\n \t}\n \n-\tRTE_LCORE_FOREACH_SLAVE(i) {\n+\tRTE_LCORE_FOREACH_WORKER(i) {\n \n \t\t/*\n-\t\t * create communication pipes between master thread\n+\t\t * create communication pipes between main thread\n \t\t * and children\n \t\t */\n-\t\tif (_pipe(lcore_config[i].pipe_master2slave,\n+\t\tif (_pipe(lcore_config[i].pipe_main2worker,\n \t\t\tsizeof(char), _O_BINARY) < 0)\n \t\t\trte_panic(\"Cannot create pipe\\n\");\n-\t\tif (_pipe(lcore_config[i].pipe_slave2master,\n+\t\tif (_pipe(lcore_config[i].pipe_worker2main,\n \t\t\tsizeof(char), _O_BINARY) < 0)\n \t\t\trte_panic(\"Cannot create pipe\\n\");\n \n@@ -394,10 +394,10 @@ rte_eal_init(int argc, char **argv)\n \t}\n \n \t/*\n-\t * Launch a dummy function on all slave lcores, so that master lcore\n+\t * Launch a dummy function on all worker lcores, so that main lcore\n \t * knows they are all ready when this function returns.\n \t */\n-\trte_eal_mp_remote_launch(sync_func, NULL, SKIP_MASTER);\n+\trte_eal_mp_remote_launch(sync_func, NULL, SKIP_MAIN);\n \trte_eal_mp_wait_lcore();\n \treturn fctret;\n }\ndiff --git a/lib/librte_eal/windows/eal_thread.c b/lib/librte_eal/windows/eal_thread.c\nindex 20889b6196c9..908e726d16cc 100644\n--- a/lib/librte_eal/windows/eal_thread.c\n+++ b/lib/librte_eal/windows/eal_thread.c\n@@ -17,34 +17,34 @@\n #include \"eal_windows.h\"\n \n /*\n- * Send a message to a slave lcore identified by slave_id to call a\n+ * Send a message to a worker lcore identified by worker_id to call a\n  * function f with argument arg. Once the execution is done, the\n  * remote lcore switch in FINISHED state.\n  */\n int\n-rte_eal_remote_launch(lcore_function_t *f, void *arg, unsigned int slave_id)\n+rte_eal_remote_launch(lcore_function_t *f, void *arg, unsigned int worker_id)\n {\n \tint n;\n \tchar c = 0;\n-\tint m2s = lcore_config[slave_id].pipe_master2slave[1];\n-\tint s2m = lcore_config[slave_id].pipe_slave2master[0];\n+\tint m2w = lcore_config[worker_id].pipe_main2worker[1];\n+\tint w2m = lcore_config[worker_id].pipe_worker2main[0];\n \n-\tif (lcore_config[slave_id].state != WAIT)\n+\tif (lcore_config[worker_id].state != WAIT)\n \t\treturn -EBUSY;\n \n-\tlcore_config[slave_id].f = f;\n-\tlcore_config[slave_id].arg = arg;\n+\tlcore_config[worker_id].f = f;\n+\tlcore_config[worker_id].arg = arg;\n \n \t/* send message */\n \tn = 0;\n \twhile (n == 0 || (n < 0 && errno == EINTR))\n-\t\tn = _write(m2s, &c, 1);\n+\t\tn = _write(m2w, &c, 1);\n \tif (n < 0)\n \t\trte_panic(\"cannot write on configuration pipe\\n\");\n \n \t/* wait ack */\n \tdo {\n-\t\tn = _read(s2m, &c, 1);\n+\t\tn = _read(w2m, &c, 1);\n \t} while (n < 0 && errno == EINTR);\n \n \tif (n <= 0)\n@@ -61,21 +61,21 @@ eal_thread_loop(void *arg __rte_unused)\n \tint n, ret;\n \tunsigned int lcore_id;\n \tpthread_t thread_id;\n-\tint m2s, s2m;\n+\tint m2w, w2m;\n \tchar cpuset[RTE_CPU_AFFINITY_STR_LEN];\n \n \tthread_id = pthread_self();\n \n \t/* retrieve our lcore_id from the configuration structure */\n-\tRTE_LCORE_FOREACH_SLAVE(lcore_id) {\n+\tRTE_LCORE_FOREACH_WORKER(lcore_id) {\n \t\tif (thread_id == lcore_config[lcore_id].thread_id)\n \t\t\tbreak;\n \t}\n \tif (lcore_id == RTE_MAX_LCORE)\n \t\trte_panic(\"cannot retrieve lcore id\\n\");\n \n-\tm2s = lcore_config[lcore_id].pipe_master2slave[0];\n-\ts2m = lcore_config[lcore_id].pipe_slave2master[1];\n+\tm2w = lcore_config[lcore_id].pipe_main2worker[0];\n+\tw2m = lcore_config[lcore_id].pipe_worker2main[1];\n \n \t__rte_thread_init(lcore_id, &lcore_config[lcore_id].cpuset);\n \n@@ -88,7 +88,7 @@ eal_thread_loop(void *arg __rte_unused)\n \n \t\t/* wait command */\n \t\tdo {\n-\t\t\tn = _read(m2s, &c, 1);\n+\t\t\tn = _read(m2w, &c, 1);\n \t\t} while (n < 0 && errno == EINTR);\n \n \t\tif (n <= 0)\n@@ -99,7 +99,7 @@ eal_thread_loop(void *arg __rte_unused)\n \t\t/* send ack */\n \t\tn = 0;\n \t\twhile (n == 0 || (n < 0 && errno == EINTR))\n-\t\t\tn = _write(s2m, &c, 1);\n+\t\t\tn = _write(w2m, &c, 1);\n \t\tif (n < 0)\n \t\t\trte_panic(\"cannot write on configuration pipe\\n\");\n \n",
    "prefixes": [
        "v3",
        "03/17"
    ]
}