[dpdk-dev] [PATCH] i40e: prefetch next mbuf in rx alloc code
Zhang, Helin
helin.zhang at intel.com
Fri Jul 10 17:24:00 CEST 2015
Hi Marion
> -----Original Message-----
> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Damjan Marion
> Sent: Wednesday, June 10, 2015 3:19 PM
> To: dev at dpdk.org
> Cc: Damjan Marion
> Subject: [dpdk-dev] [PATCH] i40e: prefetch next mbuf in rx alloc code
>
> This patch improves performance of vectored rx on i40e devices.
It seems this is not a vectored i40e driver, but it is a good idea.
Please reword the commit logs!
>
> Signed-off-by: Damjan Marion <damarion at cisco.com>
> ---
> drivers/net/i40e/i40e_rxtx.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/drivers/net/i40e/i40e_rxtx.c b/drivers/net/i40e/i40e_rxtx.c index
> 2de0ac4..152e9e6 100644
> --- a/drivers/net/i40e/i40e_rxtx.c
> +++ b/drivers/net/i40e/i40e_rxtx.c
> @@ -778,6 +778,11 @@ i40e_rx_alloc_bufs(struct i40e_rx_queue *rxq)
>
> rxdp = &rxq->rx_ring[alloc_idx];
> for (i = 0; i < rxq->rx_free_thresh; i++) {
> +
> + /* Prefetch next mbuf */
> + if (i < (rxq->rx_free_thresh - 1))
It would be better to add a 'likely' in above line.
> + rte_prefetch0 (rxep[i+1].mbuf);
Have you checked with checkpatch.pl?
I guess there might be a warning/error there for above line.
There shouldn't be a space between 'rte_prefetch0' and '('.
Thanks,
Helin
> +
> mb = rxep[i].mbuf;
> rte_mbuf_refcnt_set(mb, 1);
> mb->next = NULL;
> --
> 2.1.4
More information about the dev
mailing list