Thread (32 messages) 32 messages, 7 authors, 2025-02-05

Re: [PATCH net-next V5 00/11] net/mlx5: ConnectX-8 SW Steering + Rate management on traffic classes

flat view

From: Cosmin Ratiu <hidden>
Date: 2024-12-17 15:15:00

On Mon, 2024-12-16 at 21:45 -0800, Jakub Kicinski wrote:
quoted
Right now TCs are not modeled in net-shapers at all. That's why I'm
waiting for Paolo to comment, I have no idea what thoughts were put
into modeling traffic classes in net-shapers.
I'm not sure if Paolo is familiar with details of any device capable
of
implementing shaping based on TC. You are, I hope, as you're trying
to add Linux uAPI for it.
I guess nobody has perfect expertise in both TC and net-shapers. But
between all of us, we'll find a way.
quoted
quoted
The current patchset extends the well-established devlink rate API
with
the minimal set of fields required to model traffic classes and
offers
a full implementation of this new feature in a driver.
"I just need these few extra fields" is not conducive to good
designs which can stand the test of time.
I had meant that as "the uAPI needs at least that set of fields to
express tc bandwidth proportions anyway, regardless of discussions
around net-shapers". I am not making any claims about the quality of
the design besides its minimalistic nature.
quoted
It was designed and started before net-shapers was merged. 
We did consider integrating with net-shapers, but because it wasn't
yet merged, it couldn't do TCs or multi-device grouping (nor intend
to do multi-device), it was rejected as the API of choice.
net-shapers took months of meetings and many, many revisions.
Providing an abstraction for all scheduling hierarchies was
an explicit goal. And someone from nVidia was actively reviewing.
Now you say that in another part of nVidia a decision was made
to ignore what the community was working on, sit out discussions 
and then try to get your own code merged. Did I get that right?
You got it wrong. Nobody decided to "ignore what the community was
working on" or "get our own code merged".

Back in July, we reached out to Paolo explicitly asking about this use
case. Back then things were still in flux with net-shapers but the
direction was clear for it, to model shaping at netdev and below
levels. Paolo's recommendation was to "stick it with the devlink-rate
objects". Our mistake was not cc-ing the ML in that discussion.
What followed was not "ignoring what the community was working on", but
"focusing on solving the TC shaping at VF and group-of-VFs level" with
the more suitable API as opposed to investing time and effort into
influencing net-shapers towards handling use-cases it didn't intend to.

I'm also not sure who else from nVidia was actively reviewing. I asked
a question at some point, Jiri was also active (but mostly with his
maintainer hat, I guess).
quoted
Can the missing link between TC modeling in net-shapers can be
added
in another series once it is better understood and discussed with
Paolo?
Certainly Paolo's contributions would be appreciated. But I hope 
you realize that he is a networking maintainer (like myself)
and may not have the time to solve your problem for you.
I'm not waiting for him to solve the problem for us, but to offer his
opinion as someone who spent the most time thinking about net-shapers.
It would be bad form for me to start hacking away at that API without
at least hearing from the original author.
I want to be clear that I don't expect you to migrate devlink rate
to net-shaper style API at this point. But we do need at the very
least a clear understanding of how the objects are mapped, and
therefore how TC support would fit into net-shapers.
Ideally, also, less disregard for community efforts.
Again, there was no "disregard for community efforts". There was maybe
a missed opportunity to influence the design of net-shapers towards
handling TCs from the start because we focused on devlink-rate instead.
That will now be corrected.

Separately from that, I was planning to add support for net-shapers ops
in the mlx5 QoS infra, similar with how it was done for the other
drivers that do hw QoS.

Cosmin.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help