[dpdk-dev] [PATCH] ixgbe: fix compile error with gcc4.4 (used RHEL 6)

2014-09-25 Thread Tang, HaifengX
Tested-by: Haifeng Tang

This patch just  includes one file, and has been tested by Intel.
Please see the detail information from the attachment.


-Original Message-
From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Bruce Richardson
Sent: Thursday, September 18, 2014 6:56 PM
To: dev at dpdk.org
Subject: [dpdk-dev] [PATCH] ixgbe: fix compile error with gcc4.4 (used RHEL 6)

The refcnt field is contained within an anonymous union within the mbuf data 
structure, and gcc 4.4 gives an error about an unknown field unless the 
initialiser for the field is contained within extra braces.

Signed-off-by: Bruce Richardson 
---
 lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c 
b/lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c
index a6f7fdf..203ddf7 100644
--- a/lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c
+++ b/lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c
@@ -723,7 +723,7 @@ ixgbe_rxq_vec_setup(struct igb_rx_queue *rxq)
.nb_segs = 1,
.data_off = RTE_PKTMBUF_HEADROOM,
 #ifdef RTE_MBUF_REFCNT
-   .refcnt = 1,
+   { .refcnt = 1, }
 #endif
};

--
1.9.3



[dpdk-dev] [PATCH] x32 ABI support, first iteration

2015-02-09 Thread Tang, HaifengX
Tested-by: Haifeng Tang 

 - Tested Commit: bfca21f8a0defa7173895ba00e30f685b3209b81
 - OS&Kernel: Ubuntu 14.04 LTS 3.13.0-24-generic
 - GCC: gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1)
 - CPUIntel(R) Xeon(R) CPU E5-2680 0 @ 2.70GHz
 - NIC: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection 
[8086:10fb]
 - Default x86_x32-native-linuxapp-gcc configuration
 - Regression test result Total 74 cases, 74 passed, 0 failed 
pmd checksum_checking   PASSED
packet_checking PASSED

ipfrag  ipfrag_fragment PASSED
ipfrag_nofragment   PASSED
ipfrag_normalfwdPASSED

cmdline cmdline_sample_commands PASSED

hello_world hello_world_all_cores   PASSED
hello_world_single_core PASSED

timer   timer_callbacks_verify  PASSED

fdirfdir_filter_masks  PASSED
fdir_flexbytes_filteringPASSED
fdir_matching   PASSED
fdir_perfect_matching   PASSED
fdir_signatures PASSED
fdir_space  PASSED
fdir_vlanfiltering  PASSED

dynamic_config   dynamic_config_default_mode  PASSED
   dynamic_config_disable_promiscuous  PASSED
   dynamic_config_enable_promiscuous   PASSED

jumboframes jumboframes_bigger_jumboPASSED
jumboframes_jumbo_jumbo PASSED
jumboframes_jumbo_nojumbo  PASSED
jumboframes_normal_jumboPASSED
   jumboframes_normal_nojumbo PASSED

scatter   scatter_mbuf_1024   PASSED

ieee1588ieee1588_disable   PASSED
ieee1588_enable   PASSED
l2fwd   port_testingPASSED

checksum_offloadchecksum_offload_372664 PASSED
checksum_offload_372762 PASSED
checksum_offload_disablePASSED
checksum_offload_enable PASSED

link_flowctrl   flowctrl_off_pause_fwd_off  PASSED
flowctrl_off_pause_fwd_on   PASSED
flowctrl_on_pause_fwd_off   PASSED
flowctrl_on_pause_fwd_onPASSED

whitelist   whitelist_add_remove_mac_addressPASSED
whitelist_invalid_addresses PASSED

blacklist   bl_allbutoneportblacklisted PASSED
bl_noblacklistedPASSED
bl_oneportblacklisted   PASSED

shutdown_apichange_linkspeedPASSED
change_numberrxdtxd  PASSED
change_numberrxdtxdaftercycle  PASSED
change_thresholds   PASSED
enable_disablejumbo PASSED
enable_disablerss   PASSED
link_stats  PASSED
reconfigure_ports   PASSED
reset_queuesPASSED
set_promiscuousmode PASSED
stop_restartPASSED
stress_test PASSED

dual_vlan   vlan_filter_config  PASSED
vlan_filter_table   PASSED
vlan_insert_config  PASSED
vlan_random_testPASSED
vlan_strip_config   PASSED
vlan_stripq_config  PASSED
vlan_synthetic_test PASSED
vlan_tpid_configPASSED

l2fwd_fork  floating PASSED
portsPASSED
respawn   PASSED
stress_respawn  PASSED

ipv4_reassembly only_maxflows_packets_are_forwarded PASSED
packets_are_forwarded_after_ttl_timeout 
PASSED

send_1K_frames_split_in_4_and_1K_maxflows  PASSED

send_2K_frames_split_in_4_and_1K_maxflows  PASSED

send_4K_frames_split_in_7_and_4K_maxflows  PASSED

send_delayed_fragment_packet_is_forwarded  PASSED
send_jumbo_frames   PASSED
send_jumbo_frames_with_wrong_arguments  
 PASSED
send_more_fragments_than_supported  
PASSED


[dpdk-dev] [PATCH v3] librte_eal/common: Fix cast from pointer to integer of different size

2015-03-05 Thread Tang, HaifengX
Tested-by: haifeng.tang 
Patch name: [dpdk-dev] [PATCH v3] librte_eal/common: Fix cast from pointer to 
integer of different size

Test Env :
Fedora 18 , 3.6.10-4 ,4.7.2 ,14.0.0

Fedora20 ,3.11.0,4.8.2,14.0.0

Fedora21,3.17.4-302,4.9.2,15.0.0

Ubuntu 14.04, 3.13.0-30, 4.8.2, 14.0.0

Test Result:
error: cast from pointer to integer of different size 
[-Werror=pointer-to-int-cast] problem fixed now

-Original Message-
From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Michael Qiu
Sent: Thursday, March 05, 2015 3:47 PM
To: dev at dpdk.org
Subject: [dpdk-dev] [PATCH v3] librte_eal/common: Fix cast from pointer to 
integer of different size

./i686-native-linuxapp-gcc/include/rte_memcpy.h:592:23: error:
cast from pointer to integer of different size [-Werror=pointer-to-int-cast]

  dstofss = 16 - (int)((long long)(void *)dst & 0x0F) + 16;

Type 'long long' is 64-bit in i686 platform while 'void *'
is 32-bit.

Signed-off-by: Michael Qiu 
---
v3 --> v2:
make dstofss and srcofs to be type size_t
casting type use uintptr_t

v2 --> v1:
Remove unnecessary casting (void *)
 lib/librte_eal/common/include/arch/x86/rte_memcpy.h | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/lib/librte_eal/common/include/arch/x86/rte_memcpy.h 
b/lib/librte_eal/common/include/arch/x86/rte_memcpy.h
index 7b2d382..aa433e4 100644
--- a/lib/librte_eal/common/include/arch/x86/rte_memcpy.h
+++ b/lib/librte_eal/common/include/arch/x86/rte_memcpy.h
@@ -493,8 +493,8 @@ rte_memcpy(void *dst, const void *src, size_t n)  {
__m128i xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, xmm8;
void *ret = dst;
-   int dstofss;
-   int srcofs;
+   size_t dstofss;
+   size_t srcofs;

/**
 * Copy less than 16 bytes
@@ -589,12 +589,12 @@ COPY_BLOCK_64_BACK15:
 * unaligned copy functions require up to 15 bytes
 * backwards access.
 */
-   dstofss = 16 - (int)((long long)(void *)dst & 0x0F) + 16;
+   dstofss = 16 - ((uintptr_t)dst & 0x0F) + 16;
n -= dstofss;
rte_mov32((uint8_t *)dst, (const uint8_t *)src);
src = (const uint8_t *)src + dstofss;
dst = (uint8_t *)dst + dstofss;
-   srcofs = (int)((long long)(const void *)src & 0x0F);
+   srcofs = (uintptr_t)src & 0x0F;

/**
 * For aligned copy
--
1.9.3



[dpdk-dev] [PATCH v3] librte_eal/common: Fix cast from pointer to integer of different size

2015-03-05 Thread Tang, HaifengX

Hi Thomas  and all :

  I686   gcc and icc targets both have the below build issue:

For GCC(after apply the patch :[dpdk-dev] [PATCH v3] librte_eal/common: Fix 
cast from pointer to integer of different size)

== Build lib/librte_hash
  CC rte_hash.o
/jenkins/workspace/DPDK_AUTO_IDT_VM_FC18_32_BUILD2/DPDK/lib/librte_hash/rte_hash_crc.h:
 Assembler messages:
/jenkins/workspace/DPDK_AUTO_IDT_VM_FC18_32_BUILD2/DPDK/lib/librte_hash/rte_hash_crc.h:380:
 Error: unsupported instruction `crc32'
/jenkins/workspace/DPDK_AUTO_IDT_VM_FC18_32_BUILD2/DPDK/lib/librte_hash/rte_hash_crc.h:380:
 Error: unsupported instruction `crc32'
gmake[5]: *** [rte_hash.o] Error 1
gmake[4]: *** [librte_hash] Error 2
gmake[3]: *** [lib] Error 2
gmake[2]: *** [all] Error 2
gmake[1]: *** [i686-native-linuxapp-gcc_install] Error 2
gmake: *** [install] Error 2

For ICC :
== Build lib/librte_hash
  CC rte_hash.o
/tmp/iccOsnsZzas_.s: Assembler messages:
/tmp/iccOsnsZzas_.s:49: Error: unsupported instruction `crc32'
/tmp/iccOsnsZzas_.s:133: Error: unsupported instruction `crc32'
make[5]: *** [rte_hash.o] Error 1
make[4]: *** [librte_hash] Error 2
make[3]: *** [lib] Error 2
make[2]: *** [all] Error 2
make[1]: *** [i686-native-linuxapp-icc_install] Error 2
make: *** [install] Error 2

Can anyone can help to check the assemble code .

thanks


-Original Message-
From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Michael Qiu
Sent: Thursday, March 05, 2015 3:47 PM
To: dev at dpdk.org
Subject: [dpdk-dev] [PATCH v3] librte_eal/common: Fix cast from pointer to 
integer of different size

./i686-native-linuxapp-gcc/include/rte_memcpy.h:592:23: error:
cast from pointer to integer of different size [-Werror=pointer-to-int-cast]

  dstofss = 16 - (int)((long long)(void *)dst & 0x0F) + 16;

Type 'long long' is 64-bit in i686 platform while 'void *'
is 32-bit.

Signed-off-by: Michael Qiu 
---
v3 --> v2:
make dstofss and srcofs to be type size_t
casting type use uintptr_t

v2 --> v1:
Remove unnecessary casting (void *)
 lib/librte_eal/common/include/arch/x86/rte_memcpy.h | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/lib/librte_eal/common/include/arch/x86/rte_memcpy.h 
b/lib/librte_eal/common/include/arch/x86/rte_memcpy.h
index 7b2d382..aa433e4 100644
--- a/lib/librte_eal/common/include/arch/x86/rte_memcpy.h
+++ b/lib/librte_eal/common/include/arch/x86/rte_memcpy.h
@@ -493,8 +493,8 @@ rte_memcpy(void *dst, const void *src, size_t n)  {
__m128i xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, xmm8;
void *ret = dst;
-   int dstofss;
-   int srcofs;
+   size_t dstofss;
+   size_t srcofs;

/**
 * Copy less than 16 bytes
@@ -589,12 +589,12 @@ COPY_BLOCK_64_BACK15:
 * unaligned copy functions require up to 15 bytes
 * backwards access.
 */
-   dstofss = 16 - (int)((long long)(void *)dst & 0x0F) + 16;
+   dstofss = 16 - ((uintptr_t)dst & 0x0F) + 16;
n -= dstofss;
rte_mov32((uint8_t *)dst, (const uint8_t *)src);
src = (const uint8_t *)src + dstofss;
dst = (uint8_t *)dst + dstofss;
-   srcofs = (int)((long long)(const void *)src & 0x0F);
+   srcofs = (uintptr_t)src & 0x0F;

/**
 * For aligned copy
--
1.9.3