From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f50.google.com (mail-wm1-f50.google.com [209.85.128.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F1B863BB5A for ; Thu, 20 Nov 2025 00:15:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.50 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763597728; cv=none; b=fXucG0JMlvEqHdLhTrAzSr8RTYIrtz1KFn6G+JKyGhYYamZuACb18pZbYOQ/wlDHbznkvpunpmVqMroMZ8OZ8h/G1ZPDb8rGmInegKnZarn3L7EDJOs/yoK714IXBW3i8cMYL2VxDk14eVIPHbXKPrmU4oVOPQqEmGW48pVyazo= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763597728; c=relaxed/simple; bh=ZWbIRr7n2aoMbY8heM7aapqtIXZdjA83PeUvT6BwCdo=; h=From:Subject:Date:Message-Id:MIME-Version:Content-Type:To:Cc; b=FTqL+l0TEl37OPJ/EzkoV9DL1vbynWpFYaxfLszzs8dBHQuG60fMsHo5wCj5W9U0D7xg75a+vVGtC3IMDxVJoDm3KQMK8SjVwKGQLvm0xj0yN+UAE6JBGXxxocaBG1iyk9pxhBbBoi7Zujn7noK8z0HF86TL3TQkiKw13q33LT0= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=JOIB5VMa; arc=none smtp.client-ip=209.85.128.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="JOIB5VMa" Received: by mail-wm1-f50.google.com with SMTP id 5b1f17b1804b1-47798089d30so41745e9.1 for ; Wed, 19 Nov 2025 16:15:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1763597725; x=1764202525; darn=vger.kernel.org; h=cc:to:content-transfer-encoding:mime-version:message-id:date :subject:from:from:to:cc:subject:date:message-id:reply-to; bh=HGhZ791IGgFpw2D5wv3W1q8tnRzQiHL6cpc8pYhiPAo=; b=JOIB5VMavhMC4Avx9GGANtqlP1wnKDieHRJpH7CnwCMIOpnyTp2mDMYmmmwK+Wd2D8 BJBrhyC3lp0eopSson9Rw9g9qSZViBbG/+Blx+5zrjh3kp/cJPWim6mGLpUIPlbBGlZx gFldImLZsSfgLNJDob1RPnE+uS2nLwYv0+rFUdbfdzt04kyR8o1kBM3woKLpHZDAsMUj YaesFnNS2hxt68TEAhHOBi9sdUvLPnPJfImqhTnvyDGF49edM522SNd2TVl0nA8U3evm mOo0GS0dqzSKAuLWTpzbJoXp7TzPzhtSt9WquNsntoyvRYIjCj+nBequW/zgV/cgx365 MsLg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763597725; x=1764202525; h=cc:to:content-transfer-encoding:mime-version:message-id:date :subject:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=HGhZ791IGgFpw2D5wv3W1q8tnRzQiHL6cpc8pYhiPAo=; b=qoXbOhBkZCT0PycGu4QNWcqlPFlCtr3qI0dlKNx/S3pj/odSNUhSeYs9qUgm+A6LZt ZllAA2RrjHHoXvnibmZ02jxSoTsspm71kEXC7ek1KHTYSYFNWFtn1HQwfvj5T8rHdn9D yVEfxPdP1pQch7tP+OHq4uquuSNcpwKl9nX7gSWLezXTwRBzRQTZeX4oZLMNldk4++qY mgLrsKODO2cAgJ3tobizd8StdKuP4QibYCpJYG+Qb66ks8PiiSYb83qdx2bLWcqt3UQ7 dUmftFflyjvKlmQRwAU4UUMbqZiwS7KfAVCzSlRKlbfbvwaRLIKPS7J6C6+H94e7hSQq ZMWQ== X-Forwarded-Encrypted: i=1; AJvYcCUSr9smXRuu6SPnZMHANyVK+TuJERnyoI+X6dSQoR8XMOMU1Q9yw3OAM/t3wzvxwWVX+Fv6x+P3VT21CNo=@vger.kernel.org X-Gm-Message-State: AOJu0YwEPXb/nETwR/tS9DoRwFD2KQOJedfKNxARE6xQin7iFcwROYW9 qEkanhzc88tA9xXSBKBM80YjU/mOBIsO47ndKWSTBQu8/6MjyQ0yzAM4BERH6ABo5aE= X-Gm-Gg: ASbGncsg9UfDMBxmwrxNtNv+hQvBr3PAKw6C5mSTnYdS+tbRGH2uefbFIqE4xW4+FTV uM559lnvi5cfAHPzUP/+f4/rZk1a/p0EP+zAt6rK/5u1MoEUfMFl6HHEkjkiRYGsVuPd44VNquj qtlvbx2vJaDIcN98sdERZJWWM4Tfvy0IotNmd95w6j3QXX1i/7R+Npjj7TXYrHV+pA7775L3Mua zB+y8LjPdVRHSnqZP+B5VTXfUrsjg9FUd7G/0BMrKP72zYb//3hPGaYYxuh6j3tUkxW0j2xQ1tu 7xvZ7hq8A6pplh7dbAk1G//hfVPIneyFuneAjg8pUfwdZ5Yqae4jSM4u+4b1zcNgMZXYXhWBxXx dTSMUaaEOYt+DdStEX2h7aOWMQ5YTQ9vP9i/Ys02gJcLdNz2bI/0f6M7wfvVBm+P3+B3ObAIPj2 bjpeXcbUK1Fk4TP8HBbfzXsUy0qv6OW5HNSy+MhQ== X-Google-Smtp-Source: AGHT+IEMTSv3dIL2/ZMldxuzVoEdRjDPFb3TccQKkSzeYDnuSagtLzuQoAMP2Jf9CdKrkeJOK/wNCQ== X-Received: by 2002:a05:600c:444c:b0:477:a6f1:499d with SMTP id 5b1f17b1804b1-477b8d8e81bmr5154015e9.3.1763597725203; Wed, 19 Nov 2025 16:15:25 -0800 (PST) Received: from localhost ([2a03:2880:31ff:4f::]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-477b106b03bsm76258005e9.9.2025.11.19.16.15.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Nov 2025 16:15:24 -0800 (PST) From: Gustavo Luiz Duarte Subject: [PATCH net-next v3 0/4] netconsole: Allow userdata buffer to grow dynamically Date: Wed, 19 Nov 2025 16:14:48 -0800 Message-Id: <20251119-netconsole_dynamic_extradata-v3-0-497ac3191707@meta.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-B4-Tracking: v=1; b=H4sIAHhdHmkC/4XNTQ7CIBQE4KsY1mJ49N+V9zCmofBqSSwYIKRN0 7uLrLrS5WQy32zEo9PoyfW0EYdRe21NCsX5ROQkzBOpVikTzngFjDXUYJDWePvCXq1GzFr2uAQ nlAiCchhUpxpeV3VLEvF2OOol83eSlmm9BPJIzaR9sG7NvxFyny+AVb8vIlBGoeRtx4ax7Ir6N mMQF2nn7EZ+sKD4Y/Gv1cqxGVEB40dr3/cPZucg2R0BAAA= To: Breno Leitao , Andre Carvalho , Simon Horman , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Shuah Khan Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, Gustavo Luiz Duarte X-Mailer: b4 0.13.0 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 --- Changes in v3: - Split calculating the lentgh of the formatted userdata string into a separate function calc_userdata_len(). - Exit update_userdata() immediately if we hit WARN due to too many userdata entries. - Use offset instead of len to save userdata_length in update_userdata() - Link to v2: https://lore.kernel.org/r/20251113-netconsole_dynamic_extradata-v2-0-18cf7fed1026@meta.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 | 386 +++++++++++---------- .../selftests/drivers/net/netcons_overflow.sh | 2 +- 2 files changed, 195 insertions(+), 193 deletions(-) --- base-commit: 45a1cd8346ca245a1ca475b26eb6ceb9d8b7c6f0 change-id: 20251007-netconsole_dynamic_extradata-21bd9d726568 Best regards, -- Gustavo Duarte