On Thu, Jun 27, 2019 at 1:39 PM Anatoly Burakov <anatoly.bura...@intel.com>
wrote:

> diff --git a/lib/librte_eal/common/include/rte_eal_memconfig.h
> b/lib/librte_eal/common/include/rte_eal_memconfig.h
> index 58dcbb96d..1b615c892 100644
> --- a/lib/librte_eal/common/include/rte_eal_memconfig.h
> +++ b/lib/librte_eal/common/include/rte_eal_memconfig.h
> @@ -5,13 +5,12 @@
>  #ifndef _RTE_EAL_MEMCONFIG_H_
>  #define _RTE_EAL_MEMCONFIG_H_
>
> -#include <rte_config.h>
> -#include <rte_tailq.h>
> -#include <rte_memory.h>
> -#include <rte_memzone.h>
> -#include <rte_malloc_heap.h>
> -#include <rte_rwlock.h>
> -#include <rte_pause.h>
> +/**
> + * @file
> + *
> + * This API allows access to EAL shared memory configuration through an
> API.
> + */
> +
>  #include <rte_fbarray.h>
>
>  #ifdef __cplusplus
> @@ -38,68 +37,6 @@ struct rte_memseg_list {
>         struct rte_fbarray memseg_arr;
>  };
>
>
You left the rte_memseg_list definition here and the inclusion of
rte_fbarray.h.
Is this intentional?

I would expect it to be defined in a header like rte_memory.h.
If you agree, this could be done in a follow-up patch.



-/**
> - * the structure for the memory configuration for the RTE.
> - * Used by the rte_config structure. It is separated out, as for
> multi-process
> - * support, the memory details should be shared across instances
> - */
> -struct rte_mem_config {
> -       volatile uint32_t magic;   /**< Magic number - Sanity check. */
> -
> -       /* memory topology */
> -       uint32_t nchannel;    /**< Number of channels (0 if unknown). */
> -       uint32_t nrank;       /**< Number of ranks (0 if unknown). */
> -
> -       /**
> -        * current lock nest order
> -        *  - qlock->mlock (ring/hash/lpm)
> -        *  - mplock->qlock->mlock (mempool)
> -        * Notice:
> -        *  *ALWAYS* obtain qlock first if having to obtain both qlock and
> mlock
> -        */
> -       rte_rwlock_t mlock;   /**< only used by memzone LIB for
> thread-safe. */
> -       rte_rwlock_t qlock;   /**< used for tailq operation for thread
> safe. */
> -       rte_rwlock_t mplock;  /**< only used by mempool LIB for
> thread-safe. */
> -
> -       rte_rwlock_t memory_hotplug_lock;
> -       /**< indicates whether memory hotplug request is in progress. */
> -
> -       /* memory segments and zones */
> -       struct rte_fbarray memzones; /**< Memzone descriptors. */
> -
> -       struct rte_memseg_list memsegs[RTE_MAX_MEMSEG_LISTS];
> -       /**< list of dynamic arrays holding memsegs */
> -
> -       struct rte_tailq_head tailq_head[RTE_MAX_TAILQ]; /**< Tailqs for
> objects */
> -
> -       /* Heaps of Malloc */
> -       struct malloc_heap malloc_heaps[RTE_MAX_HEAPS];
> -
> -       /* next socket ID for external malloc heap */
> -       int next_socket_id;
> -
> -       /* address of mem_config in primary process. used to map shared
> config into
> -        * exact same address the primary process maps it.
> -        */
> -       uint64_t mem_cfg_addr;
> -
> -       /* legacy mem and single file segments options are shared */
> -       uint32_t legacy_mem;
> -       uint32_t single_file_segments;
> -
> -       /* keeps the more restricted dma mask */
> -       uint8_t dma_maskbits;
> -} __attribute__((__packed__));
> -
> -
> -inline static void
> -rte_eal_mcfg_wait_complete(struct rte_mem_config* mcfg)
> -{
> -       /* wait until shared mem_config finish initialising */
> -       while(mcfg->magic != RTE_MAGIC)
> -               rte_pause();
> -}
> -
>  /**
>   * Lock the internal EAL shared memory configuration for shared access.
>   */
>

-- 
David Marchand

Reply via email to