* RFC - GRO Flowlookup Optimisation
@ 2023-11-22 6:01 kumaraparameshwaran rathinavel
2023-11-22 10:35 ` Ferruh Yigit
0 siblings, 1 reply; 5+ messages in thread
From: kumaraparameshwaran rathinavel @ 2023-11-22 6:01 UTC (permalink / raw)
To: dev, hujiayu.hu
[-- Attachment #1: Type: text/plain, Size: 786 bytes --]
Hi Folks,
The current GRO code uses an unoptimised version of flow lookup where each
flow in the table is iterated over during the flow matching process. For a
rte_gro_reassemble_burst in lightweight mode this would not cause much of
an impact. But with rte_gro_reassemble which is done with a timeout
interval, this causes higher CPU utilisation during throughput tests. The
proposal here is to use a Hash based flowtable which could make use of the
rte_hash table implementation in DPDK. There could be a hash table for each
of the GRO types. The lookup function and the key could be different for
each one of the types. If there is a consensus that this could have a
better performance impact I would work on an initial patch set. Please let
me know your thoughts.
Thanks,
Kumara.
[-- Attachment #2: Type: text/html, Size: 893 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: RFC - GRO Flowlookup Optimisation
2023-11-22 6:01 RFC - GRO Flowlookup Optimisation kumaraparameshwaran rathinavel
@ 2023-11-22 10:35 ` Ferruh Yigit
2023-11-22 15:35 ` kumaraparameshwaran rathinavel
0 siblings, 1 reply; 5+ messages in thread
From: Ferruh Yigit @ 2023-11-22 10:35 UTC (permalink / raw)
To: kumaraparameshwaran rathinavel, dev, hujiayu.hu
On 11/22/2023 6:01 AM, kumaraparameshwaran rathinavel wrote:
> Hi Folks,
>
> The current GRO code uses an unoptimised version of flow lookup where
> each flow in the table is iterated over during the flow matching
> process. For a rte_gro_reassemble_burst in lightweight mode this would
> not cause much of an impact. But with rte_gro_reassemble which is done
> with a timeout interval, this causes higher CPU utilisation during
> throughput tests. The proposal here is to use a Hash based flowtable
> which could make use of the rte_hash table implementation in DPDK.
> There could be a hash table for each of the GRO types. The lookup
> function and the key could be different for each one of the types. If
> there is a consensus that this could have a better performance impact I
> would work on an initial patch set. Please let me know your thoughts.
>
Hi Kumara,
Your proposal looks reasonable to me, I think it worth to try.
cc'ed techboard for more comment.
Do you have any performance measurement with the existing code? To have
it helps to evaluate impact of the change.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: RFC - GRO Flowlookup Optimisation
2023-11-22 10:35 ` Ferruh Yigit
@ 2023-11-22 15:35 ` kumaraparameshwaran rathinavel
0 siblings, 0 replies; 5+ messages in thread
From: kumaraparameshwaran rathinavel @ 2023-11-22 15:35 UTC (permalink / raw)
To: Ferruh Yigit; +Cc: dev, hujiayu.hu
[-- Attachment #1: Type: text/plain, Size: 1751 bytes --]
On Wed, Nov 22, 2023 at 4:05 PM Ferruh Yigit <ferruh.yigit@amd.com> wrote:
> On 11/22/2023 6:01 AM, kumaraparameshwaran rathinavel wrote:
> > Hi Folks,
> >
> > The current GRO code uses an unoptimised version of flow lookup where
> > each flow in the table is iterated over during the flow matching
> > process. For a rte_gro_reassemble_burst in lightweight mode this would
> > not cause much of an impact. But with rte_gro_reassemble which is done
> > with a timeout interval, this causes higher CPU utilisation during
> > throughput tests. The proposal here is to use a Hash based flowtable
> > which could make use of the rte_hash table implementation in DPDK.
> > There could be a hash table for each of the GRO types. The lookup
> > function and the key could be different for each one of the types. If
> > there is a consensus that this could have a better performance impact I
> > would work on an initial patch set. Please let me know your thoughts.
> >
>
>
> Hi Kumara,
>
> Your proposal looks reasonable to me, I think it worth to try.
> cc'ed techboard for more comment.
>
>> Thanks Ferruh - Sure I will get a initial patch set with TCP/IPv4 GRO
>> type.
>>
>
> Do you have any performance measurement with the existing code? To have
> it helps to evaluate impact of the change.
>
>> I did some testing sometime back and the observations were that on a
>> 10Gbps link, the throughput value with iperf testing
>> of unoptimised and optimised were almost the same, but the CPU
>> conservation was upto 30-35%. So any tests running in
>> parallel like imix kind of traffic would definitely have better results.
>> I will try to profile the two cases with some performance impacting
>> results.
>>
>
[-- Attachment #2: Type: text/html, Size: 2442 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: RFC - GRO Flowlookup Optimisation
@ 2023-11-22 15:14 胡嘉瑜
2023-11-22 15:36 ` kumaraparameshwaran rathinavel
0 siblings, 1 reply; 5+ messages in thread
From: 胡嘉瑜 @ 2023-11-22 15:14 UTC (permalink / raw)
To: kumaraparameshwaran rathinavel, dev
[-- Attachment #1: Type: text/plain, Size: 1206 bytes --]
Hi Kumara,
It is a good idea. You can send the code and I will help to review.
Thanks,
Jiayu
发自我的iPhone
------------------ Original ------------------
From: kumaraparameshwaran rathinavel <kumaraparamesh92@gmail.com>
Date: Wed,Nov 22,2023 2:01 PM
To: dev <dev@dpdk.org>, hujiayu.hu <hujiayu.hu@foxmail.com>
Subject: Re: RFC - GRO Flowlookup Optimisation
Hi Folks,
The current GRO code uses an unoptimised version of flow lookup where each flow in the table is iterated over during the flow matching process. For a rte_gro_reassemble_burst in lightweight mode this would not cause much of an impact. But with rte_gro_reassemble which is done with a timeout interval, this causes higher CPU utilisation during throughput tests. The proposal here is to use a Hash based flowtable which could make use of the rte_hash table implementation in DPDK. There could be a hash table for each of the GRO types. The lookup function and the key could be different for each one of the types. If there is a consensus that this could have a better performance impact I would work on an initial patch set. Please let me know your thoughts.
Thanks,
Kumara.
[-- Attachment #2: Type: text/html, Size: 2151 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: RFC - GRO Flowlookup Optimisation
2023-11-22 15:14 胡嘉瑜
@ 2023-11-22 15:36 ` kumaraparameshwaran rathinavel
0 siblings, 0 replies; 5+ messages in thread
From: kumaraparameshwaran rathinavel @ 2023-11-22 15:36 UTC (permalink / raw)
To: 胡嘉瑜; +Cc: dev
[-- Attachment #1: Type: text/plain, Size: 1426 bytes --]
On Wed, Nov 22, 2023 at 8:44 PM 胡嘉瑜 <hujiayu.hu@foxmail.com> wrote:
> Hi Kumara,
>
> It is a good idea. You can send the code and I will help to review.
>
>> Thanks Jiyau. Will try to get out a PR in few days.
>>
>
> Thanks,
> Jiayu
> ------------------------------
> 发自我的iPhone
>
>
> ------------------ Original ------------------
> *From:* kumaraparameshwaran rathinavel <kumaraparamesh92@gmail.com>
> *Date:* Wed,Nov 22,2023 2:01 PM
> *To:* dev <dev@dpdk.org>, hujiayu.hu <hujiayu.hu@foxmail.com>
> *Subject:* Re: RFC - GRO Flowlookup Optimisation
>
> Hi Folks,
>
> The current GRO code uses an unoptimised version of flow lookup where each
> flow in the table is iterated over during the flow matching process. For a
> rte_gro_reassemble_burst in lightweight mode this would not cause much of
> an impact. But with rte_gro_reassemble which is done with a timeout
> interval, this causes higher CPU utilisation during throughput tests. The
> proposal here is to use a Hash based flowtable which could make use of the
> rte_hash table implementation in DPDK. There could be a hash table for each
> of the GRO types. The lookup function and the key could be different for
> each one of the types. If there is a consensus that this could have a
> better performance impact I would work on an initial patch set. Please let
> me know your thoughts.
>
> Thanks,
> Kumara.
>
[-- Attachment #2: Type: text/html, Size: 2985 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2023-11-22 15:37 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-11-22 6:01 RFC - GRO Flowlookup Optimisation kumaraparameshwaran rathinavel
2023-11-22 10:35 ` Ferruh Yigit
2023-11-22 15:35 ` kumaraparameshwaran rathinavel
2023-11-22 15:14 胡嘉瑜
2023-11-22 15:36 ` kumaraparameshwaran rathinavel
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).