[dpdk-dev] [PATCH] arm64: change rte_memcpy to inline function

2016-06-22 Thread Jianbo Liu
On 17 June 2016 at 18:30, Thomas Monjalon  wrote:
> 2016-05-19 17:56, Thomas Monjalon:
>> 2016-05-19 21:48, Jianbo Liu:
>> > On 13 May 2016 at 23:49, Thomas Monjalon  
>> > wrote:
>> > > 2016-05-10 14:01, Jianbo Liu:
>> > >> Other APP may call rte_memcpy by function pointer,
>> > >> so change it to an inline function.
>> > >
>> > > Any example in mind?
>> > >
>> > It's for ODP-DPDK.
>>
>> Given that ODP is open (dataplane), you should also consider ppc64 and tile.
>>
>> > >> --- a/lib/librte_eal/common/include/arch/arm/rte_memcpy_64.h
>> > >> +++ b/lib/librte_eal/common/include/arch/arm/rte_memcpy_64.h
>> > >> -#define rte_memcpy(d, s, n)  memcpy((d), (s), (n))
>> > >> +static inline void *
>> > >> +rte_memcpy(void *dst, const void *src, size_t n)
>> > >> +{
>> > >> + return memcpy(dst, src, n);
>> > >> +}
>> > >
>> > > It has no sense if other archs (arm32, ppc64, tile) are not updated.
>> > >
>> > But it also an inline function on x86.
>>
>> In x86, it was implemented as a function because there is some code.
>> If you want to make sure it is always a function, even in the case
>> of just calling memcpy from libc, you should put a doxygen comment in
>> the generic part and adapt every archs.
>
> no news?
> a v2 would be welcome

Hi Thomas,
Please close it, since there is already a solution to this issue in odp-dpdk.

Thanks!
Jianbo


[dpdk-dev] [PATCH] arm64: change rte_memcpy to inline function

2016-06-17 Thread Thomas Monjalon
2016-05-19 17:56, Thomas Monjalon:
> 2016-05-19 21:48, Jianbo Liu:
> > On 13 May 2016 at 23:49, Thomas Monjalon  
> > wrote:
> > > 2016-05-10 14:01, Jianbo Liu:
> > >> Other APP may call rte_memcpy by function pointer,
> > >> so change it to an inline function.
> > >
> > > Any example in mind?
> > >
> > It's for ODP-DPDK.
> 
> Given that ODP is open (dataplane), you should also consider ppc64 and tile.
> 
> > >> --- a/lib/librte_eal/common/include/arch/arm/rte_memcpy_64.h
> > >> +++ b/lib/librte_eal/common/include/arch/arm/rte_memcpy_64.h
> > >> -#define rte_memcpy(d, s, n)  memcpy((d), (s), (n))
> > >> +static inline void *
> > >> +rte_memcpy(void *dst, const void *src, size_t n)
> > >> +{
> > >> + return memcpy(dst, src, n);
> > >> +}
> > >
> > > It has no sense if other archs (arm32, ppc64, tile) are not updated.
> > >
> > But it also an inline function on x86.
> 
> In x86, it was implemented as a function because there is some code.
> If you want to make sure it is always a function, even in the case
> of just calling memcpy from libc, you should put a doxygen comment in
> the generic part and adapt every archs.

no news?
a v2 would be welcome


[dpdk-dev] [PATCH] arm64: change rte_memcpy to inline function

2016-05-19 Thread Jianbo Liu
On 13 May 2016 at 23:49, Thomas Monjalon  wrote:
> 2016-05-10 14:01, Jianbo Liu:
>> Other APP may call rte_memcpy by function pointer,
>> so change it to an inline function.
>
> Any example in mind?
>
It's for ODP-DPDK.
>> --- a/lib/librte_eal/common/include/arch/arm/rte_memcpy_64.h
>> +++ b/lib/librte_eal/common/include/arch/arm/rte_memcpy_64.h
>> -#define rte_memcpy(d, s, n)  memcpy((d), (s), (n))
>> +static inline void *
>> +rte_memcpy(void *dst, const void *src, size_t n)
>> +{
>> + return memcpy(dst, src, n);
>> +}
>
> It has no sense if other archs (arm32, ppc64, tile) are not updated.
>
But it also an inline function on x86.
Sorry for my late reply...


[dpdk-dev] [PATCH] arm64: change rte_memcpy to inline function

2016-05-19 Thread Thomas Monjalon
2016-05-19 21:48, Jianbo Liu:
> On 13 May 2016 at 23:49, Thomas Monjalon  wrote:
> > 2016-05-10 14:01, Jianbo Liu:
> >> Other APP may call rte_memcpy by function pointer,
> >> so change it to an inline function.
> >
> > Any example in mind?
> >
> It's for ODP-DPDK.

Given that ODP is open (dataplane), you should also consider ppc64 and tile.

> >> --- a/lib/librte_eal/common/include/arch/arm/rte_memcpy_64.h
> >> +++ b/lib/librte_eal/common/include/arch/arm/rte_memcpy_64.h
> >> -#define rte_memcpy(d, s, n)  memcpy((d), (s), (n))
> >> +static inline void *
> >> +rte_memcpy(void *dst, const void *src, size_t n)
> >> +{
> >> + return memcpy(dst, src, n);
> >> +}
> >
> > It has no sense if other archs (arm32, ppc64, tile) are not updated.
> >
> But it also an inline function on x86.

In x86, it was implemented as a function because there is some code.
If you want to make sure it is always a function, even in the case
of just calling memcpy from libc, you should put a doxygen comment in
the generic part and adapt every archs.


[dpdk-dev] [PATCH] arm64: change rte_memcpy to inline function

2016-05-13 Thread Thomas Monjalon
2016-05-10 14:01, Jianbo Liu:
> Other APP may call rte_memcpy by function pointer,
> so change it to an inline function.

Any example in mind?

> --- a/lib/librte_eal/common/include/arch/arm/rte_memcpy_64.h
> +++ b/lib/librte_eal/common/include/arch/arm/rte_memcpy_64.h
> -#define rte_memcpy(d, s, n)  memcpy((d), (s), (n))
> +static inline void *
> +rte_memcpy(void *dst, const void *src, size_t n)
> +{
> + return memcpy(dst, src, n);
> +}

It has no sense if other archs (arm32, ppc64, tile) are not updated.



[dpdk-dev] [PATCH] arm64: change rte_memcpy to inline function

2016-05-13 Thread Jerin Jacob
On Tue, May 10, 2016 at 02:01:04PM +0530, Jianbo Liu wrote:
> Other APP may call rte_memcpy by function pointer,

Instead of "Other APP" may be better to use DPDK application

> so change it to an inline function.
> 
> Signed-off-by: Jianbo Liu 

Acked-by: Jerin Jacob 

> ---
>  lib/librte_eal/common/include/arch/arm/rte_memcpy_64.h | 6 +-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/lib/librte_eal/common/include/arch/arm/rte_memcpy_64.h 
> b/lib/librte_eal/common/include/arch/arm/rte_memcpy_64.h
> index 917cdc1..3abe7cd 100644
> --- a/lib/librte_eal/common/include/arch/arm/rte_memcpy_64.h
> +++ b/lib/librte_eal/common/include/arch/arm/rte_memcpy_64.h
> @@ -78,7 +78,11 @@ rte_mov256(uint8_t *dst, const uint8_t *src)
>   memcpy(dst, src, 256);
>  }
>  
> -#define rte_memcpy(d, s, n)  memcpy((d), (s), (n))
> +static inline void *
> +rte_memcpy(void *dst, const void *src, size_t n)
> +{
> + return memcpy(dst, src, n);
> +}
>  
>  static inline void *
>  rte_memcpy_func(void *dst, const void *src, size_t n)
> -- 
> 2.4.11
> 


[dpdk-dev] [PATCH] arm64: change rte_memcpy to inline function

2016-05-10 Thread Jianbo Liu
Other APP may call rte_memcpy by function pointer,
so change it to an inline function.

Signed-off-by: Jianbo Liu 
---
 lib/librte_eal/common/include/arch/arm/rte_memcpy_64.h | 6 +-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/lib/librte_eal/common/include/arch/arm/rte_memcpy_64.h 
b/lib/librte_eal/common/include/arch/arm/rte_memcpy_64.h
index 917cdc1..3abe7cd 100644
--- a/lib/librte_eal/common/include/arch/arm/rte_memcpy_64.h
+++ b/lib/librte_eal/common/include/arch/arm/rte_memcpy_64.h
@@ -78,7 +78,11 @@ rte_mov256(uint8_t *dst, const uint8_t *src)
memcpy(dst, src, 256);
 }

-#define rte_memcpy(d, s, n)memcpy((d), (s), (n))
+static inline void *
+rte_memcpy(void *dst, const void *src, size_t n)
+{
+   return memcpy(dst, src, n);
+}

 static inline void *
 rte_memcpy_func(void *dst, const void *src, size_t n)
-- 
2.4.11