In order to send sampled packets to userspace, NIC driver calls
psample api directly. But it creates a hard dependency on module
psample. Introduce psample_ops to remove the hard dependency.
It is initialized when psample module is loaded and set to NULL
when the module is unloaded.
Reported-by: kernel test robot <redacted>
Signed-off-by: Chris Mi <redacted>
Reviewed-by: Jiri Pirko <redacted>
---
v1->v2:
- fix sparse errors
v2->v3:
- remove inline
v3->v4:
- add inline back
v4->v5:
- address Jakub's comments
v5-v6:
- fix psample_stub.c copyright
include/net/psample.h | 26 ++++++++++++++++++++++++++
net/psample/psample.c | 14 +++++++++++++-
net/sched/Makefile | 2 +-
net/sched/psample_stub.c | 5 +++++
4 files changed, 45 insertions(+), 2 deletions(-)
create mode 100644 net/sched/psample_stub.c
@@ -3,7 +3,7 @@# Makefile for the Linux Traffic Control Unit.#-obj-y:=sch_generic.osch_mq.o+obj-y:=sch_generic.osch_mq.opsample_stub.oobj-$(CONFIG_INET)+=sch_frag.oobj-$(CONFIG_NET_SCHED)+=sch_api.osch_blackhole.o
From: Jakub Kicinski <kuba@kernel.org> Date: 2021-02-02 01:15:41
On Mon, 1 Feb 2021 10:04:12 +0800 Chris Mi wrote:
In order to send sampled packets to userspace, NIC driver calls
psample api directly. But it creates a hard dependency on module
psample. Introduce psample_ops to remove the hard dependency.
It is initialized when psample module is loaded and set to NULL
when the module is unloaded.
Reported-by: kernel test robot <redacted>
Signed-off-by: Chris Mi <redacted>
Reviewed-by: Jiri Pirko <redacted>
The necessity of making this change is not obvious (you can fix the
distro scripts instead), you did not include a clarification in the
commit message even though two people asked you why it's needed and
on top of that you keep sending code which doesn't build.
Please consider this change rejected and do not send a v7.
On Mon, 2021-02-01 at 17:14 -0800, Jakub Kicinski wrote:
On Mon, 1 Feb 2021 10:04:12 +0800 Chris Mi wrote:
quoted
In order to send sampled packets to userspace, NIC driver calls
psample api directly. But it creates a hard dependency on module
psample. Introduce psample_ops to remove the hard dependency.
It is initialized when psample module is loaded and set to NULL
when the module is unloaded.
Reported-by: kernel test robot <redacted>
Signed-off-by: Chris Mi <redacted>
Reviewed-by: Jiri Pirko <redacted>
The necessity of making this change is not obvious (you can fix the
distro scripts instead), you did not include a clarification in the
commit message even though two people asked you why it's needed and
on top of that you keep sending code which doesn't build.
Please consider this change rejected and do not send a v7.
Jakub, it is not only about installation dependencies, the issue is
more critical than this,
We had some other issues with similar dependency problem where
mlx5_core had hard dependency with netfilter, firewalld when disabled,
removes netfilter and all its dependencies including mlx5, this is a no
go for our users.
Again, having a hard dependency between a hardware driver and a
peripheral module in the kernel is a bad design.
From: Jakub Kicinski <kuba@kernel.org> Date: 2021-02-02 21:25:37
On Mon, 01 Feb 2021 23:31:15 -0800 Saeed Mahameed wrote:
On Mon, 2021-02-01 at 17:14 -0800, Jakub Kicinski wrote:
quoted
On Mon, 1 Feb 2021 10:04:12 +0800 Chris Mi wrote:
quoted
In order to send sampled packets to userspace, NIC driver calls
psample api directly. But it creates a hard dependency on module
psample. Introduce psample_ops to remove the hard dependency.
It is initialized when psample module is loaded and set to NULL
when the module is unloaded.
Reported-by: kernel test robot <redacted>
Signed-off-by: Chris Mi <redacted>
Reviewed-by: Jiri Pirko <redacted>
The necessity of making this change is not obvious (you can fix the
distro scripts instead), you did not include a clarification in the
commit message even though two people asked you why it's needed and
on top of that you keep sending code which doesn't build.
Please consider this change rejected and do not send a v7.
Jakub, it is not only about installation dependencies, the issue is
more critical than this,
We had some other issues with similar dependency problem where
mlx5_core had hard dependency with netfilter, firewalld when disabled,
removes netfilter and all its dependencies including mlx5, this is a no
go for our users.
Again, having a hard dependency between a hardware driver and a
peripheral module in the kernel is a bad design.
That is not the point.
The technical problem is minor, and it's a problem for _your_ driver.
Yet, it appears to be my responsibility to make sure the patch even
compiles.
I believe there should be a limit to the ignorance a community
volunteer is expected to put up with when dealing with patches
from and for the benefit of a commercial vendor.
This is up for discussion, if you disagree let's talk it out. I'm
not particularly patient (to put it mildly), but I don't understand
how v5 could have built, and yet v6 gets posted with the same exact
problem :/
So from my perspective it seems like the right step to push back.
If you, Tariq, Jiri, Ido or any other seasoned kernel contributor
reposts this after making sure it's up to snuff themselves I will
most certainly take a look / apply.
On Tue, 2021-02-02 at 13:24 -0800, Jakub Kicinski wrote:
On Mon, 01 Feb 2021 23:31:15 -0800 Saeed Mahameed wrote:
...
quoted
Jakub, it is not only about installation dependencies, the issue is
more critical than this,
We had some other issues with similar dependency problem where
mlx5_core had hard dependency with netfilter, firewalld when
disabled,
removes netfilter and all its dependencies including mlx5, this is
a no
go for our users.
Again, having a hard dependency between a hardware driver and a
peripheral module in the kernel is a bad design.
That is not the point.
The technical problem is minor, and it's a problem for _your_ driver.
Yet, it appears to be my responsibility to make sure the patch even
compiles.
I understand your frustration, We should have been more professional
with this patch submission,
I believe there should be a limit to the ignorance a community
volunteer is expected to put up with when dealing with patches
from and for the benefit of a commercial vendor.
totally agree, we have the tools internally to avoid clutter in mailing
list and we do this for pure mlx5 patches, but for net patches, people
tend to hurry and skip the queue so they get feedback ASAP..
this doesn't make it right, I will work to improve this.
This is up for discussion, if you disagree let's talk it out. I'm
not particularly patient (to put it mildly), but I don't understand
how v5 could have built, and yet v6 gets posted with the same exact
problem :/
given the circumstance i would've done the same, even on v4..
sorry for the inconvenience .. :(.. thanks for your patience.
So from my perspective it seems like the right step to push back.
And I back you up !
If you, Tariq, Jiri, Ido or any other seasoned kernel contributor
reposts this after making sure it's up to snuff themselves I will
most certainly take a look / apply.
My point wasn't about psample, it's about hw drivers vs stack/modules
dependency in general, maybe I used the wrong patch to discuss this
matter :D..
I will post a separate RFC for discussion later not related to psample
at all. this patch smells so bad we can't even discuss the general
issue here ..
Again thanks for your review and patience.
Hi Jakub,
On 2/3/2021 5:24 AM, Jakub Kicinski wrote:
On Mon, 01 Feb 2021 23:31:15 -0800 Saeed Mahameed wrote:
quoted
On Mon, 2021-02-01 at 17:14 -0800, Jakub Kicinski wrote:
quoted
On Mon, 1 Feb 2021 10:04:12 +0800 Chris Mi wrote:
quoted
In order to send sampled packets to userspace, NIC driver calls
psample api directly. But it creates a hard dependency on module
psample. Introduce psample_ops to remove the hard dependency.
It is initialized when psample module is loaded and set to NULL
when the module is unloaded.
Reported-by: kernel test robot <redacted>
Signed-off-by: Chris Mi <redacted>
Reviewed-by: Jiri Pirko <redacted>
The necessity of making this change is not obvious (you can fix the
distro scripts instead), you did not include a clarification in the
commit message even though two people asked you why it's needed and
on top of that you keep sending code which doesn't build.
Please consider this change rejected and do not send a v7.
Jakub, it is not only about installation dependencies, the issue is
more critical than this,
We had some other issues with similar dependency problem where
mlx5_core had hard dependency with netfilter, firewalld when disabled,
removes netfilter and all its dependencies including mlx5, this is a no
go for our users.
Again, having a hard dependency between a hardware driver and a
peripheral module in the kernel is a bad design.
That is not the point.
The technical problem is minor, and it's a problem for _your_ driver.
Yet, it appears to be my responsibility to make sure the patch even
compiles.
I believe there should be a limit to the ignorance a community
volunteer is expected to put up with when dealing with patches
from and for the benefit of a commercial vendor.
This is up for discussion, if you disagree let's talk it out. I'm
not particularly patient (to put it mildly), but I don't understand
how v5 could have built, and yet v6 gets posted with the same exact
problem :/
So from my perspective it seems like the right step to push back.
If you, Tariq, Jiri, Ido or any other seasoned kernel contributor
reposts this after making sure it's up to snuff themselves I will
most certainly take a look / apply.
Just now I tested v5 using sparse. I did hit some errors for psample.
The reason I
didn't hit it is because I only build the psample module. But I forget I
changed
the kernel. So I should build the whole kernel.
I'm really sorry that I waste you a lot of time for this bad quality
patch. You know
usually Saeed submits most of the patches on behalf of us. So I'm not
very familiar
with rules here.
So how about I submit v7 based on v4. I know you are very busy, if it is
not ok,
I'll wait for Saeed's further information about next step.
Thanks,
Chris