Cake - FQ_codel the next generation
 help / color / mirror / Atom feed
* [Cake] Fwd: [NetDev-People] 0x19: Talk, mq-cake: Scaling software rate limiting across CPU cores
       [not found] <CAM0EoM=bFMVMV-f2n4BNSJoqOAxqr+kcJ9kg2NLVvmw2rX-2WA@mail.gmail.com>
@ 2025-02-10  9:30 ` Toke Høiland-Jørgensen
  2025-02-10 10:11   ` [Cake] " Sebastian Moeller
  0 siblings, 1 reply; 5+ messages in thread
From: Toke Høiland-Jørgensen @ 2025-02-10  9:30 UTC (permalink / raw)
  To: cake

[-- Attachment #1: Type: text/plain, Size: 8 bytes --]

FYI :)


[-- Attachment #2: Type: message/rfc822, Size: 1414 bytes --]

From: Jamal Hadi Salim via people <people@netdevconf.info>
To: people <people@netdevconf.info>
Cc: Kimberley Jeffries <kimberleyjeffries@gmail.com>, Lael Santos <lael.santos@expertisesolutions.com.br>, program-committee@netdevconf.info, Bruno Banelli <bruno.banelli@sartura.hr>, j.koeppeler@tu-berlin.de, stefan.schmid@tu-berlin.de, Jamal Hadi Salim <jhs@mojatatu.com>
Subject: [NetDev-People] 0x19: Talk, mq-cake: Scaling software rate limiting across CPU cores
Date: Sun, 9 Feb 2025 08:37:41 -0500

Qdiscs rely on global lock to sync state across CPUs and therefore
dont scale in presence of many cores (or in presence of very high
bandwidth).
Jonas Köppeler, Toke Høiland-Jørgensen, and Stefan Schmid implemented
a multi-queue variant of sch_cake that can scale its rate limiting
across hardware queues (and thus CPU cores) by sharing a bit of state
on top of the mq qdisc.

In this talk, they will present the implementation, performance
evaluation, as well as discuss their proposal for an API that will
make this work upstreamable, and applicable to other qdiscs as well.

Details: https://netdevconf.info/0x19/16

cheers,
jamal
_______________________________________________
people mailing list -- people@netdevconf.info
To unsubscribe send an email to people-leave@netdevconf.info

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Cake] [NetDev-People] 0x19: Talk, mq-cake: Scaling software rate limiting across CPU cores
  2025-02-10  9:30 ` [Cake] Fwd: [NetDev-People] 0x19: Talk, mq-cake: Scaling software rate limiting across CPU cores Toke Høiland-Jørgensen
@ 2025-02-10 10:11   ` Sebastian Moeller
  2025-02-10 10:35     ` Toke Høiland-Jørgensen
  0 siblings, 1 reply; 5+ messages in thread
From: Sebastian Moeller @ 2025-02-10 10:11 UTC (permalink / raw)
  To: Toke Høiland-Jørgensen; +Cc: cake

That sounds most excellent...

This also means that now we need cheap router hardware with > 2 NIC queues and > 2 CPUs ;) (with ingress and egress shaping the current state is that 2 CPUs can be utilised). I wonder, does this work for IFBs as well or only for real hardware NIC queues?

Regards
	Sebastian


> On 10. Feb 2025, at 10:30, Toke Høiland-Jørgensen via Cake <cake@lists.bufferbloat.net> wrote:
> 
> FYI :)
> 
> 
> From: Jamal Hadi Salim via people <people@netdevconf.info>
> Subject: [NetDev-People] 0x19: Talk, mq-cake: Scaling software rate limiting across CPU cores
> Date: 9. February 2025 at 14:37:41 CET
> To: people <people@netdevconf.info>
> Cc: Kimberley Jeffries <kimberleyjeffries@gmail.com>, Lael Santos <lael.santos@expertisesolutions.com.br>, program-committee@netdevconf.info, Bruno Banelli <bruno.banelli@sartura.hr>, j.koeppeler@tu-berlin.de, stefan.schmid@tu-berlin.de, Jamal Hadi Salim <jhs@mojatatu.com>
> 
> 
> Qdiscs rely on global lock to sync state across CPUs and therefore
> dont scale in presence of many cores (or in presence of very high
> bandwidth).
> Jonas Köppeler, Toke Høiland-Jørgensen, and Stefan Schmid implemented
> a multi-queue variant of sch_cake that can scale its rate limiting
> across hardware queues (and thus CPU cores) by sharing a bit of state
> on top of the mq qdisc.
> 
> In this talk, they will present the implementation, performance
> evaluation, as well as discuss their proposal for an API that will
> make this work upstreamable, and applicable to other qdiscs as well.
> 
> Details: https://netdevconf.info/0x19/16
> 
> cheers,
> jamal
> _______________________________________________
> people mailing list -- people@netdevconf.info
> To unsubscribe send an email to people-leave@netdevconf.info
> 
> 
> _______________________________________________
> Cake mailing list
> Cake@lists.bufferbloat.net
> https://lists.bufferbloat.net/listinfo/cake


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Cake] [NetDev-People] 0x19: Talk, mq-cake: Scaling software rate limiting across CPU cores
  2025-02-10 10:11   ` [Cake] " Sebastian Moeller
@ 2025-02-10 10:35     ` Toke Høiland-Jørgensen
  2025-02-10 12:06       ` Sebastian Moeller
  0 siblings, 1 reply; 5+ messages in thread
From: Toke Høiland-Jørgensen @ 2025-02-10 10:35 UTC (permalink / raw)
  To: Sebastian Moeller; +Cc: cake

Sebastian Moeller <moeller0@gmx.de> writes:

> That sounds most excellent...
>
> This also means that now we need cheap router hardware with > 2 NIC
> queues and > 2 CPUs ;) (with ingress and egress shaping the current
> state is that 2 CPUs can be utilised).

Well, even if there are only 2 CPUs, the MQ version can utilise both of
those in one direction, which helps for asymmetrical traffic :)

> I wonder, does this work for IFBs as well or only for real hardware
> NIC queues?

Yup, you can specify the number of TX queues on an ifb interface when
creating it (ip link add numtxqueues 2 type ifb).

-Toke


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Cake] [NetDev-People] 0x19: Talk, mq-cake: Scaling software rate limiting across CPU cores
  2025-02-10 10:35     ` Toke Høiland-Jørgensen
@ 2025-02-10 12:06       ` Sebastian Moeller
  2025-02-10 12:30         ` Toke Høiland-Jørgensen
  0 siblings, 1 reply; 5+ messages in thread
From: Sebastian Moeller @ 2025-02-10 12:06 UTC (permalink / raw)
  To: Toke Høiland-Jørgensen; +Cc: cake

Hi Toke,


> On 10. Feb 2025, at 11:35, Toke Høiland-Jørgensen <toke@redhat.com> wrote:
> 
> Sebastian Moeller <moeller0@gmx.de> writes:
> 
>> That sounds most excellent...
>> 
>> This also means that now we need cheap router hardware with > 2 NIC
>> queues and > 2 CPUs ;) (with ingress and egress shaping the current
>> state is that 2 CPUs can be utilised).
> 
> Well, even if there are only 2 CPUs, the MQ version can utilise both of
> those in one direction, which helps for asymmetrical traffic :)

Fair point, I was thinking bi directional saturating traffic on a symmetric link, which I guess is far from the typical use case ;)

> 
>> I wonder, does this work for IFBs as well or only for real hardware
>> NIC queues?
> 
> Yup, you can specify the number of TX queues on an ifb interface when
> creating it (ip link add numtxqueues 2 type ifb).

Great, so this will then work even if the true NIC hardware is not multi-queue capable or does numtxqueues need to be <= true number of NIC queues?

> 
> -Toke
> 


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Cake] [NetDev-People] 0x19: Talk, mq-cake: Scaling software rate limiting across CPU cores
  2025-02-10 12:06       ` Sebastian Moeller
@ 2025-02-10 12:30         ` Toke Høiland-Jørgensen
  0 siblings, 0 replies; 5+ messages in thread
From: Toke Høiland-Jørgensen @ 2025-02-10 12:30 UTC (permalink / raw)
  To: Sebastian Moeller; +Cc: cake

Sebastian Moeller <moeller0@gmx.de> writes:

> Hi Toke,
>
>
>> On 10. Feb 2025, at 11:35, Toke Høiland-Jørgensen <toke@redhat.com> wrote:
>> 
>> Sebastian Moeller <moeller0@gmx.de> writes:
>> 
>>> That sounds most excellent...
>>> 
>>> This also means that now we need cheap router hardware with > 2 NIC
>>> queues and > 2 CPUs ;) (with ingress and egress shaping the current
>>> state is that 2 CPUs can be utilised).
>> 
>> Well, even if there are only 2 CPUs, the MQ version can utilise both of
>> those in one direction, which helps for asymmetrical traffic :)
>
> Fair point, I was thinking bi directional saturating traffic on a
> symmetric link, which I guess is far from the typical use case ;)

Exactly :)

>> 
>>> I wonder, does this work for IFBs as well or only for real hardware
>>> NIC queues?
>> 
>> Yup, you can specify the number of TX queues on an ifb interface when
>> creating it (ip link add numtxqueues 2 type ifb).
>
> Great, so this will then work even if the true NIC hardware is not
> multi-queue capable or does numtxqueues need to be <= true number of
> NIC queues?

Hmm, no, ifb queues are independent, so yeah, I guess ingress shaping
could scale regardless of the number of HWQs...

-Toke


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2025-02-10 12:30 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <CAM0EoM=bFMVMV-f2n4BNSJoqOAxqr+kcJ9kg2NLVvmw2rX-2WA@mail.gmail.com>
2025-02-10  9:30 ` [Cake] Fwd: [NetDev-People] 0x19: Talk, mq-cake: Scaling software rate limiting across CPU cores Toke Høiland-Jørgensen
2025-02-10 10:11   ` [Cake] " Sebastian Moeller
2025-02-10 10:35     ` Toke Høiland-Jørgensen
2025-02-10 12:06       ` Sebastian Moeller
2025-02-10 12:30         ` Toke Høiland-Jørgensen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox