[dpdk-dev] [PATCH v4 1/2] eal/tile: add rte_vect.h and enable CONFIG_RTE_LIBRTE_LPM

Thomas Monjalon thomas.monjalon at 6wind.com
Tue Mar 8 20:59:06 CET 2016


2016-02-09 23:04, Liming Sun:
> rte_vect.h was missing earlier thus LPM was disabled and l3fwd is
> not able to compile. This commit implements the vector api and
> enable LPM in the tilegx configuration by default.
> 
> Signed-off-by: Liming Sun <lsun at ezchip.com>
> Acked-by: Zhigang Lu <zlu at ezchip.com>
[...]
>  # This following libraries are not available on the tile architecture.
>  # So they're turned off.
> -CONFIG_RTE_LIBRTE_LPM=n
> +CONFIG_RTE_LIBRTE_LPM=y

You just have to remove the disabling line.

> +typedef union rte_xmm {
> +	__m128i x;
> +	uint32_t u32[XMM_SIZE / sizeof(uint32_t)];
> +	uint64_t u64[XMM_SIZE / sizeof(uint64_t)];
> +} rte_xmm_t;

Why do you mimic SSE?

> +/* Shifts right the 4 32-bit integers by count bits with zeros. */
> +#define _mm_srli_epi32(v, cnt) ({                  \
> +	rte_xmm_t m;                                 \
> +	m.u64[0] = __insn_v4shru(((rte_xmm_t*)&(v))->u64[0], cnt); \
> +	m.u64[1] = __insn_v4shru(((rte_xmm_t*)&(v))->u64[1], cnt); \
> +	(m.x);                                       \
> +})

Please check the work in progress to have arch-specific implementation
of rte_lpm_lookupx4():
	http://dpdk.org/dev/patchwork/patch/10478/


More information about the dev mailing list