public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-next v3 0/4] net: dqs: optimize if stall threshold is not set
@ 2024-04-11 19:22 Breno Leitao
  2024-04-11 19:22 ` [PATCH net-next v3 1/4] net: dql: Avoid calling BUG() when WARN() is enough Breno Leitao
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Breno Leitao @ 2024-04-11 19:22 UTC (permalink / raw)
  To: kuba, davem, pabeni, edumazet; +Cc: linux-kernel, netdev

Here are four patches aimed at enhancing the Dynamic Queue Limit (DQL)
subsystem within the networking stack.

The first two commits involve code refactoring, while the third patch
introduces the actual change. The fourth patch just improves the cache
locality.

Typically, when DQL is enabled, stall information is always populated
through dql_queue_stall(). However, this information is only necessary
if a stall threshold is set, which is stored in struct dql->stall_thrs.

Although dql_queue_stall() is relatively inexpensive, it is not entirely
free due to memory barriers and similar overheads.

To optimize performance, refrain from calling dql_queue_stall() when no
stall threshold is set, thus avoiding the processing of unnecessary
information.

Changelog:

v3:
	* Read stall_thrs earlier, at dql_completed(), to avoid any
	  performance penalty, as suggested by Jakub.
v2:
	* Moved the stall_thrs to the very first cache line, as a new
	  patch. Suggested by Eric Dumazet.
v1:
	* https://lore.kernel.org/all/20240404145939.3601097-1-leitao@debian.org/


Breno Leitao (4):
  net: dql: Avoid calling BUG() when WARN() is enough
  net: dql: Separate queue function responsibilities
  net: dql: Optimize stall information population
  net: dqs: make struct dql more cache efficient

 include/linux/dynamic_queue_limits.h | 50 +++++++++++++++++-----------
 lib/dynamic_queue_limits.c           | 13 +++++---
 2 files changed, 39 insertions(+), 24 deletions(-)

-- 
2.43.0


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2024-04-15 18:40 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-04-11 19:22 [PATCH net-next v3 0/4] net: dqs: optimize if stall threshold is not set Breno Leitao
2024-04-11 19:22 ` [PATCH net-next v3 1/4] net: dql: Avoid calling BUG() when WARN() is enough Breno Leitao
2024-04-11 19:22 ` [PATCH net-next v3 2/4] net: dql: Separate queue function responsibilities Breno Leitao
2024-04-11 19:22 ` [PATCH net-next v3 3/4] net: dql: Optimize stall information population Breno Leitao
2024-04-11 19:22 ` [PATCH net-next v3 4/4] net: dqs: make struct dql more cache efficient Breno Leitao
2024-04-15 18:40 ` [PATCH net-next v3 0/4] net: dqs: optimize if stall threshold is not set patchwork-bot+netdevbpf

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox