mem: explicitly initialise shared locks
Checks
Commit Message
Locks in the DPDK shared memory were not initialised so far.
This is not really a problem as the early_mem_config structure is stored
in the bss section (and so set to 0 by default).
Yet, for consistency, explicitly initialise those locks with relevant
initialiser macros.
Suggested-by: Thomas Monjalon <thomas@monjalon.net>
Signed-off-by: David Marchand <david.marchand@redhat.com>
---
lib/eal/common/eal_common_config.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
Comments
Acked-by: Chengwen Feng <fengchengwen@huawei.com>
On 2023/10/27 16:00, David Marchand wrote:
> Locks in the DPDK shared memory were not initialised so far.
> This is not really a problem as the early_mem_config structure is stored
> in the bss section (and so set to 0 by default).
> Yet, for consistency, explicitly initialise those locks with relevant
> initialiser macros.
>
> Suggested-by: Thomas Monjalon <thomas@monjalon.net>
> Signed-off-by: David Marchand <david.marchand@redhat.com>
> ---
> lib/eal/common/eal_common_config.c | 9 ++++++++-
> 1 file changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/lib/eal/common/eal_common_config.c b/lib/eal/common/eal_common_config.c
> index 0daf0f3188..2d6c04a49a 100644
> --- a/lib/eal/common/eal_common_config.c
> +++ b/lib/eal/common/eal_common_config.c
> @@ -8,7 +8,14 @@
> #include "eal_memcfg.h"
>
> /* early configuration structure, when memory config is not mmapped */
> -static struct rte_mem_config early_mem_config;
> +static struct rte_mem_config early_mem_config = {
> + .mlock = RTE_RWLOCK_INITIALIZER,
> + .qlock = RTE_RWLOCK_INITIALIZER,
> + .mplock = RTE_RWLOCK_INITIALIZER,
> + .tlock = RTE_SPINLOCK_INITIALIZER,
> + .ethdev_lock = RTE_SPINLOCK_INITIALIZER,
> + .memory_hotplug_lock = RTE_RWLOCK_INITIALIZER,
> +};
>
> /* Address of global and public configuration */
> static struct rte_config rte_config = {
>
On Fri, Oct 27, 2023 at 10:01 AM David Marchand
<david.marchand@redhat.com> wrote:
>
> Locks in the DPDK shared memory were not initialised so far.
> This is not really a problem as the early_mem_config structure is stored
> in the bss section (and so set to 0 by default).
> Yet, for consistency, explicitly initialise those locks with relevant
> initialiser macros.
>
> Suggested-by: Thomas Monjalon <thomas@monjalon.net>
> Signed-off-by: David Marchand <david.marchand@redhat.com>
> Acked-by: Chengwen Feng <fengchengwen@huawei.com>
Applied, thanks.
@@ -8,7 +8,14 @@
#include "eal_memcfg.h"
/* early configuration structure, when memory config is not mmapped */
-static struct rte_mem_config early_mem_config;
+static struct rte_mem_config early_mem_config = {
+ .mlock = RTE_RWLOCK_INITIALIZER,
+ .qlock = RTE_RWLOCK_INITIALIZER,
+ .mplock = RTE_RWLOCK_INITIALIZER,
+ .tlock = RTE_SPINLOCK_INITIALIZER,
+ .ethdev_lock = RTE_SPINLOCK_INITIALIZER,
+ .memory_hotplug_lock = RTE_RWLOCK_INITIALIZER,
+};
/* Address of global and public configuration */
static struct rte_config rte_config = {