]> www.infradead.org Git - nvme.git/commitdiff
net: psample: skip packet copy if no listeners
authorAdrian Moreno <amorenoz@redhat.com>
Thu, 4 Jul 2024 08:56:54 +0000 (10:56 +0200)
committerJakub Kicinski <kuba@kernel.org>
Sat, 6 Jul 2024 00:45:47 +0000 (17:45 -0700)
If nobody is listening on the multicast group, generating the sample,
which involves copying packet data, seems completely unnecessary.

Return fast in this case.

Reviewed-by: Aaron Conole <aconole@redhat.com>
Acked-by: Eelco Chaudron <echaudro@redhat.com>
Reviewed-by: Ido Schimmel <idosch@nvidia.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Signed-off-by: Adrian Moreno <amorenoz@redhat.com>
Link: https://patch.msgid.link/20240704085710.353845-4-amorenoz@redhat.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/psample/psample.c

index b37488f426bc2ff9eb8e4aed548e8431436dbed9..1c76f3e48dcd98fc4f446d63389c2ebe5b6eb6c2 100644 (file)
@@ -376,6 +376,10 @@ void psample_sample_packet(struct psample_group *group, struct sk_buff *skb,
        void *data;
        int ret;
 
+       if (!genl_has_listeners(&psample_nl_family, group->net,
+                               PSAMPLE_NL_MCGRP_SAMPLE))
+               return;
+
        meta_len = (in_ifindex ? nla_total_size(sizeof(u16)) : 0) +
                   (out_ifindex ? nla_total_size(sizeof(u16)) : 0) +
                   (md->out_tc_valid ? nla_total_size(sizeof(u16)) : 0) +