[dpdk-dev,v1] doc: update definition of lcore id and lcore index

Message ID 20180131164646.16603-1-marko.kovacevic@intel.com (mailing list archive)
State Superseded, archived
Delegated to: Thomas Monjalon
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Kovacevic, Marko Jan. 31, 2018, 4:46 p.m. UTC
  Added examples in lcore index for better
explanation on various examples,
Sited examples for lcore id.

Signed-off-by: Marko Kovacevic <marko.kovacevic@intel.com>
---
 lib/librte_eal/common/include/rte_lcore.h | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)
  

Comments

Bruce Richardson Feb. 1, 2018, 3:04 p.m. UTC | #1
On Wed, Jan 31, 2018 at 04:46:46PM +0000, Marko Kovacevic wrote:
> Added examples in lcore index for better
> explanation on various examples,
> Sited examples for lcore id.
> 
> Signed-off-by: Marko Kovacevic <marko.kovacevic@intel.com>
> ---
>  lib/librte_eal/common/include/rte_lcore.h | 17 +++++++++++++++--
>  1 file changed, 15 insertions(+), 2 deletions(-)
> 
> diff --git a/lib/librte_eal/common/include/rte_lcore.h b/lib/librte_eal/common/include/rte_lcore.h
> index d84bcff..349ac36 100644
> --- a/lib/librte_eal/common/include/rte_lcore.h
> +++ b/lib/librte_eal/common/include/rte_lcore.h
> @@ -57,7 +57,9 @@ RTE_DECLARE_PER_LCORE(unsigned, _lcore_id);  /**< Per thread "lcore id". */
>  RTE_DECLARE_PER_LCORE(rte_cpuset_t, _cpuset); /**< Per thread "cpuset". */
>  
>  /**
> - * Return the ID of the execution unit we are running on.
> + * Return the Application thread ID of the execution unit.
> + * If option '-l' or '-c' is provided the lcore ID is the actual
> + * CPU ID.

Good idea to clarify this!
I'd suggest the second sentence might do with being reworked a little
though - the lcore ID will also be the processor id even if no args i.e.
no -c or -l arguments are passed.

How about:
 * Note: in most cases the lcore id returned here will also correspond
 *   to the processor id of the CPU on which the thread is pinned, this
 *   will not be the case if the user has explicitly changed the thread to
 *   core affinities using --lcores EAL argument e.g. --lcores '(0-3)@10'
 *   to run threads with lcore IDs 0, 1, 2 and 3 on physical core 10.

It's longer, I know, but hopefully a bit clearer for the user.

/Bruce
  

Patch

diff --git a/lib/librte_eal/common/include/rte_lcore.h b/lib/librte_eal/common/include/rte_lcore.h
index d84bcff..349ac36 100644
--- a/lib/librte_eal/common/include/rte_lcore.h
+++ b/lib/librte_eal/common/include/rte_lcore.h
@@ -57,7 +57,9 @@  RTE_DECLARE_PER_LCORE(unsigned, _lcore_id);  /**< Per thread "lcore id". */
 RTE_DECLARE_PER_LCORE(rte_cpuset_t, _cpuset); /**< Per thread "cpuset". */
 
 /**
- * Return the ID of the execution unit we are running on.
+ * Return the Application thread ID of the execution unit.
+ * If option '-l' or '-c' is provided the lcore ID is the actual
+ * CPU ID.
  * @return
  *  Logical core ID (in EAL thread) or LCORE_ID_ANY (in non-EAL thread)
  */
@@ -94,8 +96,19 @@  rte_lcore_count(void)
 
 /**
  * Return the index of the lcore starting from zero.
- * The order is physical or given by command line (-l option).
  *
+ * For example: <Core parameters - Mapping description>
+ * 1. '-c 0xf0' - CPU core ID 4 is index 0, 5
+ * is 1 and so on.
+ *
+ * 2. '-l 22-25' - CPU core ID 22 is index 0
+ * 23 is 1 and so on.
+ *
+ * 3. '-l 22,18' - CPU core ID 22 is index 0 and
+ * 18 is 1
+ *
+ * 4. '-c 0xcc' - CPU core ID 2 is index 0, 3 is index 1,
+ * 6 is index 2 and 7 is index 3.
  * @param lcore_id
  *   The targeted lcore, or -1 for the current one.
  * @return