All of lore.kernel.org
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH 0/4] Support librte_mbuf on Windows
@ 2020-06-01  9:38 talshn
  2020-06-01  9:38 ` [dpdk-dev] [PATCH 1/4] eal: move OS common config code to single file talshn
                   ` (3 more replies)
  0 siblings, 4 replies; 17+ messages in thread
From: talshn @ 2020-06-01  9:38 UTC (permalink / raw)
  To: dev
  Cc: thomas, pallavi.kadam, dmitry.kozliuk, david.marchand,
	olivier.matz, ranjit.menon, navasile, fady, harini.ramakrishnan,
	ocardona, Tal Shnaiderman

From: Tal Shnaiderman <talshn@mellanox.com>

This patchset enables compilation and build of librte_mbuf on Windows.

Depends-on: series-10276 ("build mempool on Windows")
Depends-on: series-10156 ("Windows bus/pci support")

Tal Shnaiderman (4):
  eal: move OS common config code to single file
  eal: set byteorder in Windows to little endian
  eal: export needed functions for mbuf
  mbuf: build on Windows

 lib/librte_eal/common/eal_common_config.c      | 11 +++++++++++
 lib/librte_eal/common/meson.build              |  1 +
 lib/librte_eal/freebsd/eal.c                   | 10 ----------
 lib/librte_eal/include/generic/rte_byteorder.h |  4 +++-
 lib/librte_eal/linux/eal.c                     | 10 ----------
 lib/librte_eal/rte_eal_exports.def             |  3 +++
 lib/librte_eal/rte_eal_version.map             |  1 +
 lib/librte_eal/windows/eal.c                   |  3 ---
 lib/meson.build                                |  3 +--
 9 files changed, 20 insertions(+), 26 deletions(-)

-- 
2.16.1.windows.4


^ permalink raw reply	[flat|nested] 17+ messages in thread

* [dpdk-dev] [PATCH 1/4] eal: move OS common config code to single file
  2020-06-01  9:38 [dpdk-dev] [PATCH 0/4] Support librte_mbuf on Windows talshn
@ 2020-06-01  9:38 ` talshn
  2020-06-25 15:24   ` [dpdk-dev] [PATCH v2 0/3] Support librte_mbuf on Windows talshn
  2020-06-01  9:38 ` [dpdk-dev] [PATCH 2/4] eal: set byteorder in Windows to little endian talshn
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 17+ messages in thread
From: talshn @ 2020-06-01  9:38 UTC (permalink / raw)
  To: dev
  Cc: thomas, pallavi.kadam, dmitry.kozliuk, david.marchand,
	olivier.matz, ranjit.menon, navasile, fady, harini.ramakrishnan,
	ocardona, Tal Shnaiderman

From: Tal Shnaiderman <talshn@mellanox.com>

Move common struct rte_config and function
rte_eal_mbuf_user_pool_ops to eal_config.

Signed-off-by: Tal Shnaiderman <talshn@mellanox.com>
---
 lib/librte_eal/common/eal_common_config.c | 11 +++++++++++
 lib/librte_eal/freebsd/eal.c              | 10 ----------
 lib/librte_eal/linux/eal.c                | 10 ----------
 lib/librte_eal/windows/eal.c              |  3 ---
 4 files changed, 11 insertions(+), 23 deletions(-)

diff --git a/lib/librte_eal/common/eal_common_config.c b/lib/librte_eal/common/eal_common_config.c
index 641c7d884c..c69a088182 100644
--- a/lib/librte_eal/common/eal_common_config.c
+++ b/lib/librte_eal/common/eal_common_config.c
@@ -1,6 +1,7 @@
 /* SPDX-License-Identifier: BSD-3-Clause
  * Copyright(c) 2020 Mellanox Technologies, Ltd
  */
+#include <eal_internal_cfg.h>
 #include <eal_private.h>
 
 #include <rte_os.h>
@@ -13,6 +14,9 @@ struct rte_config rte_config = {
 		.mem_config = &early_mem_config,
 };
 
+/* internal configuration */
+struct internal_config internal_config;
+
 const char *
 rte_eal_get_runtime_dir(void)
 {
@@ -37,3 +41,10 @@ rte_eal_process_type(void)
 {
 	return rte_config.process_type;
 }
+
+/* Return user provided mbuf pool ops name */
+const char *
+rte_eal_mbuf_user_pool_ops(void)
+{
+	return internal_config.user_mbuf_pool_ops_name;
+}
diff --git a/lib/librte_eal/freebsd/eal.c b/lib/librte_eal/freebsd/eal.c
index eab961232e..6be7414f1a 100644
--- a/lib/librte_eal/freebsd/eal.c
+++ b/lib/librte_eal/freebsd/eal.c
@@ -73,9 +73,6 @@ static struct flock wr_lock = {
 /* internal configuration (per-core) */
 struct lcore_config lcore_config[RTE_MAX_LCORE];
 
-/* internal configuration */
-struct internal_config internal_config;
-
 /* used by rte_rdtsc() */
 int rte_cycles_vmware_tsc_map;
 
@@ -141,13 +138,6 @@ eal_clean_runtime_dir(void)
 	return 0;
 }
 
-/* Return user provided mbuf pool ops name */
-const char *
-rte_eal_mbuf_user_pool_ops(void)
-{
-	return internal_config.user_mbuf_pool_ops_name;
-}
-
 /* parse a sysfs (or other) file containing one integer value */
 int
 eal_parse_sysfs_value(const char *filename, unsigned long *val)
diff --git a/lib/librte_eal/linux/eal.c b/lib/librte_eal/linux/eal.c
index 8cbb8c644c..302f0a1228 100644
--- a/lib/librte_eal/linux/eal.c
+++ b/lib/librte_eal/linux/eal.c
@@ -86,9 +86,6 @@ static struct flock wr_lock = {
 /* internal configuration (per-core) */
 struct lcore_config lcore_config[RTE_MAX_LCORE];
 
-/* internal configuration */
-struct internal_config internal_config;
-
 /* used by rte_rdtsc() */
 int rte_cycles_vmware_tsc_map;
 
@@ -230,13 +227,6 @@ eal_clean_runtime_dir(void)
 	return -1;
 }
 
-/* Return user provided mbuf pool ops name */
-const char *
-rte_eal_mbuf_user_pool_ops(void)
-{
-	return internal_config.user_mbuf_pool_ops_name;
-}
-
 /* parse a sysfs (or other) file containing one integer value */
 int
 eal_parse_sysfs_value(const char *filename, unsigned long *val)
diff --git a/lib/librte_eal/windows/eal.c b/lib/librte_eal/windows/eal.c
index 2a05f9e0da..daa238d416 100644
--- a/lib/librte_eal/windows/eal.c
+++ b/lib/librte_eal/windows/eal.c
@@ -35,9 +35,6 @@ static int mem_cfg_fd = -1;
 /* internal configuration (per-core) */
 struct lcore_config lcore_config[RTE_MAX_LCORE];
 
-/* internal configuration */
-struct internal_config internal_config;
-
 /* Detect if we are a primary or a secondary process */
 enum rte_proc_type_t
 eal_proc_type_detect(void)
-- 
2.16.1.windows.4


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [dpdk-dev] [PATCH 2/4] eal: set byteorder in Windows to little endian
  2020-06-01  9:38 [dpdk-dev] [PATCH 0/4] Support librte_mbuf on Windows talshn
  2020-06-01  9:38 ` [dpdk-dev] [PATCH 1/4] eal: move OS common config code to single file talshn
@ 2020-06-01  9:38 ` talshn
  2020-06-16  7:50   ` Thomas Monjalon
  2020-06-01  9:38 ` [dpdk-dev] [PATCH 3/4] eal: export needed functions for mbuf talshn
  2020-06-01  9:38 ` [dpdk-dev] [PATCH 4/4] mbuf: build on Windows talshn
  3 siblings, 1 reply; 17+ messages in thread
From: talshn @ 2020-06-01  9:38 UTC (permalink / raw)
  To: dev
  Cc: thomas, pallavi.kadam, dmitry.kozliuk, david.marchand,
	olivier.matz, ranjit.menon, navasile, fady, harini.ramakrishnan,
	ocardona, Tal Shnaiderman

From: Tal Shnaiderman <talshn@mellanox.com>

Set the endianness in Windows to RTE_LITTLE_ENDIAN as support
for Windows is limited to x86 architecture for now.

Signed-off-by: Tal Shnaiderman <talshn@mellanox.com>
---
 lib/librte_eal/include/generic/rte_byteorder.h | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/lib/librte_eal/include/generic/rte_byteorder.h b/lib/librte_eal/include/generic/rte_byteorder.h
index 9ca960932f..6cfdf68731 100644
--- a/lib/librte_eal/include/generic/rte_byteorder.h
+++ b/lib/librte_eal/include/generic/rte_byteorder.h
@@ -17,8 +17,10 @@
 #include <stdint.h>
 #ifdef RTE_EXEC_ENV_FREEBSD
 #include <sys/endian.h>
-#else
+#elif defined RTE_EXEC_ENV_LINUX
 #include <endian.h>
+#elif defined RTE_EXEC_ENV_WINDOWS && !defined RTE_BYTE_ORDER
+#define RTE_BYTE_ORDER RTE_LITTLE_ENDIAN
 #endif
 
 #include <rte_common.h>
-- 
2.16.1.windows.4


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [dpdk-dev] [PATCH 3/4] eal: export needed functions for mbuf
  2020-06-01  9:38 [dpdk-dev] [PATCH 0/4] Support librte_mbuf on Windows talshn
  2020-06-01  9:38 ` [dpdk-dev] [PATCH 1/4] eal: move OS common config code to single file talshn
  2020-06-01  9:38 ` [dpdk-dev] [PATCH 2/4] eal: set byteorder in Windows to little endian talshn
@ 2020-06-01  9:38 ` talshn
  2020-06-16  8:09   ` Thomas Monjalon
  2020-06-01  9:38 ` [dpdk-dev] [PATCH 4/4] mbuf: build on Windows talshn
  3 siblings, 1 reply; 17+ messages in thread
From: talshn @ 2020-06-01  9:38 UTC (permalink / raw)
  To: dev
  Cc: thomas, pallavi.kadam, dmitry.kozliuk, david.marchand,
	olivier.matz, ranjit.menon, navasile, fady, harini.ramakrishnan,
	ocardona, Tal Shnaiderman

From: Tal Shnaiderman <talshn@mellanox.com>

Export needed eal functions used by the lib.

Signed-off-by: Tal Shnaiderman <talshn@mellanox.com>
---
 lib/librte_eal/common/meson.build  | 1 +
 lib/librte_eal/rte_eal_exports.def | 3 +++
 lib/librte_eal/rte_eal_version.map | 1 +
 3 files changed, 5 insertions(+)

diff --git a/lib/librte_eal/common/meson.build b/lib/librte_eal/common/meson.build
index cf4b9e56eb..530e06033b 100644
--- a/lib/librte_eal/common/meson.build
+++ b/lib/librte_eal/common/meson.build
@@ -12,6 +12,7 @@ if is_windows
 		'eal_common_dynmem.c',
 		'eal_common_errno.c',
 		'eal_common_fbarray.c',
+		'eal_common_hexdump.c',
 		'eal_common_launch.c',
 		'eal_common_lcore.c',
 		'eal_common_log.c',
diff --git a/lib/librte_eal/rte_eal_exports.def b/lib/librte_eal/rte_eal_exports.def
index 9ebf0d641a..9b2ebbcdf5 100644
--- a/lib/librte_eal/rte_eal_exports.def
+++ b/lib/librte_eal/rte_eal_exports.def
@@ -3,6 +3,7 @@ EXPORTS
 	per_lcore__rte_errno
 	rte_calloc
 	rte_calloc_socket
+	per_lcore__lcore_id
 	per_lcore__rte_errno
 	rte_bus_register
 	rte_dev_is_probed
@@ -12,6 +13,7 @@ EXPORTS
 	rte_eal_has_hugepages
 	rte_eal_init
 	rte_eal_iova_mode
+	rte_eal_mbuf_user_pool_ops
 	rte_eal_mp_remote_launch
 	rte_eal_mp_wait_lcore
 	rte_eal_process_type
@@ -20,6 +22,7 @@ EXPORTS
 	rte_eal_tailq_register
 	rte_eal_using_phys_addrs
 	rte_free
+	rte_hexdump
 	rte_log
 	rte_malloc
 	rte_malloc_dump_stats
diff --git a/lib/librte_eal/rte_eal_version.map b/lib/librte_eal/rte_eal_version.map
index 361d4808f5..8ecef1ace1 100644
--- a/lib/librte_eal/rte_eal_version.map
+++ b/lib/librte_eal/rte_eal_version.map
@@ -394,4 +394,5 @@ EXPERIMENTAL {
 	rte_mem_unmap;
 	__emutls_v.per_lcore__rte_errno;
 	__rte_trace_mem_per_thread_alloc;
+	__emutls_v.per_lcore__lcore_id;
 };
-- 
2.16.1.windows.4


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [dpdk-dev] [PATCH 4/4] mbuf: build on Windows
  2020-06-01  9:38 [dpdk-dev] [PATCH 0/4] Support librte_mbuf on Windows talshn
                   ` (2 preceding siblings ...)
  2020-06-01  9:38 ` [dpdk-dev] [PATCH 3/4] eal: export needed functions for mbuf talshn
@ 2020-06-01  9:38 ` talshn
  3 siblings, 0 replies; 17+ messages in thread
From: talshn @ 2020-06-01  9:38 UTC (permalink / raw)
  To: dev
  Cc: thomas, pallavi.kadam, dmitry.kozliuk, david.marchand,
	olivier.matz, ranjit.menon, navasile, fady, harini.ramakrishnan,
	ocardona, Tal Shnaiderman

From: Tal Shnaiderman <talshn@mellanox.com>

Build the lib for Windows.

Signed-off-by: Tal Shnaiderman <talshn@mellanox.com>
---
 lib/meson.build | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/lib/meson.build b/lib/meson.build
index 5486628625..e1a729da8a 100644
--- a/lib/meson.build
+++ b/lib/meson.build
@@ -40,8 +40,7 @@ if is_windows
 		'kvargs',
 		'eal',
 		'ring',
-		'mempool',
-		'pci',
+		'mempool', 'mbuf', 'pci', # core
 		] # only supported libraries for windows
 endif
 
-- 
2.16.1.windows.4


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* Re: [dpdk-dev] [PATCH 2/4] eal: set byteorder in Windows to little endian
  2020-06-01  9:38 ` [dpdk-dev] [PATCH 2/4] eal: set byteorder in Windows to little endian talshn
@ 2020-06-16  7:50   ` Thomas Monjalon
  2020-06-25 13:24     ` Tal Shnaiderman
  0 siblings, 1 reply; 17+ messages in thread
From: Thomas Monjalon @ 2020-06-16  7:50 UTC (permalink / raw)
  To: Tal Shnaiderman
  Cc: dev, pallavi.kadam, dmitry.kozliuk, david.marchand, olivier.matz,
	ranjit.menon, navasile, fady, harini.ramakrishnan, ocardona

01/06/2020 11:38, talshn@mellanox.com:
> From: Tal Shnaiderman <talshn@mellanox.com>
> 
> Set the endianness in Windows to RTE_LITTLE_ENDIAN as support
> for Windows is limited to x86 architecture for now.
> 
> Signed-off-by: Tal Shnaiderman <talshn@mellanox.com>
> ---
> --- a/lib/librte_eal/include/generic/rte_byteorder.h
> +++ b/lib/librte_eal/include/generic/rte_byteorder.h
>  #ifdef RTE_EXEC_ENV_FREEBSD
>  #include <sys/endian.h>
> -#else
> +#elif defined RTE_EXEC_ENV_LINUX
>  #include <endian.h>
> +#elif defined RTE_EXEC_ENV_WINDOWS && !defined RTE_BYTE_ORDER

Why "&& !defined RTE_BYTE_ORDER" ?
How can it be defined earlier?

> +#define RTE_BYTE_ORDER RTE_LITTLE_ENDIAN
>  #endif





^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [dpdk-dev] [PATCH 3/4] eal: export needed functions for mbuf
  2020-06-01  9:38 ` [dpdk-dev] [PATCH 3/4] eal: export needed functions for mbuf talshn
@ 2020-06-16  8:09   ` Thomas Monjalon
  2020-06-16  8:33     ` Tal Shnaiderman
  0 siblings, 1 reply; 17+ messages in thread
From: Thomas Monjalon @ 2020-06-16  8:09 UTC (permalink / raw)
  To: Tal Shnaiderman
  Cc: dev, pallavi.kadam, dmitry.kozliuk, david.marchand, olivier.matz,
	ranjit.menon, navasile, fady, harini.ramakrishnan, ocardona

01/06/2020 11:38, talshn@mellanox.com:
> From: Tal Shnaiderman <talshn@mellanox.com>
> 
> Export needed eal functions used by the lib.
> 
> Signed-off-by: Tal Shnaiderman <talshn@mellanox.com>
> ---
> --- a/lib/librte_eal/rte_eal_exports.def
> +++ b/lib/librte_eal/rte_eal_exports.def
> @@ -3,6 +3,7 @@ EXPORTS
>  	per_lcore__rte_errno
>  	rte_calloc
>  	rte_calloc_socket
> +	per_lcore__lcore_id
[...]
> --- a/lib/librte_eal/rte_eal_version.map
> +++ b/lib/librte_eal/rte_eal_version.map
> @@ -394,4 +394,5 @@ EXPERIMENTAL {
>  	rte_mem_unmap;
>  	__emutls_v.per_lcore__rte_errno;
>  	__rte_trace_mem_per_thread_alloc;
> +	__emutls_v.per_lcore__lcore_id;

I'm surprised about this one in the Linux/BSD map.
Can it be removed?



^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [dpdk-dev] [PATCH 3/4] eal: export needed functions for mbuf
  2020-06-16  8:09   ` Thomas Monjalon
@ 2020-06-16  8:33     ` Tal Shnaiderman
  2020-06-16  8:45       ` Thomas Monjalon
  0 siblings, 1 reply; 17+ messages in thread
From: Tal Shnaiderman @ 2020-06-16  8:33 UTC (permalink / raw)
  To: Thomas Monjalon
  Cc: dev, pallavi.kadam, dmitry.kozliuk, david.marchand, olivier.matz,
	ranjit.menon, navasile, Fady Bader, harini.ramakrishnan,
	ocardona

> Subject: Re: [dpdk-dev] [PATCH 3/4] eal: export needed functions for mbuf
> 
> 01/06/2020 11:38, talshn@mellanox.com:
> > From: Tal Shnaiderman <talshn@mellanox.com>
> >
> > Export needed eal functions used by the lib.
> >
> > Signed-off-by: Tal Shnaiderman <talshn@mellanox.com>
> > ---
> > --- a/lib/librte_eal/rte_eal_exports.def
> > +++ b/lib/librte_eal/rte_eal_exports.def
> > @@ -3,6 +3,7 @@ EXPORTS
> >  	per_lcore__rte_errno
> >  	rte_calloc
> >  	rte_calloc_socket
> > +	per_lcore__lcore_id
> [...]
> > --- a/lib/librte_eal/rte_eal_version.map
> > +++ b/lib/librte_eal/rte_eal_version.map
> > @@ -394,4 +394,5 @@ EXPERIMENTAL {
> >  	rte_mem_unmap;
> >  	__emutls_v.per_lcore__rte_errno;
> >  	__rte_trace_mem_per_thread_alloc;
> > +	__emutls_v.per_lcore__lcore_id;
> 
> I'm surprised about this one in the Linux/BSD map.
> Can it be removed?
> 

It is needed for the MingGW build which requires the __emutls_v. prefix.

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [dpdk-dev] [PATCH 3/4] eal: export needed functions for mbuf
  2020-06-16  8:33     ` Tal Shnaiderman
@ 2020-06-16  8:45       ` Thomas Monjalon
  2020-06-16  9:26         ` Dmitry Kozlyuk
  0 siblings, 1 reply; 17+ messages in thread
From: Thomas Monjalon @ 2020-06-16  8:45 UTC (permalink / raw)
  To: dmitry.kozliuk, Tal Shnaiderman
  Cc: dev, pallavi.kadam, david.marchand, olivier.matz, ranjit.menon,
	navasile, Fady Bader, harini.ramakrishnan, ocardona

16/06/2020 10:33, Tal Shnaiderman:
> > 01/06/2020 11:38, talshn@mellanox.com:
> > > From: Tal Shnaiderman <talshn@mellanox.com>
> > >
> > > Export needed eal functions used by the lib.
> > >
> > > Signed-off-by: Tal Shnaiderman <talshn@mellanox.com>
> > > ---
> > > --- a/lib/librte_eal/rte_eal_exports.def
> > > +++ b/lib/librte_eal/rte_eal_exports.def
> > > @@ -3,6 +3,7 @@ EXPORTS
> > >  	per_lcore__rte_errno
> > >  	rte_calloc
> > >  	rte_calloc_socket
> > > +	per_lcore__lcore_id
> > [...]
> > > --- a/lib/librte_eal/rte_eal_version.map
> > > +++ b/lib/librte_eal/rte_eal_version.map
> > > @@ -394,4 +394,5 @@ EXPERIMENTAL {
> > >  	rte_mem_unmap;
> > >  	__emutls_v.per_lcore__rte_errno;
> > >  	__rte_trace_mem_per_thread_alloc;
> > > +	__emutls_v.per_lcore__lcore_id;

Note the alphabetical order is not respected above.

> > I'm surprised about this one in the Linux/BSD map.
> > Can it be removed?
> 
> It is needed for the MingGW build which requires the __emutls_v. prefix.

We already have per_lcore__lcore_id and per_lcore__rte_errno
for Linux and FreeBSD.
The prefix __emutls_v. for MinGW looks wrong.
If it is really required, it should be added automatically
in my opinion.
I think we can do it in buildtools/map_to_def.py
by adding this prefix to per_lcore__ when required.



^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [dpdk-dev] [PATCH 3/4] eal: export needed functions for mbuf
  2020-06-16  8:45       ` Thomas Monjalon
@ 2020-06-16  9:26         ` Dmitry Kozlyuk
  2020-06-16 11:44           ` Thomas Monjalon
  0 siblings, 1 reply; 17+ messages in thread
From: Dmitry Kozlyuk @ 2020-06-16  9:26 UTC (permalink / raw)
  To: Thomas Monjalon
  Cc: Tal Shnaiderman, dev, pallavi.kadam, david.marchand,
	olivier.matz, ranjit.menon, navasile, Fady Bader,
	harini.ramakrishnan, ocardona

On Tue, 16 Jun 2020 10:45:49 +0200
Thomas Monjalon <thomas@monjalon.net> wrote:

> 16/06/2020 10:33, Tal Shnaiderman:
> > > 01/06/2020 11:38, talshn@mellanox.com:  
> > > > From: Tal Shnaiderman <talshn@mellanox.com>
> > > >
> > > > Export needed eal functions used by the lib.
> > > >
> > > > Signed-off-by: Tal Shnaiderman <talshn@mellanox.com>
> > > > ---
> > > > --- a/lib/librte_eal/rte_eal_exports.def
> > > > +++ b/lib/librte_eal/rte_eal_exports.def
> > > > @@ -3,6 +3,7 @@ EXPORTS
> > > >  	per_lcore__rte_errno
> > > >  	rte_calloc
> > > >  	rte_calloc_socket
> > > > +	per_lcore__lcore_id  
> > > [...]  
> > > > --- a/lib/librte_eal/rte_eal_version.map
> > > > +++ b/lib/librte_eal/rte_eal_version.map
> > > > @@ -394,4 +394,5 @@ EXPERIMENTAL {
> > > >  	rte_mem_unmap;
> > > >  	__emutls_v.per_lcore__rte_errno;
> > > >  	__rte_trace_mem_per_thread_alloc;
> > > > +	__emutls_v.per_lcore__lcore_id;  
> 
> Note the alphabetical order is not respected above.
> 
> > > I'm surprised about this one in the Linux/BSD map.
> > > Can it be removed?  
> > 
> > It is needed for the MingGW build which requires the __emutls_v. prefix.  
> 
> We already have per_lcore__lcore_id and per_lcore__rte_errno
> for Linux and FreeBSD.
> The prefix __emutls_v. for MinGW looks wrong.
> If it is really required, it should be added automatically
> in my opinion.
> I think we can do it in buildtools/map_to_def.py
> by adding this prefix to per_lcore__ when required.

MinGW doesn't use .def, it's for link.exe only (used by Clang). To my
understanding, multiple .map files can be used [1]. The "overlay .map" for
MinGW can then be generated from the generic .map by a separate script.

[1]: https://github.com/PlushBeaver/dpdk/blob/windows/lib/meson.build#L174

-- 
Dmitry Kozlyuk

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [dpdk-dev] [PATCH 3/4] eal: export needed functions for mbuf
  2020-06-16  9:26         ` Dmitry Kozlyuk
@ 2020-06-16 11:44           ` Thomas Monjalon
  0 siblings, 0 replies; 17+ messages in thread
From: Thomas Monjalon @ 2020-06-16 11:44 UTC (permalink / raw)
  To: Tal Shnaiderman, Dmitry Kozlyuk
  Cc: dev, pallavi.kadam, david.marchand, olivier.matz, ranjit.menon,
	navasile, Fady Bader, harini.ramakrishnan, ocardona

16/06/2020 11:26, Dmitry Kozlyuk:
> Thomas Monjalon <thomas@monjalon.net> wrote:
> > 16/06/2020 10:33, Tal Shnaiderman:
> > > > 01/06/2020 11:38, talshn@mellanox.com:  
> > > > > From: Tal Shnaiderman <talshn@mellanox.com>
> > > > >
> > > > > Export needed eal functions used by the lib.
> > > > >
> > > > > Signed-off-by: Tal Shnaiderman <talshn@mellanox.com>
> > > > > ---
> > > > > --- a/lib/librte_eal/rte_eal_version.map
> > > > > +++ b/lib/librte_eal/rte_eal_version.map
> > > > > @@ -394,4 +394,5 @@ EXPERIMENTAL {
> > > > >  	rte_mem_unmap;
> > > > >  	__emutls_v.per_lcore__rte_errno;
> > > > >  	__rte_trace_mem_per_thread_alloc;
> > > > > +	__emutls_v.per_lcore__lcore_id;  
> > 
> > We already have per_lcore__lcore_id and per_lcore__rte_errno
> > for Linux and FreeBSD.
> > The prefix __emutls_v. for MinGW looks wrong.
> > If it is really required, it should be added automatically
> > in my opinion.
> > I think we can do it in buildtools/map_to_def.py
> > by adding this prefix to per_lcore__ when required.
> 
> MinGW doesn't use .def, it's for link.exe only (used by Clang). To my
> understanding, multiple .map files can be used [1]. The "overlay .map" for
> MinGW can then be generated from the generic .map by a separate script.
> 
> [1]: https://github.com/PlushBeaver/dpdk/blob/windows/lib/meson.build#L174

Yes please generate a map with the fixed prefix.
It can be done in a script similar to buildtools/map_to_def.py, right?



^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [dpdk-dev] [PATCH 2/4] eal: set byteorder in Windows to little endian
  2020-06-16  7:50   ` Thomas Monjalon
@ 2020-06-25 13:24     ` Tal Shnaiderman
  0 siblings, 0 replies; 17+ messages in thread
From: Tal Shnaiderman @ 2020-06-25 13:24 UTC (permalink / raw)
  To: Thomas Monjalon
  Cc: dev, pallavi.kadam, dmitry.kozliuk, david.marchand, olivier.matz,
	ranjit.menon, navasile, Fady Bader, harini.ramakrishnan,
	ocardona

> Subject: Re: [dpdk-dev] [PATCH 2/4] eal: set byteorder in Windows to little
> endian
> 
> 01/06/2020 11:38, talshn@mellanox.com:
> > From: Tal Shnaiderman <talshn@mellanox.com>
> >
> > Set the endianness in Windows to RTE_LITTLE_ENDIAN as support for
> > Windows is limited to x86 architecture for now.
> >
> > Signed-off-by: Tal Shnaiderman <talshn@mellanox.com>
> > ---
> > --- a/lib/librte_eal/include/generic/rte_byteorder.h
> > +++ b/lib/librte_eal/include/generic/rte_byteorder.h
> >  #ifdef RTE_EXEC_ENV_FREEBSD
> >  #include <sys/endian.h>
> > -#else
> > +#elif defined RTE_EXEC_ENV_LINUX
> >  #include <endian.h>
> > +#elif defined RTE_EXEC_ENV_WINDOWS && !defined RTE_BYTE_ORDER
> 
> Why "&& !defined RTE_BYTE_ORDER" ?
> How can it be defined earlier?
> 

You're right, it's unneeded since it is defined later on.

The entire "#elif defined RTE_EXEC_ENV_WINDOWS" section could be removed actually, 
looks like both clang and MinGW contain the predefined __BYTE_ORDER__ macro and detect the right endianness on compile time.

> > +#define RTE_BYTE_ORDER RTE_LITTLE_ENDIAN
> >  #endif
> 
> 
> 


^ permalink raw reply	[flat|nested] 17+ messages in thread

* [dpdk-dev] [PATCH v2 0/3] Support librte_mbuf on Windows
  2020-06-01  9:38 ` [dpdk-dev] [PATCH 1/4] eal: move OS common config code to single file talshn
@ 2020-06-25 15:24   ` talshn
  2020-06-25 15:24     ` [dpdk-dev] [PATCH v2 1/3] eal: correct OS headers in rte_byteorder.h talshn
                       ` (3 more replies)
  0 siblings, 4 replies; 17+ messages in thread
From: talshn @ 2020-06-25 15:24 UTC (permalink / raw)
  To: dev
  Cc: thomas, pallavi.kadam, dmitry.kozliuk, david.marchand,
	olivier.matz, ranjit.menon, navasile, fady, harini.ramakrishnan,
	ocardona, Tal Shnaiderman

From: Tal Shnaiderman <talshn@mellanox.com>

This patchset enables compilation and build of librte_mbuf on Windows.

---
Depends-on: series-10550 ("build mempool on Windows")

v2: 
* Remove unneeded endianness macro check (ThomasM)
* Fix export list name order (ThomasM)
* Remove __emutls_v.* MinGW export as it is no longer needed.
---

Tal Shnaiderman (3):
  eal: correct OS headers in rte_byteorder.h
  eal: export needed functions for mbuf
  mbuf: build on Windows

 lib/librte_eal/common/meson.build              | 1 +
 lib/librte_eal/include/generic/rte_byteorder.h | 2 +-
 lib/librte_eal/rte_eal_exports.def             | 3 +++
 lib/meson.build                                | 4 ++--
 4 files changed, 7 insertions(+), 3 deletions(-)

-- 
2.16.1.windows.4


^ permalink raw reply	[flat|nested] 17+ messages in thread

* [dpdk-dev] [PATCH v2 1/3] eal: correct OS headers in rte_byteorder.h
  2020-06-25 15:24   ` [dpdk-dev] [PATCH v2 0/3] Support librte_mbuf on Windows talshn
@ 2020-06-25 15:24     ` talshn
  2020-06-25 15:24     ` [dpdk-dev] [PATCH v2 2/3] eal: export needed functions for mbuf talshn
                       ` (2 subsequent siblings)
  3 siblings, 0 replies; 17+ messages in thread
From: talshn @ 2020-06-25 15:24 UTC (permalink / raw)
  To: dev
  Cc: thomas, pallavi.kadam, dmitry.kozliuk, david.marchand,
	olivier.matz, ranjit.menon, navasile, fady, harini.ramakrishnan,
	ocardona, Tal Shnaiderman

From: Tal Shnaiderman <talshn@mellanox.com>

Inclusion of the endian.h header is set only for Linux OS.

Windows endlessness will be determined by the predefined
__BYTE_ORDER__ macro.

Signed-off-by: Tal Shnaiderman <talshn@mellanox.com>
---
 lib/librte_eal/include/generic/rte_byteorder.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/librte_eal/include/generic/rte_byteorder.h b/lib/librte_eal/include/generic/rte_byteorder.h
index 9ca960932f..a67e1d70d9 100644
--- a/lib/librte_eal/include/generic/rte_byteorder.h
+++ b/lib/librte_eal/include/generic/rte_byteorder.h
@@ -17,7 +17,7 @@
 #include <stdint.h>
 #ifdef RTE_EXEC_ENV_FREEBSD
 #include <sys/endian.h>
-#else
+#elif defined RTE_EXEC_ENV_LINUX
 #include <endian.h>
 #endif
 
-- 
2.16.1.windows.4


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [dpdk-dev] [PATCH v2 2/3] eal: export needed functions for mbuf
  2020-06-25 15:24   ` [dpdk-dev] [PATCH v2 0/3] Support librte_mbuf on Windows talshn
  2020-06-25 15:24     ` [dpdk-dev] [PATCH v2 1/3] eal: correct OS headers in rte_byteorder.h talshn
@ 2020-06-25 15:24     ` talshn
  2020-06-25 15:24     ` [dpdk-dev] [PATCH v2 3/3] mbuf: build on Windows talshn
  2020-07-07  0:01     ` [dpdk-dev] [PATCH v2 0/3] Support librte_mbuf " Thomas Monjalon
  3 siblings, 0 replies; 17+ messages in thread
From: talshn @ 2020-06-25 15:24 UTC (permalink / raw)
  To: dev
  Cc: thomas, pallavi.kadam, dmitry.kozliuk, david.marchand,
	olivier.matz, ranjit.menon, navasile, fady, harini.ramakrishnan,
	ocardona, Tal Shnaiderman

From: Tal Shnaiderman <talshn@mellanox.com>

Export needed eal functions used by the lib.

Signed-off-by: Tal Shnaiderman <talshn@mellanox.com>
---
 lib/librte_eal/common/meson.build  | 1 +
 lib/librte_eal/rte_eal_exports.def | 3 +++
 2 files changed, 4 insertions(+)

diff --git a/lib/librte_eal/common/meson.build b/lib/librte_eal/common/meson.build
index dc9b1d2feb..c1d9f21488 100644
--- a/lib/librte_eal/common/meson.build
+++ b/lib/librte_eal/common/meson.build
@@ -14,6 +14,7 @@ if is_windows
 		'eal_common_dynmem.c',
 		'eal_common_errno.c',
 		'eal_common_fbarray.c',
+		'eal_common_hexdump.c',
 		'eal_common_launch.c',
 		'eal_common_lcore.c',
 		'eal_common_log.c',
diff --git a/lib/librte_eal/rte_eal_exports.def b/lib/librte_eal/rte_eal_exports.def
index 984c5d1698..69204a92c6 100644
--- a/lib/librte_eal/rte_eal_exports.def
+++ b/lib/librte_eal/rte_eal_exports.def
@@ -3,6 +3,7 @@ EXPORTS
 	__rte_trace_mem_per_thread_alloc
 	__rte_trace_point_emit_field
 	__rte_trace_point_register
+	per_lcore__lcore_id
 	per_lcore__rte_errno
 	per_lcore_trace_mem
 	per_lcore_trace_point_sz
@@ -17,6 +18,7 @@ EXPORTS
 	rte_eal_has_pci
 	rte_eal_init
 	rte_eal_iova_mode
+	rte_eal_mbuf_user_pool_ops
 	rte_eal_mp_remote_launch
 	rte_eal_mp_wait_lcore
 	rte_eal_process_type
@@ -26,6 +28,7 @@ EXPORTS
 	rte_eal_tailq_register
 	rte_eal_using_phys_addrs
 	rte_free
+	rte_hexdump
 	rte_malloc
 	rte_malloc_dump_stats
 	rte_malloc_get_socket_stats
-- 
2.16.1.windows.4


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [dpdk-dev] [PATCH v2 3/3] mbuf: build on Windows
  2020-06-25 15:24   ` [dpdk-dev] [PATCH v2 0/3] Support librte_mbuf on Windows talshn
  2020-06-25 15:24     ` [dpdk-dev] [PATCH v2 1/3] eal: correct OS headers in rte_byteorder.h talshn
  2020-06-25 15:24     ` [dpdk-dev] [PATCH v2 2/3] eal: export needed functions for mbuf talshn
@ 2020-06-25 15:24     ` talshn
  2020-07-07  0:01     ` [dpdk-dev] [PATCH v2 0/3] Support librte_mbuf " Thomas Monjalon
  3 siblings, 0 replies; 17+ messages in thread
From: talshn @ 2020-06-25 15:24 UTC (permalink / raw)
  To: dev
  Cc: thomas, pallavi.kadam, dmitry.kozliuk, david.marchand,
	olivier.matz, ranjit.menon, navasile, fady, harini.ramakrishnan,
	ocardona, Tal Shnaiderman

From: Tal Shnaiderman <talshn@mellanox.com>

Build the lib for Windows.

Signed-off-by: Tal Shnaiderman <talshn@mellanox.com>
---
 lib/meson.build | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lib/meson.build b/lib/meson.build
index a9a5be0e5e..dcee2e68ec 100644
--- a/lib/meson.build
+++ b/lib/meson.build
@@ -39,8 +39,8 @@ if is_windows
 	libraries = [
 		'kvargs','eal',
 		'ring',
-		'mempool', 'pci',
-	] # only supported libraries for windows
+		'mempool', 'mbuf', 'pci', # core
+		] # only supported libraries for windows
 endif
 
 default_cflags = machine_args
-- 
2.16.1.windows.4


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* Re: [dpdk-dev] [PATCH v2 0/3] Support librte_mbuf on Windows
  2020-06-25 15:24   ` [dpdk-dev] [PATCH v2 0/3] Support librte_mbuf on Windows talshn
                       ` (2 preceding siblings ...)
  2020-06-25 15:24     ` [dpdk-dev] [PATCH v2 3/3] mbuf: build on Windows talshn
@ 2020-07-07  0:01     ` Thomas Monjalon
  3 siblings, 0 replies; 17+ messages in thread
From: Thomas Monjalon @ 2020-07-07  0:01 UTC (permalink / raw)
  To: Tal Shnaiderman
  Cc: dev, pallavi.kadam, dmitry.kozliuk, david.marchand, olivier.matz,
	ranjit.menon, navasile, fady, harini.ramakrishnan, ocardona,
	arybchenko

> Tal Shnaiderman (3):
>   eal: correct OS headers in rte_byteorder.h
>   eal: export needed functions for mbuf
>   mbuf: build on Windows

Applied, thanks



^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2020-07-07  0:01 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-01  9:38 [dpdk-dev] [PATCH 0/4] Support librte_mbuf on Windows talshn
2020-06-01  9:38 ` [dpdk-dev] [PATCH 1/4] eal: move OS common config code to single file talshn
2020-06-25 15:24   ` [dpdk-dev] [PATCH v2 0/3] Support librte_mbuf on Windows talshn
2020-06-25 15:24     ` [dpdk-dev] [PATCH v2 1/3] eal: correct OS headers in rte_byteorder.h talshn
2020-06-25 15:24     ` [dpdk-dev] [PATCH v2 2/3] eal: export needed functions for mbuf talshn
2020-06-25 15:24     ` [dpdk-dev] [PATCH v2 3/3] mbuf: build on Windows talshn
2020-07-07  0:01     ` [dpdk-dev] [PATCH v2 0/3] Support librte_mbuf " Thomas Monjalon
2020-06-01  9:38 ` [dpdk-dev] [PATCH 2/4] eal: set byteorder in Windows to little endian talshn
2020-06-16  7:50   ` Thomas Monjalon
2020-06-25 13:24     ` Tal Shnaiderman
2020-06-01  9:38 ` [dpdk-dev] [PATCH 3/4] eal: export needed functions for mbuf talshn
2020-06-16  8:09   ` Thomas Monjalon
2020-06-16  8:33     ` Tal Shnaiderman
2020-06-16  8:45       ` Thomas Monjalon
2020-06-16  9:26         ` Dmitry Kozlyuk
2020-06-16 11:44           ` Thomas Monjalon
2020-06-01  9:38 ` [dpdk-dev] [PATCH 4/4] mbuf: build on Windows talshn

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.