From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 8F1B0A0471 for ; Mon, 12 Aug 2019 15:38:30 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 854B01BE82; Mon, 12 Aug 2019 15:38:29 +0200 (CEST) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by dpdk.org (Postfix) with ESMTP id 56FE31BE81 for ; Mon, 12 Aug 2019 15:38:28 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 12 Aug 2019 06:38:27 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,377,1559545200"; d="scan'208";a="259794609" Received: from aburakov-mobl1.ger.corp.intel.com (HELO [10.237.220.78]) ([10.237.220.78]) by orsmga001.jf.intel.com with ESMTP; 12 Aug 2019 06:38:25 -0700 To: David Marchand Cc: dev , John McNamara , Marko Kovacevic , Bruce Richardson References: <26384fad6f9afcba9d3311d1bf73e76f4577225d.1563276298.git.anatoly.burakov@intel.com> From: "Burakov, Anatoly" Message-ID: <9e3271a8-8f86-a2ea-35ee-2ed3d98c5f0f@intel.com> Date: Mon, 12 Aug 2019 14:38:25 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Subject: Re: [dpdk-dev] [PATCH] eal/freebsd: add support for base virtaddr option X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On 12-Aug-19 11:19 AM, David Marchand wrote: > On Tue, Jul 16, 2019 at 1:25 PM Anatoly Burakov > wrote: >> >> According to our docs, only Linuxapp supports base-virtaddr option. >> That is, strictly speaking, not true because most of the things >> that are attempting to respect base-virtaddr are in common files, >> so FreeBSD already *mostly* supports this option in practice. >> >> This commit fixes the remaining bits to explicitly support >> base-virtaddr option, and moves the arg parsing from EAL to common >> options parsing code. Documentation is also updated to reflect >> that all platforms now support base-virtaddr. >> >> Signed-off-by: Anatoly Burakov >> --- >> doc/guides/linux_gsg/eal_args.include.rst | 6 +++ >> doc/guides/linux_gsg/linux_eal_parameters.rst | 6 --- >> doc/guides/rel_notes/release_19_08.rst | 5 +++ >> lib/librte_eal/common/eal_common_options.c | 38 ++++++++++++++++++ >> lib/librte_eal/freebsd/eal/eal.c | 13 ++++++- >> lib/librte_eal/linux/eal/eal.c | 39 ------------------- >> 6 files changed, 60 insertions(+), 47 deletions(-) >> >> diff --git a/doc/guides/linux_gsg/eal_args.include.rst b/doc/guides/linux_gsg/eal_args.include.rst >> index cf421a56e..ed8b0e35b 100644 >> --- a/doc/guides/linux_gsg/eal_args.include.rst >> +++ b/doc/guides/linux_gsg/eal_args.include.rst >> @@ -86,6 +86,12 @@ Multiprocessing-related options >> >> Set the type of the current process. >> >> +* ``--base-virtaddr
`` >> + >> + Attempt to use a different starting address for all memory maps of the >> + primary DPDK process. This can be helpful if secondary processes cannot >> + start due to conflicts in address map. >> + > > doc/guides/freebsd_gsg/freebsd_eal_parameters.rst:.. include:: > ../linux_gsg/eal_args.include.rst > > Ok, a bit misleading to put in linux_gsg/, so writing this here if > someone else looks at this :-) This was agreed upon when this file was first introduced. We don't have a "common" section and there's no real way to create it without triggering a bunch of errors in doxygen, so it was decided that putting this in a Linux GSG is the best way to do this. > > >> Memory-related options >> ~~~~~~~~~~~~~~~~~~~~~~ >> >> diff --git a/doc/guides/linux_gsg/linux_eal_parameters.rst b/doc/guides/linux_gsg/linux_eal_parameters.rst >> index c63f0f49a..b2cc60e44 100644 >> --- a/doc/guides/linux_gsg/linux_eal_parameters.rst >> +++ b/doc/guides/linux_gsg/linux_eal_parameters.rst >> @@ -49,12 +49,6 @@ Multiprocessing-related options >> allows running multiple independent DPDK primary/secondary processes under >> different prefixes. >> >> -* ``--base-virtaddr
`` >> - >> - Attempt to use a different starting address for all memory maps of the >> - primary DPDK process. This can be helpful if secondary processes cannot >> - start due to conflicts in address map. >> - >> Memory-related options >> ~~~~~~~~~~~~~~~~~~~~~~ >> >> diff --git a/doc/guides/rel_notes/release_19_08.rst b/doc/guides/rel_notes/release_19_08.rst >> index 4a1fd8dd8..1b58d9282 100644 >> --- a/doc/guides/rel_notes/release_19_08.rst >> +++ b/doc/guides/rel_notes/release_19_08.rst >> @@ -56,6 +56,11 @@ New Features >> Also, make sure to start the actual text at the margin. >> ========================================================= >> >> +* **FreeBSD now supports `--base-virtaddr` EAL option.** >> + >> + FreeBSD version now also supports setting base virtual address for mapping >> + pages and resources into its address space. >> + >> * **Added MCS lock.** >> >> MCS lock provides scalability by spinning on a CPU/thread local variable > > Well, obviously, this needs some rebase on 19.11-rc0 :-) Yes, will do. > >> diff --git a/lib/librte_eal/common/eal_common_options.c b/lib/librte_eal/common/eal_common_options.c >> index 512d5088e..156e48e19 100644 >> --- a/lib/librte_eal/common/eal_common_options.c >> +++ b/lib/librte_eal/common/eal_common_options.c >> @@ -20,6 +20,7 @@ >> #include >> #include >> - rte_mem_cfg_addr = mmap(NULL, sizeof(*rte_config.mem_config), >> - PROT_READ | PROT_WRITE, MAP_SHARED, mem_cfg_fd, 0); >> + rte_mem_cfg_addr = mmap(rte_mem_cfg_addr, >> + sizeof(*rte_config.mem_config), PROT_READ | PROT_WRITE, >> + MAP_SHARED, mem_cfg_fd, 0); >> >> if (rte_mem_cfg_addr == MAP_FAILED){ >> RTE_LOG(ERR, EAL, "Cannot mmap memory for rte_config\n"); > > Nit: when compared to Linux implementation, the reattach step does not > recommend using the --base-virtaddr in case the remmapping failed. > Good catch, will fix. > >> diff --git a/lib/librte_eal/linux/eal/eal.c b/lib/librte_eal/linux/eal/eal.c >> index 2e5499f9b..79f5d70c3 100644 >> --- a/lib/librte_eal/linux/eal/eal.c >> +++ b/lib/librte_eal/linux/eal/eal.c >> @@ -609,35 +609,6 @@ eal_parse_socket_arg(char *strval, volatile uint64_t *socket_arg) >> return 0; >> } > > > Reviewed-by: David Marchand > -- Thanks, Anatoly