LVS
lvs-devel
Google
 
Web LinuxVirtualServer.org

Re: [PATCH nf-next v2] netfilter: add option for GCOV profiling

To: Florian Westphal <fw@xxxxxxxxx>
Subject: Re: [PATCH nf-next v2] netfilter: add option for GCOV profiling
Cc: netfilter-devel@xxxxxxxxxxxxxxx, lvs-devel@xxxxxxxxxxxxxxx
From: Julian Anastasov <ja@xxxxxx>
Date: Tue, 12 May 2026 23:51:23 +0300 (EEST)
        Hello,

On Tue, 12 May 2026, Florian Westphal wrote:

> Similar to a few other subsystems: add a new config toggle to
> enable netfilter gcov profiling in netfilter, including ebtables,
> arptables and so on.
> 
> ipset and ipvs gain their own, dedicated toggles.
> 
> Signed-off-by: Florian Westphal <fw@xxxxxxxxx>

        Looks good to me, thanks!

For IPVS:

Acked-by: Julian Anastasov <ja@xxxxxx>

> ---
>  v2: add dedicated toggles for ipvs and ipset;
>  I am currently not collecting profile data for these two.
> 
>  If you prefer to keep them under single switch thats fine,
>  just lmk.
> 
>  net/bridge/netfilter/Makefile | 4 ++++
>  net/ipv4/netfilter/Makefile   | 4 ++++
>  net/ipv6/netfilter/Makefile   | 4 ++++
>  net/netfilter/Kconfig         | 8 ++++++++
>  net/netfilter/Makefile        | 4 ++++
>  net/netfilter/ipset/Kconfig   | 9 +++++++++
>  net/netfilter/ipset/Makefile  | 3 +++
>  net/netfilter/ipvs/Kconfig    | 9 +++++++++
>  net/netfilter/ipvs/Makefile   | 3 +++
>  9 files changed, 48 insertions(+)
> 
> diff --git a/net/bridge/netfilter/Makefile b/net/bridge/netfilter/Makefile
> index b9a1303da977..af0c903aa4ac 100644
> --- a/net/bridge/netfilter/Makefile
> +++ b/net/bridge/netfilter/Makefile
> @@ -38,3 +38,7 @@ obj-$(CONFIG_BRIDGE_EBT_SNAT) += ebt_snat.o
>  # watchers
>  obj-$(CONFIG_BRIDGE_EBT_LOG) += ebt_log.o
>  obj-$(CONFIG_BRIDGE_EBT_NFLOG) += ebt_nflog.o
> +
> +ifdef CONFIG_GCOV_PROFILE_NETFILTER
> +GCOV_PROFILE := y
> +endif
> diff --git a/net/ipv4/netfilter/Makefile b/net/ipv4/netfilter/Makefile
> index 85502d4dfbb4..dbfb1c4739a8 100644
> --- a/net/ipv4/netfilter/Makefile
> +++ b/net/ipv4/netfilter/Makefile
> @@ -51,3 +51,7 @@ obj-$(CONFIG_IP_NF_ARP_MANGLE) += arpt_mangle.o
>  obj-$(CONFIG_IP_NF_ARPFILTER) += arptable_filter.o
>  
>  obj-$(CONFIG_NF_DUP_IPV4) += nf_dup_ipv4.o
> +
> +ifdef CONFIG_GCOV_PROFILE_NETFILTER
> +GCOV_PROFILE := y
> +endif
> diff --git a/net/ipv6/netfilter/Makefile b/net/ipv6/netfilter/Makefile
> index 66ce6fa5b2f5..72902d8005ad 100644
> --- a/net/ipv6/netfilter/Makefile
> +++ b/net/ipv6/netfilter/Makefile
> @@ -43,3 +43,7 @@ obj-$(CONFIG_IP6_NF_MATCH_SRH) += ip6t_srh.o
>  obj-$(CONFIG_IP6_NF_TARGET_NPT) += ip6t_NPT.o
>  obj-$(CONFIG_IP6_NF_TARGET_REJECT) += ip6t_REJECT.o
>  obj-$(CONFIG_IP6_NF_TARGET_SYNPROXY) += ip6t_SYNPROXY.o
> +
> +ifdef CONFIG_GCOV_PROFILE_NETFILTER
> +GCOV_PROFILE := y
> +endif
> diff --git a/net/netfilter/Kconfig b/net/netfilter/Kconfig
> index 682c675125fc..f71ff98eb5d0 100644
> --- a/net/netfilter/Kconfig
> +++ b/net/netfilter/Kconfig
> @@ -1648,6 +1648,14 @@ config NETFILTER_XT_MATCH_U32
>  
>  endif # NETFILTER_XTABLES
>  
> +config GCOV_PROFILE_NETFILTER
> +     bool "Enable GCOV profiling for netfilter"
> +     depends on GCOV_KERNEL
> +     help
> +       Enable GCOV profiling for netfilter to check which functions/lines
> +       are executed.
> +
> +       If unsure, say N.
>  endmenu
>  
>  source "net/netfilter/ipset/Kconfig"
> diff --git a/net/netfilter/Makefile b/net/netfilter/Makefile
> index 6bfc250e474f..f0751ca302c6 100644
> --- a/net/netfilter/Makefile
> +++ b/net/netfilter/Makefile
> @@ -240,3 +240,7 @@ obj-$(CONFIG_IP_VS) += ipvs/
>  
>  # lwtunnel
>  obj-$(CONFIG_LWTUNNEL) += nf_hooks_lwtunnel.o
> +
> +ifdef CONFIG_GCOV_PROFILE_NETFILTER
> +GCOV_PROFILE := y
> +endif
> diff --git a/net/netfilter/ipset/Kconfig b/net/netfilter/ipset/Kconfig
> index b1ea054bb82c..6c4d54758106 100644
> --- a/net/netfilter/ipset/Kconfig
> +++ b/net/netfilter/ipset/Kconfig
> @@ -175,4 +175,13 @@ config IP_SET_LIST_SET
>  
>         To compile it as a module, choose M here.  If unsure, say N.
>  
> +config GCOV_PROFILE_IPSET
> +     bool "Enable GCOV profiling for ipset"
> +     depends on GCOV_KERNEL
> +     help
> +       Enable GCOV profiling for ipset to check which functions/lines
> +       are executed.
> +
> +       If unsure, say N.
> +
>  endif # IP_SET
> diff --git a/net/netfilter/ipset/Makefile b/net/netfilter/ipset/Makefile
> index a445a6bf4f11..4f48df5406cd 100644
> --- a/net/netfilter/ipset/Makefile
> +++ b/net/netfilter/ipset/Makefile
> @@ -29,3 +29,6 @@ obj-$(CONFIG_IP_SET_HASH_NETPORTNET) += 
> ip_set_hash_netportnet.o
>  
>  # list types
>  obj-$(CONFIG_IP_SET_LIST_SET) += ip_set_list_set.o
> +ifdef CONFIG_GCOV_PROFILE_IPSET
> +GCOV_PROFILE := y
> +endif
> diff --git a/net/netfilter/ipvs/Kconfig b/net/netfilter/ipvs/Kconfig
> index c203252e856d..7724cb44e6de 100644
> --- a/net/netfilter/ipvs/Kconfig
> +++ b/net/netfilter/ipvs/Kconfig
> @@ -349,4 +349,13 @@ config   IP_VS_PE_SIP
>       help
>         Allow persistence based on the SIP Call-ID
>  
> +config GCOV_PROFILE_IPVS
> +     bool "Enable GCOV profiling for IPVS"
> +     depends on GCOV_KERNEL
> +     help
> +       Enable GCOV profiling for IPVS to check which functions/lines
> +       are executed.
> +
> +       If unsure, say N.
> +
>  endif # IP_VS
> diff --git a/net/netfilter/ipvs/Makefile b/net/netfilter/ipvs/Makefile
> index bb5d8125c82a..8e4cc67ad39d 100644
> --- a/net/netfilter/ipvs/Makefile
> +++ b/net/netfilter/ipvs/Makefile
> @@ -43,3 +43,6 @@ obj-$(CONFIG_IP_VS_FTP) += ip_vs_ftp.o
>  
>  # IPVS connection template retrievers
>  obj-$(CONFIG_IP_VS_PE_SIP) += ip_vs_pe_sip.o
> +ifdef CONFIG_GCOV_PROFILE_IPVS
> +GCOV_PROFILE := y
> +endif
> -- 
> 2.53.0

Regards

--
Julian Anastasov <ja@xxxxxx>



<Prev in Thread] Current Thread [Next in Thread>