Linux Kernel Selftest development
 help / color / mirror / Atom feed
* [PATCH net-next v2 0/4] netconsole: Allow userdata buffer to grow dynamically
@ 2025-11-13 16:42 Gustavo Luiz Duarte
  2025-11-13 16:42 ` [PATCH net-next v2 1/4] netconsole: Simplify send_fragmented_body() Gustavo Luiz Duarte
                   ` (3 more replies)
  0 siblings, 4 replies; 12+ messages in thread
From: Gustavo Luiz Duarte @ 2025-11-13 16:42 UTC (permalink / raw)
  To: Breno Leitao, Andre Carvalho, Simon Horman, Andrew Lunn,
	David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
	Shuah Khan
  Cc: netdev, linux-kernel, linux-kselftest, Gustavo Luiz Duarte

The current netconsole implementation allocates a static buffer for
extradata (userdata + sysdata) with a fixed size of
MAX_EXTRADATA_ENTRY_LEN * MAX_EXTRADATA_ITEMS bytes for every target,
regardless of whether userspace actually uses this feature. This forces
us to keep MAX_EXTRADATA_ITEMS small (16), which is restrictive for
users who need to attach more metadata to their log messages.

This patch series enables dynamic allocation of the userdata buffer,
allowing it to grow on-demand based on actual usage. The series:

1. Refactors send_fragmented_body() to simplify handling of separated
   userdata and sysdata (patch 1/4)
2. Splits userdata and sysdata into separate buffers (patch 2/4)
3. Implements dynamic allocation for the userdata buffer (patch 3/4)
4. Increases MAX_USERDATA_ITEMS from 16 to 256 now that we can do so
   without memory waste (patch 4/4)

Benefits:
- No memory waste when userdata is not used
- Targets that use userdata only consume what they need
- Users can attach significantly more metadata without impacting systems
  that don't use this feature

Signed-off-by: Gustavo Luiz Duarte <gustavold@gmail.com>
---
Changes in v2:
- Added null pointer checks for userdata and sysdata buffers
- Added MAX_SYSDATA_ITEMS to enum sysdata_feature
- Moved code out of ifdef in send_msg_no_fragmentation()
- Renamed variables in send_fragmented_body() to make it easier to
  reason about the code
- Link to v1: https://lore.kernel.org/r/20251105-netconsole_dynamic_extradata-v1-0-142890bf4936@meta.com

---
Gustavo Luiz Duarte (4):
      netconsole: Simplify send_fragmented_body()
      netconsole: Split userdata and sysdata
      netconsole: Dynamic allocation of userdata buffer
      netconsole: Increase MAX_USERDATA_ITEMS

 drivers/net/netconsole.c                           | 370 ++++++++++-----------
 .../selftests/drivers/net/netcons_overflow.sh      |   2 +-
 2 files changed, 179 insertions(+), 193 deletions(-)
---
base-commit: 68fa5b092efab37a4f08a47b22bb8ca98f7f6223
change-id: 20251007-netconsole_dynamic_extradata-21bd9d726568

Best regards,
-- 
Gustavo Duarte <gustavold@meta.com>


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

end of thread, other threads:[~2025-11-19 22:58 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-11-13 16:42 [PATCH net-next v2 0/4] netconsole: Allow userdata buffer to grow dynamically Gustavo Luiz Duarte
2025-11-13 16:42 ` [PATCH net-next v2 1/4] netconsole: Simplify send_fragmented_body() Gustavo Luiz Duarte
2025-11-14 12:02   ` Breno Leitao
2025-11-13 16:42 ` [PATCH net-next v2 2/4] netconsole: Split userdata and sysdata Gustavo Luiz Duarte
2025-11-14 12:44   ` Breno Leitao
2025-11-13 16:42 ` [PATCH net-next v2 3/4] netconsole: Dynamic allocation of userdata buffer Gustavo Luiz Duarte
2025-11-14 13:04   ` Breno Leitao
2025-11-18 18:51     ` Gustavo Luiz Duarte
2025-11-19  9:07       ` Breno Leitao
2025-11-13 16:42 ` [PATCH net-next v2 4/4] netconsole: Increase MAX_USERDATA_ITEMS Gustavo Luiz Duarte
2025-11-14 13:07   ` Breno Leitao
2025-11-19 22:58     ` Gustavo Luiz Duarte

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