From: Paolo Abeni <pabeni@redhat.com>
To: "Chia-Yu Chang (Nokia)" <chia-yu.chang@nokia-bell-labs.com>,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
"davem@davemloft.net" <davem@davemloft.net>,
"stephen@networkplumber.org" <stephen@networkplumber.org>,
"jhs@mojatatu.com" <jhs@mojatatu.com>,
"edumazet@google.com" <edumazet@google.com>,
"kuba@kernel.org" <kuba@kernel.org>,
"dsahern@kernel.org" <dsahern@kernel.org>,
"ij@kernel.org" <ij@kernel.org>,
"ncardwell@google.com" <ncardwell@google.com>,
"Koen De Schepper (Nokia)" <koen.de_schepper@nokia-bell-labs.com>,
"g.white@CableLabs.com" <g.white@CableLabs.com>,
"ingemar.s.johansson@ericsson.com"
<ingemar.s.johansson@ericsson.com>,
"mirja.kuehlewind@ericsson.com" <mirja.kuehlewind@ericsson.com>,
"cheshire@apple.com" <cheshire@apple.com>,
"rs.ietf@gmx.at" <rs.ietf@gmx.at>,
"Jason_Livingood@comcast.com" <Jason_Livingood@comcast.com>,
"vidhi_goel@apple.com" <vidhi_goel@apple.com>
Cc: Olga Albisser <olga@albisser.org>,
"Olivier Tilmans (Nokia)" <olivier.tilmans@nokia.com>,
Henrik Steen <henrist@henrist.net>,
Bob Briscoe <research@bobbriscoe.net>
Subject: Re: [PATCH v4 net-next 1/1] sched: Add dualpi2 qdisc
Date: Tue, 29 Oct 2024 17:08:37 +0100 [thread overview]
Message-ID: <1201dfde-c552-4f61-b2bd-b3415eb7b4ed@redhat.com> (raw)
In-Reply-To: <AM9PR07MB7969E939CA6C563F9A4061B4A34B2@AM9PR07MB7969.eurprd07.prod.outlook.com>
On 10/29/24 16:27, Chia-Yu Chang (Nokia) wrote:
> On Tuesday, October 29, 2024 1:56 PM Paolo Abeni <pabeni@redhat.com> wrote:
>> On 10/22/24 00:12, chia-yu.chang@nokia-bell-labs.com wrote:
>>> +/* Default alpha/beta values give a 10dB stability margin with
>>> +max_rtt=100ms. */ static void dualpi2_reset_default(struct
>>> +dualpi2_sched_data *q) {
>>> + q->sch->limit = 10000; /* Max 125ms at 1Gbps */
>>> +
>>> + q->pi2.target = 15 * NSEC_PER_MSEC;
>>> + q->pi2.tupdate = 16 * NSEC_PER_MSEC;
>>> + q->pi2.alpha = dualpi2_scale_alpha_beta(41); /* ~0.16 Hz * 256 */
>>> + q->pi2.beta = dualpi2_scale_alpha_beta(819); /* ~3.20 Hz * 256 */
>>> +
>>> + q->step.thresh = 1 * NSEC_PER_MSEC;
>>> + q->step.in_packets = false;
>>> +
>>> + dualpi2_calculate_c_protection(q->sch, q, 10); /* wc=10%,
>>> + wl=90% */
>>> +
>>> + q->ecn_mask = INET_ECN_ECT_1;
>>> + q->coupling_factor = 2; /* window fairness for equal RTTs */
>>> + q->drop_overload = true; /* Preserve latency by dropping */
>>> + q->drop_early = false; /* PI2 drops on dequeue */
>>> + q->split_gso = true;
>
>> This is a very unexpected default. Splitting GSO packets earlier WRT the H/W constaints definitely impact performances in a bad way.
>
>> Under which condition this is expected to give better results?
>> It should be at least documented clearly.
>
> I see a similar operation exists in other qdisc (e.g., sch_tbf.c and sch_cake). They both walk through segs of skb_list.
> Instead, I see other qdisc use "skb_list_walk_safe" macro, so I was thinking to follow a similar approach in dualpi2 (or other comments please let me know).
> Or do you suggest we should force gso-splitting like in other qdisc?
The main point is not traversing an skb list, but the segmentation this
scheduler performs by default. Note that the sch_tbf case is slightly
different, as it segments skbs as a last resort to avoid dropping
packets exceeding the burst limit.
You should provide some more wording or test showing when and how such
splitting is advantageous - i.e. as done in the cake scheduler in commit
2db6dc2662bab14e59517ab4b86a164cc4d2db42.
The reason for the above is that performing unneeded S/W segmentation
is, generally speaking, a huge loss.
Thanks,
Paolo
next prev parent reply other threads:[~2024-10-29 16:08 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-21 22:12 [PATCH v4 net-next 0/1] DualPI2 patch chia-yu.chang
2024-10-21 22:12 ` [PATCH v4 net-next 1/1] sched: Add dualpi2 qdisc chia-yu.chang
2024-10-26 18:57 ` Dave Taht
2024-10-28 18:37 ` Koen De Schepper (Nokia)
2024-10-29 12:56 ` Paolo Abeni
2024-10-29 15:27 ` Chia-Yu Chang (Nokia)
2024-10-29 16:08 ` Paolo Abeni [this message]
2024-10-29 16:53 ` Eric Dumazet
2024-10-31 13:27 ` Neal Cardwell
2024-10-31 14:30 ` Eric Dumazet
2024-10-31 16:45 ` Koen De Schepper (Nokia)
2024-10-31 17:27 ` Dave Taht
2024-10-24 17:25 ` [PATCH v4 net-next 0/1] DualPI2 patch Jamal Hadi Salim
2024-10-26 16:52 ` Chia-Yu Chang (Nokia)
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1201dfde-c552-4f61-b2bd-b3415eb7b4ed@redhat.com \
--to=pabeni@redhat.com \
--cc=Jason_Livingood@comcast.com \
--cc=cheshire@apple.com \
--cc=chia-yu.chang@nokia-bell-labs.com \
--cc=davem@davemloft.net \
--cc=dsahern@kernel.org \
--cc=edumazet@google.com \
--cc=g.white@CableLabs.com \
--cc=henrist@henrist.net \
--cc=ij@kernel.org \
--cc=ingemar.s.johansson@ericsson.com \
--cc=jhs@mojatatu.com \
--cc=koen.de_schepper@nokia-bell-labs.com \
--cc=kuba@kernel.org \
--cc=mirja.kuehlewind@ericsson.com \
--cc=ncardwell@google.com \
--cc=netdev@vger.kernel.org \
--cc=olga@albisser.org \
--cc=olivier.tilmans@nokia.com \
--cc=research@bobbriscoe.net \
--cc=rs.ietf@gmx.at \
--cc=stephen@networkplumber.org \
--cc=vidhi_goel@apple.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.