DPDK patches and discussions
 help / color / mirror / Atom feed
From: Thomas Monjalon <thomas@monjalon.net>
To: Tal Shnaiderman <talshn@mellanox.com>
Cc: dev@dpdk.org, pallavi.kadam@intel.com, dmitry.kozliuk@gmail.com,
	david.marchand@redhat.com, grive@u256.net,
	ranjit.menon@intel.com, navasile@linux.microsoft.com,
	harini.ramakrishnan@microsoft.com, ocardona@microsoft.com,
	anatoly.burakov@intel.com, fady@mellanox.com,
	bruce.richardson@intel.com
Subject: Re: [dpdk-dev] [PATCH v9 01/10] eal: move OS common config objects
Date: Thu, 25 Jun 2020 16:18:09 +0200
Message-ID: <2001711.5IMlzu0qbX@thomas> (raw)
In-Reply-To: <20200624082847.21344-2-talshn@mellanox.com>

24/06/2020 10:28, talshn@mellanox.com:
> +void

Could check the size in the function and return an error and log,
instead of doing the check prior the call.

> +eal_set_runtime_dir(char *run_dir, size_t size)
> +{
> +	strncpy(runtime_dir, run_dir, size);

strlcpy would be better

[...]
> +void
> +eal_config_remap(void *mem_cfg_addr)

"remap" word may be confusing.
What about "eal_config_switch"?

> +{
> +	memcpy(mem_cfg_addr, &early_mem_config, sizeof(early_mem_config));

After review with David, another proposal:
Instead of creating this function,
we could just reference early_mem_config thanks to the getter:
	rte_eal_get_configuration()->mem_config

> +	rte_config.mem_config = mem_cfg_addr;
> +
> +	/* store address of the config in the config itself so that secondary
> +	 * processes could later map the config into this exact location
> +	 */
> +	rte_config.mem_config->mem_cfg_addr = (uintptr_t) mem_cfg_addr;
> +
> +	rte_config.mem_config->dma_maskbits = 0;
> +}

[...]
> --- a/lib/librte_eal/common/eal_common_dynmem.c
> +++ b/lib/librte_eal/common/eal_common_dynmem.c
> +	struct internal_config *internal_conf =
> +			eal_get_internal_configuration();

single or double indent for assignments?

[...]
> @@ -362,13 +368,16 @@ eal_dynmem_calc_num_pages_per_socket(
>  	unsigned int requested, available;
>  	int total_num_pages = 0;
>  	uint64_t remaining_mem, cur_mem;
> -	uint64_t total_mem = internal_config.memory;
> +	const struct internal_config *internal_conf =
> +			eal_get_internal_configuration();
> +
> +	uint64_t total_mem = internal_conf->memory;

Why this line is moved and separated with a blank line?

[...]
> @@ -491,7 +504,10 @@ int
>  rte_mem_alloc_validator_unregister(const char *name, int socket_id)
>  {
>  	/* FreeBSD boots with legacy mem enabled by default */

This comment must be moved.

> -	if (internal_config.legacy_mem) {
> +	const struct internal_config *internal_conf =
> +			eal_get_internal_configuration();
> +
> +	if (internal_conf->legacy_mem) {
>  		RTE_LOG(DEBUG, EAL, "Registering mem alloc validators not supported\n");

[...]
> -	internal_config.base_virtaddr =
> +	internal_conf->base_virtaddr =
>  		RTE_PTR_ALIGN_CEIL((uintptr_t)addr, (size_t)RTE_PGSIZE_16M);

This assignment had a single indent tab.
Better to be consistent with the new assignments:
[...]
> +	struct internal_config *internal_conf =
> +			eal_get_internal_configuration();

[...]
> @@ -807,7 +815,10 @@ rte_mp_sendmsg(struct rte_mp_msg *msg)
>  	if (check_input(msg) != 0)
>  		return -1;
>  
> -	if (internal_config.no_shconf) {
> +	const struct internal_config *internal_conf =
> +			eal_get_internal_configuration();

Please declare variable at the top of the function.

[...]
> --- a/lib/librte_eal/freebsd/eal.c
> +++ b/lib/librte_eal/freebsd/eal.c
> @@ -287,13 +252,7 @@ rte_eal_config_create(void)
>  		return -1;
>  	}
>  
> -	memcpy(rte_mem_cfg_addr, &early_mem_config, sizeof(early_mem_config));
> -	rte_config.mem_config = rte_mem_cfg_addr;
> -
> -	/* store address of the config in the config itself so that secondary
> -	 * processes could later map the config into this exact location
> -	 */
> -	rte_config.mem_config->mem_cfg_addr = (uintptr_t) rte_mem_cfg_addr;
> +	eal_config_remap(rte_mem_cfg_addr);

As described above, we could keep this code in the OS implementation,
and manage to get early_mem_config with the existing getter
rte_eal_get_configuration()->mem_config.

[...]
> @@ -443,7 +447,10 @@ close_hugefile(int fd, char *path, int list_idx)
>  	 * primary process must unlink the file, but only when not in in-memory
>  	 * mode (as in that case there is no file to unlink).
>  	 */
> -	if (!internal_config.in_memory &&
> +	const struct internal_config *internal_conf =
> +			eal_get_internal_configuration();

Better to declare the variable at the top
and keep the comment close to the next lines.

> +
> +	if (!internal_conf->in_memory &&
>  			rte_eal_process_type() == RTE_PROC_PRIMARY &&
>  			unlink(path))
>  		RTE_LOG(ERR, EAL, "%s(): unlinking '%s' failed: %s\n",


Thank you for the cleanup.
Next step will be to review the namespace of the internal functions,
the organization of the internal structures,
and probably add more getter functions.
There are a lot of cleanup to do in EAL. Any help is welcome!



  reply	other threads:[~2020-06-25 14:18 UTC|newest]

Thread overview: 92+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-09 10:31 [dpdk-dev] [PATCH v5 0/8] Windows bus/pci support talshn
2020-06-09 10:31 ` [dpdk-dev] [PATCH v5 1/8] eal: move OS common functions to single file talshn
2020-06-16  8:46   ` David Marchand
2020-06-18 21:15   ` [dpdk-dev] [PATCH v6 0/9] Windows bus/pci support talshn
2020-06-18 21:15     ` [dpdk-dev] [PATCH v6 1/9] eal: move OS common functions to single file talshn
2020-06-20 19:01       ` Dmitry Kozlyuk
2020-06-21 10:26       ` [dpdk-dev] [PATCH v7 0/9] Windows bus/pci support talshn
2020-06-21 10:26         ` [dpdk-dev] [PATCH v7 1/9] eal: move OS common functions to single file talshn
2020-06-22  7:55           ` [dpdk-dev] [PATCH v8 0/9] Windows bus/pci support talshn
2020-06-22  7:55             ` [dpdk-dev] [PATCH v8 1/9] eal: move OS common functions to single file talshn
2020-06-22 14:54               ` Thomas Monjalon
2020-06-23  6:45                 ` Tal Shnaiderman
2020-06-23  7:16                   ` Thomas Monjalon
2020-06-24  8:28               ` [dpdk-dev] [PATCH v9 00/10] Windows bus/pci support talshn
2020-06-24  8:28                 ` [dpdk-dev] [PATCH v9 01/10] eal: move OS common config objects talshn
2020-06-25 14:18                   ` Thomas Monjalon [this message]
2020-06-24  8:28                 ` [dpdk-dev] [PATCH v9 02/10] eal: move OS common options functions talshn
2020-06-25 14:29                   ` Thomas Monjalon
2020-06-24  8:28                 ` [dpdk-dev] [PATCH v9 03/10] pci: use OS generic memory mapping functions talshn
2020-06-24  8:28                 ` [dpdk-dev] [PATCH v9 04/10] pci: build on Windows talshn
2020-06-24  8:28                 ` [dpdk-dev] [PATCH v9 05/10] pci: fix format warning " talshn
2020-06-25 12:54                   ` Thomas Monjalon
2020-06-24  8:28                 ` [dpdk-dev] [PATCH v9 06/10] drivers: ignore pmdinfogen generation for Windows talshn
2020-06-24  8:28                 ` [dpdk-dev] [PATCH v9 07/10] drivers: fix incorrect meson import folder " talshn
2020-06-24  8:28                 ` [dpdk-dev] [PATCH v9 08/10] bus/pci: introduce Windows support with stubs talshn
2020-06-24  8:28                 ` [dpdk-dev] [PATCH v9 09/10] bus/pci: support Windows with bifurcated drivers talshn
2020-06-27  1:46                   ` Narcisa Ana Maria Vasile
2020-06-28 12:10                     ` Tal Shnaiderman
2020-06-24  8:28                 ` [dpdk-dev] [PATCH v9 10/10] build: generate version.map file for MinGW on Windows talshn
2020-06-27  1:54                 ` [dpdk-dev] [PATCH v9 00/10] Windows bus/pci support Narcisa Ana Maria Vasile
2020-06-28 12:32                   ` Tal Shnaiderman
2020-06-29 12:37                 ` [dpdk-dev] [PATCH v10 " talshn
2020-06-29 12:37                   ` [dpdk-dev] [PATCH v10 01/10] eal: move OS common config objects talshn
2020-06-29 15:36                     ` Tal Shnaiderman
2020-06-29 12:37                   ` [dpdk-dev] [PATCH v10 02/10] eal: move OS common options functions talshn
2020-06-29 12:37                   ` [dpdk-dev] [PATCH v10 03/10] pci: use OS generic memory mapping functions talshn
2020-06-29 12:37                   ` [dpdk-dev] [PATCH v10 04/10] pci: build on Windows talshn
2020-06-29 12:37                   ` [dpdk-dev] [PATCH v10 05/10] pci: fix format warning " talshn
2020-06-29 12:37                   ` [dpdk-dev] [PATCH v10 06/10] drivers: ignore pmdinfogen generation for Windows talshn
2020-06-29 12:37                   ` [dpdk-dev] [PATCH v10 07/10] drivers: fix incorrect meson import folder " talshn
2020-06-29 12:37                   ` [dpdk-dev] [PATCH v10 08/10] bus/pci: introduce Windows support with stubs talshn
2020-06-29 20:40                     ` Thomas Monjalon
2020-06-29 12:37                   ` [dpdk-dev] [PATCH v10 09/10] bus/pci: support Windows with bifurcated drivers talshn
2020-06-29 12:37                   ` [dpdk-dev] [PATCH v10 10/10] build: generate version.map file for MinGW on Windows talshn
2020-06-29 22:07                   ` [dpdk-dev] [PATCH v10 00/10] Windows bus/pci support Thomas Monjalon
2020-06-22  7:55             ` [dpdk-dev] [PATCH v8 2/9] pci: use OS generic memory mapping functions talshn
2020-06-22 21:54               ` Dmitry Kozlyuk
2020-06-22  7:55             ` [dpdk-dev] [PATCH v8 3/9] pci: build on Windows talshn
2020-06-22  7:55             ` [dpdk-dev] [PATCH v8 4/9] pci: fix format warning " talshn
2020-06-22  7:55             ` [dpdk-dev] [PATCH v8 5/9] drivers: ignore pmdinfogen generation for Windows talshn
2020-06-22  7:55             ` [dpdk-dev] [PATCH v8 6/9] drivers: fix incorrect meson import folder " talshn
2020-06-22  7:55             ` [dpdk-dev] [PATCH v8 7/9] bus/pci: introduce Windows support with stubs talshn
2020-06-22  7:55             ` [dpdk-dev] [PATCH v8 8/9] bus/pci: support Windows with bifurcated drivers talshn
2020-06-23 23:28               ` Dmitry Kozlyuk
2020-06-24  8:02                 ` Tal Shnaiderman
2020-06-22  7:55             ` [dpdk-dev] [PATCH v8 9/9] build: generate version.map file for MinGW on Windows talshn
2020-06-21 10:26         ` [dpdk-dev] [PATCH v7 2/9] pci: use OS generic memory mapping functions talshn
2020-06-21 10:26         ` [dpdk-dev] [PATCH v7 3/9] pci: build on Windows talshn
2020-06-21 10:26         ` [dpdk-dev] [PATCH v7 4/9] pci: fix format warning " talshn
2020-06-21 10:26         ` [dpdk-dev] [PATCH v7 5/9] drivers: ignore pmdinfogen generation for Windows talshn
2020-06-21 10:26         ` [dpdk-dev] [PATCH v7 6/9] drivers: fix incorrect meson import folder " talshn
2020-06-21 10:26         ` [dpdk-dev] [PATCH v7 7/9] bus/pci: introduce Windows support with stubs talshn
2020-06-21 11:23           ` Fady Bader
2020-06-21 10:26         ` [dpdk-dev] [PATCH v7 8/9] bus/pci: support Windows with bifurcated drivers talshn
2020-06-21 10:26         ` [dpdk-dev] [PATCH v7 9/9] build: generate version.map file for MinGW on Windows talshn
2020-06-18 21:15     ` [dpdk-dev] [PATCH v6 2/9] pci: use OS generic memory mapping functions talshn
2020-06-18 22:44       ` Dmitry Kozlyuk
2020-06-18 21:15     ` [dpdk-dev] [PATCH v6 3/9] pci: build on Windows talshn
2020-06-18 21:15     ` [dpdk-dev] [PATCH v6 4/9] pci: fix format warning " talshn
2020-06-18 21:15     ` [dpdk-dev] [PATCH v6 5/9] drivers: ignore pmdinfogen generation for Windows talshn
2020-06-18 21:15     ` [dpdk-dev] [PATCH v6 6/9] drivers: fix incorrect meson import folder " talshn
2020-06-18 21:15     ` [dpdk-dev] [PATCH v6 7/9] bus/pci: introduce Windows support with stubs talshn
2020-06-18 21:15     ` [dpdk-dev] [PATCH v6 8/9] bus/pci: support Windows with bifurcated drivers talshn
2020-06-18 22:40       ` Dmitry Kozlyuk
2020-06-18 21:15     ` [dpdk-dev] [PATCH v6 9/9] build: generate version.map file for MingW on Windows talshn
2020-06-18 23:13       ` Dmitry Kozlyuk
2020-06-21  6:36         ` Tal Shnaiderman
2020-06-20 18:54       ` Dmitry Kozlyuk
2020-06-21  5:49         ` Tal Shnaiderman
2020-06-09 10:31 ` [dpdk-dev] [PATCH v5 2/8] pci: use OS generic memory mapping functions talshn
2020-06-09 10:31 ` [dpdk-dev] [PATCH v5 3/8] pci: build on Windows talshn
2020-06-16  8:22   ` Thomas Monjalon
2020-06-09 10:31 ` [dpdk-dev] [PATCH v5 4/8] pci: fix format warning " talshn
2020-06-09 10:31 ` [dpdk-dev] [PATCH v5 5/8] drivers: ignore pmdinfogen generation for Windows talshn
2020-06-17 20:39   ` Dmitry Kozlyuk
2020-06-09 10:31 ` [dpdk-dev] [PATCH v5 6/8] drivers: fix incorrect meson import folder " talshn
2020-06-16  8:29   ` Thomas Monjalon
2020-06-16  9:17   ` Bruce Richardson
2020-06-09 10:31 ` [dpdk-dev] [PATCH v5 7/8] bus/pci: introduce Windows support with stubs talshn
2020-06-17 20:29   ` Dmitry Kozlyuk
2020-06-09 10:31 ` [dpdk-dev] [PATCH v5 8/8] bus/pci: support Windows with bifurcated drivers talshn
2020-06-17 20:28   ` Dmitry Kozlyuk

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2001711.5IMlzu0qbX@thomas \
    --to=thomas@monjalon.net \
    --cc=anatoly.burakov@intel.com \
    --cc=bruce.richardson@intel.com \
    --cc=david.marchand@redhat.com \
    --cc=dev@dpdk.org \
    --cc=dmitry.kozliuk@gmail.com \
    --cc=fady@mellanox.com \
    --cc=grive@u256.net \
    --cc=harini.ramakrishnan@microsoft.com \
    --cc=navasile@linux.microsoft.com \
    --cc=ocardona@microsoft.com \
    --cc=pallavi.kadam@intel.com \
    --cc=ranjit.menon@intel.com \
    --cc=talshn@mellanox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

DPDK patches and discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://inbox.dpdk.org/dev/0 dev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 dev dev/ https://inbox.dpdk.org/dev \
		dev@dpdk.org
	public-inbox-index dev

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://inbox.dpdk.org/inbox.dpdk.dev


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git