DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH 0/3] add support of musl
@ 2017-03-10 11:58 Wei Dai
  2017-03-10 11:58 ` [dpdk-dev] [PATCH 1/3] examples/performance-thread: remove reference to execinfo.h Wei Dai
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Wei Dai @ 2017-03-10 11:58 UTC (permalink / raw)
  To: dev; +Cc: john.mcnamara, thomas.monjalon, david.marchand, Wei Dai

musl is an alternative LIBC to GLIBC.
It is an implementation of the userspace portion 
of the standard library functionality described 
in the ISO C and POSIX standards, plus common extensions. 

Some DPDK customers fail to build DPDK with musl.
But so far execinfo.h is not supported by musl.
In order to build DPDK with musl, there is a need
to remove references to execinfo.h.

Currently only backtrace() and backtrace_symbols( ) from
execinfo.h are used in rte_dump_stack( ) in 
lib/librte_eal/linuxapp/eal/eal_debug.c .
This rte_dump_stack( ) is only used to get the
name of fucntions in call stack for debugging.

Wei Dai (3):
  examples/performance-thread: remove reference to execinfo.h
  config: add support of musl
  eal: remove references to execinfo.h for musl

 config/common_linuxapp                           | 1 +
 examples/performance-thread/common/lthread_tls.c | 1 -
 lib/librte_eal/linuxapp/eal/eal_debug.c          | 7 ++++++-
 3 files changed, 7 insertions(+), 2 deletions(-)

-- 
2.7.4

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

* [dpdk-dev] [PATCH 1/3] examples/performance-thread: remove reference to execinfo.h
  2017-03-10 11:58 [dpdk-dev] [PATCH 0/3] add support of musl Wei Dai
@ 2017-03-10 11:58 ` Wei Dai
  2017-03-10 11:58 ` [dpdk-dev] [PATCH 2/3] config: add support of musl Wei Dai
  2017-03-10 11:58 ` [dpdk-dev] [PATCH 3/3] eal: remove references to execinfo.h for musl Wei Dai
  2 siblings, 0 replies; 8+ messages in thread
From: Wei Dai @ 2017-03-10 11:58 UTC (permalink / raw)
  To: dev; +Cc: john.mcnamara, thomas.monjalon, david.marchand, Wei Dai

There is no function to refer any part of it, so remove the
reference to it. And there is no this file in musl. So need
to remove it to support musl.
The musl is an alternative LIBC to GLIBC and provides the
standard C/POSIX library and extensions.
The musl can be got from http://www.musl-libc.org

Signed-off-by: Wei Dai <wei.dai@intel.com>
---
 examples/performance-thread/common/lthread_tls.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/examples/performance-thread/common/lthread_tls.c b/examples/performance-thread/common/lthread_tls.c
index 6876f83..47505f2 100644
--- a/examples/performance-thread/common/lthread_tls.c
+++ b/examples/performance-thread/common/lthread_tls.c
@@ -42,7 +42,6 @@
 #include <fcntl.h>
 #include <sys/time.h>
 #include <sys/mman.h>
-#include <execinfo.h>
 #include <sched.h>
 
 #include <rte_malloc.h>
-- 
2.7.4

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

* [dpdk-dev] [PATCH 2/3] config: add support of musl
  2017-03-10 11:58 [dpdk-dev] [PATCH 0/3] add support of musl Wei Dai
  2017-03-10 11:58 ` [dpdk-dev] [PATCH 1/3] examples/performance-thread: remove reference to execinfo.h Wei Dai
@ 2017-03-10 11:58 ` Wei Dai
  2017-03-10 11:58 ` [dpdk-dev] [PATCH 3/3] eal: remove references to execinfo.h for musl Wei Dai
  2 siblings, 0 replies; 8+ messages in thread
From: Wei Dai @ 2017-03-10 11:58 UTC (permalink / raw)
  To: dev; +Cc: john.mcnamara, thomas.monjalon, david.marchand, Wei Dai

When building DPDK with musl, there is need to generate
the MACRO named RTE_LIBC_MUSL in rte_config.h to remove
some references to execinfo.h which is not supported
by musl now.

Got more details about musl from http://www.musl-libc.org .

Signed-off-by: Wei Dai <wei.dai@intel.com>
---
 config/common_linuxapp | 1 +
 1 file changed, 1 insertion(+)

diff --git a/config/common_linuxapp b/config/common_linuxapp
index 00ebaac..66fb0a3 100644
--- a/config/common_linuxapp
+++ b/config/common_linuxapp
@@ -46,3 +46,4 @@ CONFIG_RTE_LIBRTE_PMD_TAP=y
 CONFIG_RTE_LIBRTE_NFP_PMD=y
 CONFIG_RTE_LIBRTE_POWER=y
 CONFIG_RTE_VIRTIO_USER=y
+CONFIG_RTE_LIBC_MUSL=n
-- 
2.7.4

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

* [dpdk-dev] [PATCH 3/3] eal: remove references to execinfo.h for musl
  2017-03-10 11:58 [dpdk-dev] [PATCH 0/3] add support of musl Wei Dai
  2017-03-10 11:58 ` [dpdk-dev] [PATCH 1/3] examples/performance-thread: remove reference to execinfo.h Wei Dai
  2017-03-10 11:58 ` [dpdk-dev] [PATCH 2/3] config: add support of musl Wei Dai
@ 2017-03-10 11:58 ` Wei Dai
  2017-03-10 12:40   ` Thomas Monjalon
  2 siblings, 1 reply; 8+ messages in thread
From: Wei Dai @ 2017-03-10 11:58 UTC (permalink / raw)
  To: dev; +Cc: john.mcnamara, thomas.monjalon, david.marchand, Wei Dai

execinfo.h is not supported by musl now.
need to remove references to execinfo.h to
build DPDK with musl.

musl is an implementation of the userspace portion
of the standard library functionality described in
the ISO C and POSIX standards, plus common extensions.

Get more details about musl from
http://www.musl-libc.org

Signed-off-by: Wei Dai <wei.dai@intel.com>
---
 lib/librte_eal/linuxapp/eal/eal_debug.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/lib/librte_eal/linuxapp/eal/eal_debug.c b/lib/librte_eal/linuxapp/eal/eal_debug.c
index 5fbc17c..d2416ee 100644
--- a/lib/librte_eal/linuxapp/eal/eal_debug.c
+++ b/lib/librte_eal/linuxapp/eal/eal_debug.c
@@ -31,7 +31,10 @@
  *   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include <execinfo.h>
+#ifndef RTE_LIBC_MUSL
+	#include <execinfo.h>
+#endif
+
 #include <stdarg.h>
 #include <signal.h>
 #include <stdlib.h>
@@ -47,6 +50,7 @@
 /* dump the stack of the calling core */
 void rte_dump_stack(void)
 {
+#ifndef RTE_LIBC_MUSL
 	void *func[BACKTRACE_SIZE];
 	char **symb = NULL;
 	int size;
@@ -64,6 +68,7 @@ void rte_dump_stack(void)
 	}
 
 	free(symb);
+#endif
 }
 
 /* not implemented in this environment */
-- 
2.7.4

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

* Re: [dpdk-dev] [PATCH 3/3] eal: remove references to execinfo.h for musl
  2017-03-10 11:58 ` [dpdk-dev] [PATCH 3/3] eal: remove references to execinfo.h for musl Wei Dai
@ 2017-03-10 12:40   ` Thomas Monjalon
  2017-03-10 14:49     ` Jan Blunck
  0 siblings, 1 reply; 8+ messages in thread
From: Thomas Monjalon @ 2017-03-10 12:40 UTC (permalink / raw)
  To: Wei Dai; +Cc: dev, john.mcnamara, david.marchand

2017-03-10 19:58, Wei Dai:
> @@ -47,6 +50,7 @@
>  /* dump the stack of the calling core */
>  void rte_dump_stack(void)
>  {
> +#ifndef RTE_LIBC_MUSL
>  	void *func[BACKTRACE_SIZE];
>  	char **symb = NULL;
>  	int size;
> @@ -64,6 +68,7 @@ void rte_dump_stack(void)
>  	}
>  
>  	free(symb);
> +#endif
>  }

There are probably other libc implementations not supporting this feature.
Instead of calling it "RTE_LIBC_MUSL", it should something like
"ENABLE_BACKTRACE".
Then you can add a musl section in the Linux quick start guide.

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

* Re: [dpdk-dev] [PATCH 3/3] eal: remove references to execinfo.h for musl
  2017-03-10 12:40   ` Thomas Monjalon
@ 2017-03-10 14:49     ` Jan Blunck
  2017-03-13  8:10       ` Dai, Wei
  0 siblings, 1 reply; 8+ messages in thread
From: Jan Blunck @ 2017-03-10 14:49 UTC (permalink / raw)
  To: Thomas Monjalon; +Cc: Wei Dai, dev, Mcnamara, John, david.marchand

On Fri, Mar 10, 2017 at 1:40 PM, Thomas Monjalon
<thomas.monjalon@6wind.com> wrote:
> 2017-03-10 19:58, Wei Dai:
>> @@ -47,6 +50,7 @@
>>  /* dump the stack of the calling core */
>>  void rte_dump_stack(void)
>>  {
>> +#ifndef RTE_LIBC_MUSL
>>       void *func[BACKTRACE_SIZE];
>>       char **symb = NULL;
>>       int size;
>> @@ -64,6 +68,7 @@ void rte_dump_stack(void)
>>       }
>>
>>       free(symb);
>> +#endif
>>  }
>
> There are probably other libc implementations not supporting this feature.
> Instead of calling it "RTE_LIBC_MUSL", it should something like
> "ENABLE_BACKTRACE".
> Then you can add a musl section in the Linux quick start guide.

Also I would improve the code readability by removing the preprocessor
junk from it by moving the rte_dump_stack() function into
eal_backtrace.c and make that conditionally compile based on
CONFIG_ENABLE_BACKTRACE.

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

* Re: [dpdk-dev] [PATCH 3/3] eal: remove references to execinfo.h for musl
  2017-03-10 14:49     ` Jan Blunck
@ 2017-03-13  8:10       ` Dai, Wei
  2017-03-15  8:38         ` Jan Blunck
  0 siblings, 1 reply; 8+ messages in thread
From: Dai, Wei @ 2017-03-13  8:10 UTC (permalink / raw)
  To: Jan Blunck, Thomas Monjalon
  Cc: dev, Mcnamara, John, david.marchand, Tan, Raymond

> -----Original Message-----
> From: jblunck@gmail.com [mailto:jblunck@gmail.com] On Behalf Of Jan Blunck
> Sent: Friday, March 10, 2017 10:50 PM
> To: Thomas Monjalon <thomas.monjalon@6wind.com>
> Cc: Dai, Wei <wei.dai@intel.com>; dev <dev@dpdk.org>; Mcnamara, John
> <john.mcnamara@intel.com>; david.marchand@intel.com
> Subject: Re: [dpdk-dev] [PATCH 3/3] eal: remove references to execinfo.h for
> musl
> 
> On Fri, Mar 10, 2017 at 1:40 PM, Thomas Monjalon
> <thomas.monjalon@6wind.com> wrote:
> > 2017-03-10 19:58, Wei Dai:
> >> @@ -47,6 +50,7 @@
> >>  /* dump the stack of the calling core */  void rte_dump_stack(void)
> >> {
> >> +#ifndef RTE_LIBC_MUSL
> >>       void *func[BACKTRACE_SIZE];
> >>       char **symb = NULL;
> >>       int size;
> >> @@ -64,6 +68,7 @@ void rte_dump_stack(void)
> >>       }
> >>
> >>       free(symb);
> >> +#endif
> >>  }
> >
> > There are probably other libc implementations not supporting this feature.
> > Instead of calling it "RTE_LIBC_MUSL", it should something like
> > "ENABLE_BACKTRACE".
> > Then you can add a musl section in the Linux quick start guide.
> 
> Also I would improve the code readability by removing the preprocessor junk
> from it by moving the rte_dump_stack() function into eal_backtrace.c and make
> that conditionally compile based on CONFIG_ENABLE_BACKTRACE.

I'd like to change CONFIG_RTE_LIBC_MUSL  to  CONFIG_RTE_EAL_ENABLE_BACKTRACE and
Will send a v2 patch soon.
Anyway, you also still can move rte_dump_stack() to another file when my change is accepted.


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

* Re: [dpdk-dev] [PATCH 3/3] eal: remove references to execinfo.h for musl
  2017-03-13  8:10       ` Dai, Wei
@ 2017-03-15  8:38         ` Jan Blunck
  0 siblings, 0 replies; 8+ messages in thread
From: Jan Blunck @ 2017-03-15  8:38 UTC (permalink / raw)
  To: Dai, Wei
  Cc: Thomas Monjalon, dev, Mcnamara, John, david.marchand, Tan, Raymond

On Mon, Mar 13, 2017 at 9:10 AM, Dai, Wei <wei.dai@intel.com> wrote:
>> -----Original Message-----
>> From: jblunck@gmail.com [mailto:jblunck@gmail.com] On Behalf Of Jan Blunck
>> Sent: Friday, March 10, 2017 10:50 PM
>> To: Thomas Monjalon <thomas.monjalon@6wind.com>
>> Cc: Dai, Wei <wei.dai@intel.com>; dev <dev@dpdk.org>; Mcnamara, John
>> <john.mcnamara@intel.com>; david.marchand@intel.com
>> Subject: Re: [dpdk-dev] [PATCH 3/3] eal: remove references to execinfo.h for
>> musl
>>
>> On Fri, Mar 10, 2017 at 1:40 PM, Thomas Monjalon
>> <thomas.monjalon@6wind.com> wrote:
>> > 2017-03-10 19:58, Wei Dai:
>> >> @@ -47,6 +50,7 @@
>> >>  /* dump the stack of the calling core */  void rte_dump_stack(void)
>> >> {
>> >> +#ifndef RTE_LIBC_MUSL
>> >>       void *func[BACKTRACE_SIZE];
>> >>       char **symb = NULL;
>> >>       int size;
>> >> @@ -64,6 +68,7 @@ void rte_dump_stack(void)
>> >>       }
>> >>
>> >>       free(symb);
>> >> +#endif
>> >>  }
>> >
>> > There are probably other libc implementations not supporting this feature.
>> > Instead of calling it "RTE_LIBC_MUSL", it should something like
>> > "ENABLE_BACKTRACE".
>> > Then you can add a musl section in the Linux quick start guide.
>>
>> Also I would improve the code readability by removing the preprocessor junk
>> from it by moving the rte_dump_stack() function into eal_backtrace.c and make
>> that conditionally compile based on CONFIG_ENABLE_BACKTRACE.
>
> I'd like to change CONFIG_RTE_LIBC_MUSL  to  CONFIG_RTE_EAL_ENABLE_BACKTRACE and
> Will send a v2 patch soon.
> Anyway, you also still can move rte_dump_stack() to another file when my change is accepted.
>

Thanks for working on it! Please also merge the introduction of the
configuration and its usage into one patch.

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

end of thread, other threads:[~2017-03-15  8:38 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-03-10 11:58 [dpdk-dev] [PATCH 0/3] add support of musl Wei Dai
2017-03-10 11:58 ` [dpdk-dev] [PATCH 1/3] examples/performance-thread: remove reference to execinfo.h Wei Dai
2017-03-10 11:58 ` [dpdk-dev] [PATCH 2/3] config: add support of musl Wei Dai
2017-03-10 11:58 ` [dpdk-dev] [PATCH 3/3] eal: remove references to execinfo.h for musl Wei Dai
2017-03-10 12:40   ` Thomas Monjalon
2017-03-10 14:49     ` Jan Blunck
2017-03-13  8:10       ` Dai, Wei
2017-03-15  8:38         ` Jan Blunck

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).