From 34ff636f322c6d5e4f0a52338fa63a7dff09a495 Mon Sep 17 00:00:00 2001 From: Joel Fernandes Date: Sat, 18 Jul 2026 13:15:36 -0400 Subject: scftorture: Count single_rpc offline failures in statistics output scf_torture_stats_print() aggregates each invoker thread's counters into a local scf_statistics structure before printing, but the n_single_rpc_ofl field is missing from the aggregation loop. As a result, the "single_rpc_ofl" value printed in the statistics line is always zero, even when smp_call_function_single() invocations for the RPC test have failed due to offline CPUs and been counted by the invoker threads. Add the missing accumulation so that the printed value reflects the actual counts. Signed-off-by: Joel Fernandes Signed-off-by: Paul E. McKenney --- include/net/psample.h | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 include/net/psample.h (limited to 'include/net/psample.h') diff --git a/include/net/psample.h b/include/net/psample.h new file mode 100644 index 000000000..5071b5fc2 --- /dev/null +++ b/include/net/psample.h @@ -0,0 +1,56 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#ifndef __NET_PSAMPLE_H +#define __NET_PSAMPLE_H + +#include +#include + +struct psample_group { + struct list_head list; + struct net *net; + u32 group_num; + u32 refcount; + u32 seq; + struct rcu_head rcu; +}; + +struct psample_metadata { + u32 trunc_size; + int in_ifindex; + int out_ifindex; + u16 out_tc; + u64 out_tc_occ; /* bytes */ + u64 latency; /* nanoseconds */ + u8 out_tc_valid:1, + out_tc_occ_valid:1, + latency_valid:1, + rate_as_probability:1, + unused:4; + const u8 *user_cookie; + u32 user_cookie_len; +}; + +struct psample_group *psample_group_get(struct net *net, u32 group_num); +void psample_group_take(struct psample_group *group); +void psample_group_put(struct psample_group *group); + +struct sk_buff; + +#if IS_ENABLED(CONFIG_PSAMPLE) + +void psample_sample_packet(struct psample_group *group, + const struct sk_buff *skb, u32 sample_rate, + const struct psample_metadata *md); + +#else + +static inline void psample_sample_packet(struct psample_group *group, + const struct sk_buff *skb, + u32 sample_rate, + const struct psample_metadata *md) +{ +} + +#endif + +#endif /* __NET_PSAMPLE_H */ -- cgit v1.3.1