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 --- 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 | 338 +++++++++------------ .../selftests/drivers/net/netcons_overflow.sh | 2 +- 2 files changed, 152 insertions(+), 188 deletions(-) --- base-commit: 89aec171d9d1ab168e43fcf9754b82e4c0aef9b9 change-id: 20251007-netconsole_dynamic_extradata-21bd9d726568
Best regards,