Test-Label: intel-Functional Test-Status: SUCCESS _Functional PASS_ DPDK git repo: dpdk commit c15902587b538ff02cfb0fbb4dd481f1503d936b Author: Wenwu Ma Date: Wed Mar 20 15:23:32 2024 +0800 dmadev: fix structure alignment The structure rte_dma_dev needs to be aligned to the cache line, but the return value of malloc may not be aligned to the cache line. When we use memset to clear the rte_dma_dev object, it may cause a segmentation fault in clang-x86-platform. This is because clang uses the "vmovaps" assembly instruction for memset, which requires that the operands (rte_dma_dev objects) must aligned on a 16-byte boundary or a general-protection exception (#GP) is generated. Therefore, either additional memory is applied for re-alignment, or the rte_dma_dev object does not require cache line alignment. The patch chooses the former option to fix the issue. Fixes: b36970f2e13e ("dmadev: introduce DMA device library") Cc: stable@dpdk.org Signed-off-by: Wenwu Ma Reviewed-by: Chengwen Feng Smoke-Testing Summary : 31 Case Done, 31 Successful, 0 Failures OS : Ubuntu 22.04.2 LTS Kernel : 5.15.0-60-generic GCC : 11.3.0-1ubuntu1~22.04 NIC : Ethernet Controller XL710 for 40GbE QSFP+ Target : x86_64-native-linuxapp-gcc Test result details: +-----------------+---------------------------------------------------+-------+ | suite | case | status| +-----------------+---------------------------------------------------+-------+ | checksum_offload| test_checksum_offload_with_vlan | passed| | checksum_offload| test_do_not_insert_checksum_on_the_transmit_packet| passed| | checksum_offload| test_hardware_checksum_check_ip_rx | passed| | checksum_offload| test_hardware_checksum_check_ip_tx | passed| | checksum_offload| test_hardware_checksum_check_l4_rx | passed| | checksum_offload| test_hardware_checksum_check_l4_tx | passed| | checksum_offload| test_insert_checksum_on_the_transmit_packet | passed| | checksum_offload| test_rx_checksum_valid_flags | passed| | dual_vlan | test_dual_vlan_priority_rxtx | passed| | dual_vlan | test_vlan_filter_config | passed| | dual_vlan | test_vlan_filter_table | passed| | dual_vlan | test_vlan_insert_config | passed| | dual_vlan | test_vlan_random_test | passed| | dual_vlan | test_vlan_strip_config | passed| | dual_vlan | test_vlan_synthetic_test | passed| | dual_vlan | test_vlan_tpid_config | passed| | dual_vlan | test_vlan_stripq_config | n/a | | jumboframes | test_jumboframes_bigger_jumbo | passed| | jumboframes | test_jumboframes_jumbo_jumbo | passed| | jumboframes | test_jumboframes_jumbo_nojumbo | passed| | jumboframes | test_jumboframes_normal_jumbo | passed| | jumboframes | test_jumboframes_normal_nojumbo | passed| | rxtx_offload | test_rxoffload_port_all | passed| | rxtx_offload | test_rxoffload_port_cmdline | passed| | rxtx_offload | test_txoffload_port | passed| | rxtx_offload | test_txoffload_port_all | passed| | rxtx_offload | test_txoffload_port_checksum | passed| | rxtx_offload | test_txoffload_port_cmdline | passed| | rxtx_offload | test_txoffload_port_multi_segs | passed| | rxtx_offload | test_txoffload_queue | passed| | rxtx_offload | test_rxoffload_queue | n/a | +-----------------+---------------------------------------------------+-------+ DPDK STV team