get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 80760,
    "url": "http://patches.dpdk.org/api/patches/80760/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20201014152756.6518-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": "<20201014152756.6518-4-stephen@networkplumber.org>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20201014152756.6518-4-stephen@networkplumber.org",
    "date": "2020-10-14T15:27:41",
    "name": "[v6,03/18] eal: rename lcore word choices",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "71fcae4699272251c8786c72b6c45581a690e5bf",
    "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/20201014152756.6518-4-stephen@networkplumber.org/mbox/",
    "series": [
        {
            "id": 12962,
            "url": "http://patches.dpdk.org/api/series/12962/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=12962",
            "date": "2020-10-14T15:27:38",
            "name": "Replace terms master/slave",
            "version": 6,
            "mbox": "http://patches.dpdk.org/series/12962/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/80760/comments/",
    "check": "warning",
    "checks": "http://patches.dpdk.org/api/patches/80760/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 1120DA04B7;\n\tWed, 14 Oct 2020 17:29:35 +0200 (CEST)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 5BC941DE9E;\n\tWed, 14 Oct 2020 17:28:13 +0200 (CEST)",
            "from mail-pg1-f194.google.com (mail-pg1-f194.google.com\n [209.85.215.194]) by dpdk.org (Postfix) with ESMTP id 0740B1DDF0\n for <dev@dpdk.org>; Wed, 14 Oct 2020 17:28:07 +0200 (CEST)",
            "by mail-pg1-f194.google.com with SMTP id r10so2189074pgb.10\n for <dev@dpdk.org>; Wed, 14 Oct 2020 08:28:06 -0700 (PDT)",
            "from hermes.local (204-195-22-127.wavecable.com. [204.195.22.127])\n by smtp.gmail.com with ESMTPSA id j11sm3653457pfh.143.2020.10.14.08.28.02\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Wed, 14 Oct 2020 08:28:02 -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=iQ/mxI8gop3RMURUEQjiH/Btilx8nEpkPIFRjMK5h4k=;\n b=P1wdYMyw4kQhel760JnbcZq0XMfd1BpVYPhiG3uDoD1aMgiMsg7cH9iDODnDwS3D8p\n 7jKwEPrI0MTrAn83GdlfrzjvL5drKmxwdJPTq8KZZGH/89ieLpk5nePvZL9gV7W9rokw\n SXHLygULFoX/ny22XE2KTxMACPjfqubf8yDDflxXX9N9A+hrm61rTeIebjSaCoA2D8s/\n vSlT6rTxizwmBl2E5EL8i1xUIC+T/p8s3HWQ72iccADOEV6fodcsOy5cgn6DrfMI/BK4\n QNJBNbUjsWGuJqGBRGnx356+hyEE7hn2eU7E1sPcB1tbWtIhiEiVzo+f22wjVGr0aUS/\n qdqQ==",
        "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=iQ/mxI8gop3RMURUEQjiH/Btilx8nEpkPIFRjMK5h4k=;\n b=Mg6yMxTENNCWXvSb+qrpoZViiEDHXwQKtKqrhZYh6y2pCZsxgCey77MaiOIXZM4qW3\n n7riYA6cFAt/y+Y+GDlbxQqPQjsKa6ZdgyszKQNk3pFmmrTjyMo13eb3lRdV9U4mg28m\n vC+zpzeITnmKMg0GwVozv8ps49gux13mfsVsONwT6u19A0Y0+9MjAlmcYIWhzXJ2NpMi\n GPHTVDNxScsOIvI1cDm0d/lfCL8KmcNEn/WvVoagdAwA9lftM5V0+ASOtXTTnUPuwrCc\n ot9nQsbrY4lV5oPN7QUf/Z1Ps+q84ENIDcofxXP96kBMhO+EV2AZqtk7CZWaIUycguAU\n m8Lw==",
        "X-Gm-Message-State": "AOAM5330a9K+z8l1jS28FF9lo0rg9aI7cnBaiFroByMQF8Krf5rJTYwn\n UceWuzZ5Oqq2r202EBIMxIJtJlKGwhYXpQ==",
        "X-Google-Smtp-Source": "\n ABdhPJxTaX5UbO4IM/qvO2Vzhp42qJlyngwA81ru9nEzhGtNhHiLobHBgPPegVuJL13VYN2ulVM1rQ==",
        "X-Received": "by 2002:a63:1061:: with SMTP id 33mr4576955pgq.204.1602689283712;\n Wed, 14 Oct 2020 08:28:03 -0700 (PDT)",
        "From": "Stephen Hemminger <stephen@networkplumber.org>",
        "To": "dev@dpdk.org",
        "Cc": "Stephen Hemminger <stephen@networkplumber.org>,\n Anatoly Burakov <anatoly.burakov@intel.com>",
        "Date": "Wed, 14 Oct 2020 08:27:41 -0700",
        "Message-Id": "<20201014152756.6518-4-stephen@networkplumber.org>",
        "X-Mailer": "git-send-email 2.27.0",
        "In-Reply-To": "<20201014152756.6518-1-stephen@networkplumber.org>",
        "References": "<20200911190701.29171-1-stephen@networkplumber.org>\n <20201014152756.6518-1-stephen@networkplumber.org>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dpdk-dev] [PATCH v6 03/18] 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\nAcked-by: Anatoly Burakov <anatoly.burakov@intel.com>\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 | 64 ++++++++++++----------\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, 230 insertions(+), 211 deletions(-)",
    "diff": "diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst\nindex 584e72087934..7271e9ca4d39 100644\n--- a/doc/guides/rel_notes/deprecation.rst\n+++ b/doc/guides/rel_notes/deprecation.rst\n@@ -20,25 +20,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 71665c1de65f..bbc64ea2e3a6 100644\n--- a/doc/guides/rel_notes/release_20_11.rst\n+++ b/doc/guides/rel_notes/release_20_11.rst\n@@ -298,6 +298,17 @@ API Changes\n \n * bpf: ``RTE_BPF_XTYPE_NUM`` has been dropped from ``rte_bpf_xtype``.\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..d221886eb22c 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,25 +837,25 @@ 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\t\t\"Error: Main lcore is used as a service core\\n\");\n \t\treturn -1;\n \t}\n \n@@ -1593,9 +1594,14 @@ 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\t\t\tOPT_MAIN_LCORE \"\\n\");\n \t\t\treturn -1;\n \t\t}\n \t\tbreak;\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,8 +1828,8 @@ 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-\t\tRTE_LOG(ERR, EAL, \"Master lcore is not enabled for DPDK\\n\");\n+\tif (cfg->lcore_role[cfg->main_lcore] != ROLE_RTE) {\n+\t\tRTE_LOG(ERR, EAL, \"Main lcore is not enabled for DPDK\\n\");\n \t\treturn -1;\n \t}\n \n@@ -1921,7 +1927,7 @@ eal_common_usage(void)\n \t       \"                      '( )' can be omitted for single element group,\\n\"\n \t       \"                      '@' can be omitted if cpus and lcores have the same value\\n\"\n \t       \"  -s SERVICE COREMASK Hexadecimal bitmask of cores to be used as service cores\\n\"\n-\t       \"  --\"OPT_MASTER_LCORE\" ID   Core ID that is used as master\\n\"\n+\t       \"  --\"OPT_MAIN_LCORE\" ID     Core ID that is used as main\\n\"\n \t       \"  --\"OPT_MBUF_POOL_OPS_NAME\" Pool ops name for mbuf to use\\n\"\n \t       \"  -n CHANNELS         Number of memory channels\\n\"\n \t       \"  -m MB               Memory to allocate (see also --\"OPT_SOCKET_MEM\")\\n\"\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 b2c5416b331d..ce21c2242a22 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 98565bbef340..6c955d319ad4 100644\n--- a/lib/librte_eal/common/rte_service.c\n+++ b/lib/librte_eal/common/rte_service.c\n@@ -107,7 +107,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 ccea60afe77b..d6ea02375025 100644\n--- a/lib/librte_eal/freebsd/eal.c\n+++ b/lib/librte_eal/freebsd/eal.c\n@@ -625,10 +625,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@@ -851,29 +851,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@@ -886,7 +886,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@@ -896,10 +896,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 e3c2ef185eed..0ae12cf4fbac 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 19df549d29be..495ae1ee1d61 100644\n--- a/lib/librte_eal/include/rte_eal_trace.h\n+++ b/lib/librte_eal/include/rte_eal_trace.h\n@@ -264,10 +264,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..22a901ce62f6 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 int 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 9cf0e2ec0137..1c9dd8db1e6a 100644\n--- a/lib/librte_eal/linux/eal.c\n+++ b/lib/librte_eal/linux/eal.c\n@@ -883,10 +883,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@@ -1215,28 +1215,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@@ -1249,7 +1249,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@@ -1263,10 +1263,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..83c2034b93d5 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 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 \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 a93dea9fe616..33ee2748ede0 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": [
        "v6",
        "03/18"
    ]
}