Subject: Re: [PATCH net-next] r8169: enable GRO software interrupt coalescing per default

From: Jakub Kicinski <[email-masked]>
Date: Mon, 28 Nov 2022 19:07:57 -0800

On Sat, 26 Nov 2022 15:07:07 +0100 Heiner Kallweit wrote:
> There are reports about r8169 not reaching full line speed on certain
> systems (e.g. SBC's) with a 2.5Gbps link.
> There was a time when hardware interrupt coalescing was enabled per
> default, but this was changed due to ASPM-related issues on few systems.
> 
> Meanwhile we have sysfs attributes for controlling kind of
> "software interrupt coalescing" on the GRO level. However most distros
> and users don't know about it. So lets set a conservative default for
> both involved parameters. Users can still override the defaults via
> sysfs. Don't enable these settings on the fast ethernet chip versions,
> they are slow enough.
> 
> Even with these conservative setting interrupt load on my 1Gbps test
> system reduced significantly.

Sure, why not. Could you please wrap the init into a helper?
Should help us ensure the params are not wildly different between
drivers and make any later refactoring easier.

Maybe something like:

/**
 * netdev_sw_irq_coalesce_default_on() - enable SW IRQ coalescing by default
 * @dev: netdev to enable the IRQ coalescing on
 * bla bla bla
 */
int netdev_sw_irq_coalesce_default_on(struct net_device *dev)
{
	WARN_ON(dev->reg_state != NETREG_UNREGISTERED);

	dev->gro_flush_timeout = 20000;
	dev->napi_defer_hard_irqs = 1;
}
EXPORT...