From nobody Mon Dec 1 22:35:46 2025 Received: from mail-ot1-f49.google.com (mail-ot1-f49.google.com [209.85.210.49]) (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 0293D22F74D for ; Fri, 28 Nov 2025 14:20:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764339660; cv=none; b=lfoa1G0MRWOmZQcXJte4MaHPWDTI+OePGPIiNRliGKFTyNZc0pN9PIvzSGTfO8iQ525iZGbdjF8nqbFu4dq/OxxXJZINrmTILaaWUbI10DQzEniM4+jMTn+4IWTtyO8Y6T3Co5/Wl0fggDniYUyhDzI1QDQPteNlZYyx37jFAFA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764339660; c=relaxed/simple; bh=8AeeNuKarsu5qA34c7lNeF8QhulWBTrnEQ0CggOIbSI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=tPZngXk0tIuSV81iC1AXwevvfQPo+D5o09oRMbjdE992kDoXzJtr5WoLEZA6DWH1zoCYb+i1BBy5sBOvA95u69X99SB8yAORYPoW0h+MWXnlAUhO/giQ0aYBEjMBz3+5z3bMYpYzCVEE5dHfnmKC8rJKc9Au1Gv9a4ObLymJRtM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=debian.org; spf=pass smtp.mailfrom=gmail.com; arc=none smtp.client-ip=209.85.210.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=debian.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-ot1-f49.google.com with SMTP id 46e09a7af769-7c6e815310aso1127857a34.0 for ; Fri, 28 Nov 2025 06:20:57 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764339657; x=1764944457; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=IO8fpf+Qe7KA1hAphkMPr2BDEzo3Q3M23aOQSgVd6Z8=; b=b6f/P7l/mZ0YxKXCD9D00NeLW94Hqh0Lk/sbMztFUr4P2SOL9D/NBMr//QWjH9ZF0h ug5amb1/Lqa3IYwc2By/fCCxR4MeXs+ZeEjN0VeBPnIzY4P8Ye0GG6efZqIYEkVUfDI4 kZRGHa3eHAUzIpkyI4VDauv9C/Kww7/Tlpblkc/nVxxpxftzk1KzbhkN0WAe6uTpmUsr DvJT15TtUQzyUiHaLFZczmUM464n4WBUU7RFwboEwRySssMLf8jKhzcZLigmcGhjomMy vo0J34ion4EBX3rSily4yVtHp4RxdikZrn5xQteIzit8QOuoPawg/7xT7fCsCbMrCYC2 /XHQ== X-Forwarded-Encrypted: i=1; AJvYcCXlXXNm2jAgYlBG34SFfShfA/6YGFgj3KioF0Y+C/6cjnLPPO8/tcDl7Z0r3G8fIzoYjgximkKxSDr1GPM=@vger.kernel.org X-Gm-Message-State: AOJu0YyYgAamPDzoG2hT7yh4UEOdAuF2ZG+WngivJCLpKHwQUUHYM1qK Z/cElTRTUPW7bF5fUYOw+Hg773jYgDOjoDcfFu/SS7RRFad46FcfVXR/ X-Gm-Gg: ASbGnctiBhbvze/+PtZ9AaXv45DP3IgTIqvtDHb2XJEVvCQhArJ8hBUAose9gBDN3PH n2toLJnWQOfsiBNQoJny1xKyvO4yXOAgP6I3HUC3QOGEenOmrOMSe6oQaDWEZgqdrP3ZbyxRM/N MUoa1KUuEvhKCiia6N+D3MF0qDOEOTo2IO2F4tG5id6VQqiQZEl4uPtYsD6LiH1R2ZSXTDYJ+hW v4ld0v5Og2B1z6wz2p8m/3Fu7MeoAHOb0tSXMy+pb6lo8KkIVlgdxlcFkbSSDLSDLi0mJH1oZlQ c7Q9JzTTyF0xPcn1EiLnf9Oz81j3SbR/bl/gVLdibyYg15LjWgyJMSsdjqqVWucIYjjNaH4xNHT YGZUMSL4gYDl9spw3ykrzIBme26iJwvx8KbPUNq3kdhKKzzmAbdsYR/DesSb7R/AzxDeuHFEJ6D a0dvTlESfpMA== X-Google-Smtp-Source: AGHT+IE8Csv0x3Otw25HTHmycCm8OmZBQcHgbovfIus9/bAoq/UixullE88axucO5VUxe/H7t0bIYA== X-Received: by 2002:a9d:6143:0:b0:7bc:f443:fa3c with SMTP id 46e09a7af769-7c798de468amr11684101a34.25.1764339657047; Fri, 28 Nov 2025 06:20:57 -0800 (PST) Received: from localhost ([2a03:2880:10ff::]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7c90fe0b238sm1586166a34.20.2025.11.28.06.20.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 28 Nov 2025 06:20:56 -0800 (PST) From: Breno Leitao Date: Fri, 28 Nov 2025 06:20:46 -0800 Subject: [PATCH net-next 1/4] netconsole: extract message fragmentation into send_msg_udp() 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: quoted-printable Message-Id: <20251128-netconsole_send_msg-v1-1-8cca4bbce9bc@debian.org> References: <20251128-netconsole_send_msg-v1-0-8cca4bbce9bc@debian.org> In-Reply-To: <20251128-netconsole_send_msg-v1-0-8cca4bbce9bc@debian.org> To: Breno Leitao , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Shuah Khan , Simon Horman , Jonathan Corbet Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-doc@vger.kernel.org, gustavold@gmail.com, asantostc@gmail.com, calvin@wbinvd.org, kernel-team@meta.com, Petr Mladek X-Mailer: b4 0.15-dev-a6db3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2049; i=leitao@debian.org; h=from:subject:message-id; bh=8AeeNuKarsu5qA34c7lNeF8QhulWBTrnEQ0CggOIbSI=; b=owEBbQKS/ZANAwAIATWjk5/8eHdtAcsmYgBpKa/FePe42auqDY/Qs7XpYdwbHd6fJqLNwggTf H3VVdrUTfSJAjMEAAEIAB0WIQSshTmm6PRnAspKQ5s1o5Of/Hh3bQUCaSmvxQAKCRA1o5Of/Hh3 bWEJD/45t6CqWMn+sI2J6+MyW697ZsxhgZ539JQ7X8cHcLAwGA2l4VRPb+vljF+qZ6sV6BJCeZ+ Tsxb08lgFu+44cvvEKSO59GXsfsKgGPRVe3obqlCcy99XLONvtOjT1WZRgN9L9h85HG/YzXOoeQ j/17CmNiqgeRNwjiZDCcgnJqbsUlWumE/8WoI+8lL+AibpkKcKkTW2Bdil74n6zYF1k2tWDB4Cs 9trke+OdIrF4b47c3a91ZBxzdZi0918GKat/sKevUD7eDoQBrLOeQmiP+ZIv09pCBavFFquA86k ZPZg9i0CuRkCGQpwew0n94sHV78imAeHK6n+H8wKzKuBTgQ0hh+aCyU0X5+CIXOOMMz20jd6Qft d0H9qaOjkgbkP/t/YV9Up71zlF/DOlQDwEp1wDXtlH04PszFsRUhJ1VqDZksJLoAMl/owzcDQ50 onheqsBZqT6IwvdImVa88fwcS+02optkhu9kSZQXt1u+TWJ87RcJ9VcRJ+KJIxbudo6oS8Is0Iy 5cKccRhcZFN5qjxN0JfVJfVRMUfXRT5o5yGUYqw8TqiV/UO9KTDSy/tr+HuynBy0skfbitfVx8t bL70JidMIQe8IOrhsngRbjrw/PEnjEoPbx/JRtpotnia8TJrrLh+K4S0PfdLjcyxncZ6yUtRwQX Vg52jnE6T2U5QcA== X-Developer-Key: i=leitao@debian.org; a=openpgp; fpr=AC8539A6E8F46702CA4A439B35A3939FFC78776D Extract the message fragmentation logic from write_msg() into a dedicated send_msg_udp() function. This improves code readability and prepares for future enhancements. The new send_msg_udp() function handles splitting messages that exceed MAX_PRINT_CHUNK into smaller fragments and sending them sequentially. This function is placed before send_ext_msg_udp() to maintain a logical ordering of related functions. No functional changes - this is purely a refactoring commit. Signed-off-by: Breno Leitao Reviewed-by: Petr Mladek Reviewed-by: Simon Horman --- drivers/net/netconsole.c | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/drivers/net/netconsole.c b/drivers/net/netconsole.c index 9cb4dfc242f5..dc3bd7c9b049 100644 --- a/drivers/net/netconsole.c +++ b/drivers/net/netconsole.c @@ -1725,12 +1725,24 @@ static void write_ext_msg(struct console *con, cons= t char *msg, spin_unlock_irqrestore(&target_list_lock, flags); } =20 +static void send_msg_udp(struct netconsole_target *nt, const char *msg, + unsigned int len) +{ + const char *tmp =3D msg; + int frag, left =3D len; + + while (left > 0) { + frag =3D min(left, MAX_PRINT_CHUNK); + send_udp(nt, tmp, frag); + tmp +=3D frag; + left -=3D frag; + } +} + static void write_msg(struct console *con, const char *msg, unsigned int l= en) { - int frag, left; unsigned long flags; struct netconsole_target *nt; - const char *tmp; =20 if (oops_only && !oops_in_progress) return; @@ -1747,13 +1759,7 @@ static void write_msg(struct console *con, const cha= r *msg, unsigned int len) * at least one target if we die inside here, instead * of unnecessarily keeping all targets in lock-step. */ - tmp =3D msg; - for (left =3D len; left;) { - frag =3D min(left, MAX_PRINT_CHUNK); - send_udp(nt, tmp, frag); - tmp +=3D frag; - left -=3D frag; - } + send_msg_udp(nt, msg, len); } } spin_unlock_irqrestore(&target_list_lock, flags); --=20 2.47.3 From nobody Mon Dec 1 22:35:46 2025 Received: from mail-oi1-f180.google.com (mail-oi1-f180.google.com [209.85.167.180]) (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 9CBAA2737F9 for ; Fri, 28 Nov 2025 14:20:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.180 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764339661; cv=none; b=DRCSjWuAJopzFMez9EQ9UyZrq/2OS4hzwUh7X9SSzyRhiNsC8wclXpkMU89wJgDExBM008HttdpzTz9R345Z6RxsrtzHz9UMxNsaNcsFhQNTkAJjMoEFnz3lStSV1pai+heFfkAOvG+BBg/35OFjSq1ia7qSlHc6e/RBCMzaKcU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764339661; c=relaxed/simple; bh=dn83itIlZUWLQ+U+eA+BuY6G1TrO1GUvpGmFX9B58mE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=IO498MsG11UQB1DpNHVi7XFd/MG0yq5bs5F6riQp7k/QehJ+dHZsfRg5ee/Zq3G0M3Jn7sQr5CHLVCMmUzO3KmZxVEzyIk4sIniEE81T2tNgGkAgoalsrqqC1LvVrHcX4R6yBKGxOmhGX/M/5CstkzPgd5uSvid1r2f0OGLLG2A= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=debian.org; spf=pass smtp.mailfrom=gmail.com; arc=none smtp.client-ip=209.85.167.180 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=debian.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-oi1-f180.google.com with SMTP id 5614622812f47-45034dbaaabso809788b6e.3 for ; Fri, 28 Nov 2025 06:20:59 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764339659; x=1764944459; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=xVc8Vi5dk8JoHKkvwNwpd9Rz/OBPsAa4UA1kUPWE0N4=; b=j//EPWZJ81BsevzScETsaBwOLROqs2shEisxjTKHtMAvHE/OnsCxEEMng7S9G7UNpC jDp7f+dSSmwI6W7SCvyvetNllYrcAAwW14Hycf8yFheqnbsNjK8goGn5Pd3TIlAjbHb1 85dLJ3tyvHx0B6mY5XKLQFgJ9G0o84Z8dx7BimU32VMzHemtDl3zoB5gNF3BvNUgLN6U bClkDPJ+WsrXYOcqVr0Ad7BMO6YigJs81qsmzb+PlxI6WX8AeiCTan+wlao+uAgbhxzz kfE/xWJnKMipLfvQJvQlIP1yJVrPACXW0e/nzEMe30tqQg1jr3dixrD/FEYaxNpVSYCy /wbw== X-Forwarded-Encrypted: i=1; AJvYcCU0MiXV098Z2yaAi4FD7JRoG5w6aazxMF2qxUHZp371QuzLloRjWS66OtuIyaXfsNF9ZlglJ/rci9E7NR8=@vger.kernel.org X-Gm-Message-State: AOJu0Yz+bWtK/32OXjiXYWiopRtVNAW9RB2TWwSD5tqnYGq55w12ZA+b MaM/g+Bcq+ua0E1tOjomffzTF8tQlcWXA73rW1YmbhZ34P3VtbYEoeXh X-Gm-Gg: ASbGnctRIKl8pzhqIx2eo8BHGjhNS3u7fl0e38zClUO87ipIsEoNZk7dUb+MOs06GFL RGV8/+jrcWqTtObZWzxov9Uf2HRMVYJy4Ilyz8RlLfXToA1p9romm904kkozGhRe+OwK+3T46EK VuLXvWUmqMpInVWQWEe/GX8bmvi3ykUrBFjEcjdpgyg5A66LXsJAoeGPjjrsyjHaZx8ivGaF+S+ wMvurnC57ztuEChR1X0JH059khzoSQtI9MoO2YwWZuxGxaNbg88lcQQ+5pcIeKNeviaUz5JlxU5 tJ92r2ZNfJ8AZkKHOCTS1nsCEZC1RWSZgN1Q67x6/LkHv45TatRaeB5G2QAM0TePn+LDtcfJ4XZ h17M3OuHsvng8bg9bsGo4CdqsBv7YR7WaKkR+Daoe+MpKD/TaASaYzQbOV0gNdBShGb3NELgmMJ vFg6i9mALg6WPcnQ== X-Google-Smtp-Source: AGHT+IFwD7RpsIfEFgpcmxfYEZy5hKSIijVY3yZmFrgV5YRT+F+kpxQb8bm0YGtDkXzW4eF+67kIXw== X-Received: by 2002:a05:6808:894c:b0:450:3ff9:f501 with SMTP id 5614622812f47-4511290fd1dmr13040281b6e.7.1764339658257; Fri, 28 Nov 2025 06:20:58 -0800 (PST) Received: from localhost ([2a03:2880:10ff:41::]) by smtp.gmail.com with ESMTPSA id 006d021491bc7-659332e1480sm950537eaf.7.2025.11.28.06.20.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 28 Nov 2025 06:20:57 -0800 (PST) From: Breno Leitao Date: Fri, 28 Nov 2025 06:20:47 -0800 Subject: [PATCH net-next 2/4] netconsole: Add configfs attribute for direct message sending 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: quoted-printable Message-Id: <20251128-netconsole_send_msg-v1-2-8cca4bbce9bc@debian.org> References: <20251128-netconsole_send_msg-v1-0-8cca4bbce9bc@debian.org> In-Reply-To: <20251128-netconsole_send_msg-v1-0-8cca4bbce9bc@debian.org> To: Breno Leitao , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Shuah Khan , Simon Horman , Jonathan Corbet Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-doc@vger.kernel.org, gustavold@gmail.com, asantostc@gmail.com, calvin@wbinvd.org, kernel-team@meta.com X-Mailer: b4 0.15-dev-a6db3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2745; i=leitao@debian.org; h=from:subject:message-id; bh=dn83itIlZUWLQ+U+eA+BuY6G1TrO1GUvpGmFX9B58mE=; b=owEBbQKS/ZANAwAIATWjk5/8eHdtAcsmYgBpKa/FqDVOsFZ8329Lx8kfljFJl1ghgku9drY0/ AXGcDnSjzWJAjMEAAEIAB0WIQSshTmm6PRnAspKQ5s1o5Of/Hh3bQUCaSmvxQAKCRA1o5Of/Hh3 bRTFD/0Tu3SmDZIjSP/ODQfN9yDeyLXcHnrAF9W8o4lc9Z5qBaMIegPzgfCChdgS4l0zwd2IwHD LD3CsR5N+YvzA30Thp+Zu8F7Q2Re3L+6ai1dieyBHutSl/V9LfSLR7WU8GVswYP+d5iETinR3jC hhhzf4d98d/0kd6pExSOKwsFlT19wEIH3T2Bad7IWqrnZALyLVQwzfkVEcJW7W0dmiClW+VdYid rVdeqld6a7zkqCrdHf6DZsZ/y7YUzgJsNi09EeqT3k+HABD/KQXvRsPKIJK1zSOwsrhhpKwOaFG JiDNBwUkmb7wCwPV+GkwkFCyb6jwMMR8qaL85HSE2QuazfTw1rrAFRI9V5kvGjCuvf1zrVcjrOd QlIYi8A1zHyl6Zk5dleTIzrdzHLogwj301mKRxgEFMtEBq6BzUBo1GNkIsFW1dAvYmZ8G9vF7+s Kdv99GHXtSx3FpdDJi11tcBG9ZVc30lFu9qQJ85JVCPeFteXYbMf9H9zQt/4ern0fmEB2OKDVBb JTnjaEZ6LnW6nm06keF2OWv1BTxSoUBIFG0Rss0jMdlOG+8QEsylTV2MqHocI2X3ABuqB0zKF89 UGyX96WZIHo4WpkIORZgwXMdsOTTXup0GSNZIsuMpsWpS5GsUkk9ejOhT+cc7l/GSWTwAlSL4Z+ PD3Ybkt+pdrnXMg== X-Developer-Key: i=leitao@debian.org; a=openpgp; fpr=AC8539A6E8F46702CA4A439B35A3939FFC78776D Add a new write-only configfs attribute "send_msg" to netconsole targets that allows sending arbitrary messages directly through netconsole. This feature enables users to send custom messages through netconsole without having to go through the kernel logging infrastructure. Messages can be sent by simply writing to: /sys/kernel/config/netconsole//send_msg The implementation: - Checks if the target is enabled before sending - Verifies the network interface is running - Handles both basic and extended message formats - Fragments large messages when needed for basic targets - Reuses existing send_msg_udp() and send_ext_msg_udp() functions Unfortunately this patch has two forward declaration, which is not ideal, but, moving send_msg_udp() functions earlier would cause too many changes, and this could be done in an idependent patch. Signed-off-by: Breno Leitao Reviewed-by: Simon Horman --- drivers/net/netconsole.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/drivers/net/netconsole.c b/drivers/net/netconsole.c index dc3bd7c9b049..245ed2584bbb 100644 --- a/drivers/net/netconsole.c +++ b/drivers/net/netconsole.c @@ -1194,6 +1194,39 @@ static const struct config_item_type userdata_type = =3D { .ct_owner =3D THIS_MODULE, }; =20 +/* Forward declarations */ +static void send_ext_msg_udp(struct netconsole_target *nt, const char *msg, + int msg_len); +static void send_msg_udp(struct netconsole_target *nt, const char *msg, + unsigned int len); + +static ssize_t send_msg_store(struct config_item *item, const char *buf, + size_t count) +{ + struct netconsole_target *nt =3D to_target(item); + ssize_t ret =3D -EINVAL; + unsigned long flags; + + mutex_lock(&dynamic_netconsole_mutex); + if (!nt->enabled) + goto out; + + if (!netif_running(nt->np.dev)) + goto out; + + spin_lock_irqsave(&target_list_lock, flags); + if (nt->extended) + send_ext_msg_udp(nt, buf, count); + else + send_msg_udp(nt, buf, count); + spin_unlock_irqrestore(&target_list_lock, flags); + + ret =3D count; +out: + mutex_unlock(&dynamic_netconsole_mutex); + + return ret; +} CONFIGFS_ATTR(, enabled); CONFIGFS_ATTR(, extended); CONFIGFS_ATTR(, dev_name); @@ -1205,6 +1238,7 @@ CONFIGFS_ATTR_RO(, local_mac); CONFIGFS_ATTR(, remote_mac); CONFIGFS_ATTR(, release); CONFIGFS_ATTR_RO(, transmit_errors); +CONFIGFS_ATTR_WO(, send_msg); =20 static struct configfs_attribute *netconsole_target_attrs[] =3D { &attr_enabled, @@ -1218,6 +1252,7 @@ static struct configfs_attribute *netconsole_target_a= ttrs[] =3D { &attr_local_mac, &attr_remote_mac, &attr_transmit_errors, + &attr_send_msg, NULL, }; =20 --=20 2.47.3 From nobody Mon Dec 1 22:35:46 2025 Received: from mail-ot1-f50.google.com (mail-ot1-f50.google.com [209.85.210.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 C50312459FD for ; Fri, 28 Nov 2025 14:21:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764339663; cv=none; b=azCZGjfPczfWpdLDipNr3isqgwm3yOIksVhW6NW5w8Hppuset0LhKjAxEh4SYMtSRS6Y0hr0qwL+UWR7KxGogj8BZ7lb4Jm7lEzBHuJXoqllv7LoT9uLQ2Nkf9Z0KhWZ3AyEWIbh6Ayd9Oivy12/a6u0AUVvCED3uFKqfnXwYzg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764339663; c=relaxed/simple; bh=l5BDYV3IccAjXWnERTb8MoqCQSYX50xpCWmO7VFIcqA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=rlb4xAHgB3tf65ckrKu3oALHqVwEYpQB7y4tCZPLo3AEY5+mOPYmaf0i38ekOrR1jd37wLvmWCFQ6BD+eH12pvwSqK1N4SsiUx1OtgNbPxR2mmLnO48USYkptbvijtGCQKJt3ujnl5wiMxFwpMGBrgGaKlsDxzMw1jtBrcEgGys= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=debian.org; spf=pass smtp.mailfrom=gmail.com; arc=none smtp.client-ip=209.85.210.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=debian.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-ot1-f50.google.com with SMTP id 46e09a7af769-7c77fc7c11bso1408657a34.1 for ; Fri, 28 Nov 2025 06:21:00 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764339660; x=1764944460; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=45CbFMqcYO42MAEiVkhbYfNu1XqAKx1obOpQGrYaXm0=; b=S8K10H/4SSEmlI/DpW9xc59ADIj1PkcpoLopkqhAmTADQcnWp7b1jFA0UX6ZlueuUt 99Su0TfLYg8kjHWw5Sjek7ObGGRTKJd+fey31iX0wCRyEUm3QKvxDZgNg08IveY+WZ6W BsU/2xYe+AxHQziCvWvfBDJqLxLE2i4HnXKcHLl7LN0sfKLCxKAYTXh6NfPTC28b2Eqr DGGJvl5X3hr1s3ICdS6p6GB5ZsqtGgH1C4UCzZ6AjaUh6JgOR47QVy7A3uLnkH6//52j m2Heve4zvoqul9MjdC+dRohzJcoGp7w0z5wA0YCnMeWJEusBqM1q0nw08dAiSN2m/TwA WLBQ== X-Forwarded-Encrypted: i=1; AJvYcCVbMRh30aA8iIY0TwB8r88PQJT2ANmfhQjknrM/B42cVB8yM+vLX4mNPJS+GOcSA+Ij4FgcCvDnW8rs248=@vger.kernel.org X-Gm-Message-State: AOJu0Yx9MqYk+RMclGYrEQH5RWY9fVKELgW12OCuzWpOXpY1ePlMqs75 s9xy/bL++I2m0H5EmwWewyFAxWj0RZz609o481U3LKpurgOXtb6CoWIh X-Gm-Gg: ASbGncvdgpgndSRXNKrO+AX9G0BBbsfgWUQ+xER2GtAcgh0H1h1vwqY0nhGX3fOixso +1uVYRBdbqWCzQB41FUL97xUSc9pLfjmj2Zim9tdlY6F+LXf3XGREJl2DXoen7ykqTZf78rfImA o+piKQ8De8zvp0yj3YKJ5hj9tf4zE4GDnguWXKBaoDKIngCWQcuoaTOd8sw48uW7ipi4TJ3m1/n sVzD7UEfZaW81ZHEx1I0zMzmY70Ius7MLI04gT7H0a1FTDJfx3bXvBD10Ko0HKEt7FkEmGXKO0N 4eIwmxzMuG1WCXVgtRfO1/xc8auWh5UGZE09xYrwxdd1OTidvf6YmFBNlU1TmIXYvyow60c5iRo MNRoq9arzcefi/gwX6qkoXGYeGrSZNM4rAymIB0Qs8rBVRrgCIrdGc0kQZwiCDtJtBuO6NC4IwJ 4tZrwF57UbjcvXOQ== X-Google-Smtp-Source: AGHT+IEzB0fmoP2bk7BNz4KK7LqOyyEGrRZVUZxjqjd+26Lvgjym0892sx3oCpX5I9zgbNEQhbrK6w== X-Received: by 2002:a9d:738c:0:b0:7c6:d01f:591b with SMTP id 46e09a7af769-7c78eb15f9fmr12369680a34.13.1764339659731; Fri, 28 Nov 2025 06:20:59 -0800 (PST) Received: from localhost ([2a03:2880:10ff:40::]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7c90fe0f49esm1579149a34.22.2025.11.28.06.20.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 28 Nov 2025 06:20:58 -0800 (PST) From: Breno Leitao Date: Fri, 28 Nov 2025 06:20:48 -0800 Subject: [PATCH net-next 3/4] selftests/netconsole: Switch to configfs send_msg interface 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: quoted-printable Message-Id: <20251128-netconsole_send_msg-v1-3-8cca4bbce9bc@debian.org> References: <20251128-netconsole_send_msg-v1-0-8cca4bbce9bc@debian.org> In-Reply-To: <20251128-netconsole_send_msg-v1-0-8cca4bbce9bc@debian.org> To: Breno Leitao , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Shuah Khan , Simon Horman , Jonathan Corbet Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-doc@vger.kernel.org, gustavold@gmail.com, asantostc@gmail.com, calvin@wbinvd.org, kernel-team@meta.com X-Mailer: b4 0.15-dev-a6db3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1273; i=leitao@debian.org; h=from:subject:message-id; bh=l5BDYV3IccAjXWnERTb8MoqCQSYX50xpCWmO7VFIcqA=; b=owEBbQKS/ZANAwAIATWjk5/8eHdtAcsmYgBpKa/FRW/67U+WfAFgUFVwZVdflUFfJRqi0ktFm ozlZltyLqeJAjMEAAEIAB0WIQSshTmm6PRnAspKQ5s1o5Of/Hh3bQUCaSmvxQAKCRA1o5Of/Hh3 beRHD/9sucB/RenAtgjyPz0c01Pjjs1qonmSFXA+Qo2wPXUjADkRgiRN8e+n7tecoQlgtkwo34a Jh/a58GexNgGEqc52t6je8Gm4qnrZXQDti8K1vuKGn1tZbtSlifvfZtwnKehE4N2cOOYrs5rEBl h7XM2EOpZMioSBxfBRBiNmOs7obYwvmmjF4R6ey/iDu9U9uYlJczdXzkfw9cWyWDvTqDMsQgG9q GrzPgydotvWYViFSZcmItclgyLyeomX9QRrg9LTGLqlLB7euY5tRwu5NFNZO5CLCA/Q/PiMmM4P SFK1LdsT9Mi4mZ5Etf97p4jyJPX9zc/C7lKPuuKTl1W4Zm9Y3dVuONVc4ohfLWcgVpktN0mXsDI l7eDH+1cnYGIjAP40cSOOHTlVCNuiV0NP8yLVqV38DggoGtAtY9pyqJ+evGVgrVWV44BsYDXdru OtSeTCfMfa9laDUgIlFwLZzf7+LO+QeyN50FD6VY/0khgn+acdh9f+utb3NS37lK+JVxe3qPrKN IR2U4V/awXjN/UDQFygcR39H85Fp5rSDJGoMGdnPzuZUnltlBLDmpFi286BkAjEdBIdzCqAfNNi Hk8wAA4v1np+MKZn5DxX1JRq4J9pxg9fPHfADw30G+c8Bq26V6S1rt2bajghy78YKavon21RH3h XK4wd908Tz1a1PQ== X-Developer-Key: i=leitao@debian.org; a=openpgp; fpr=AC8539A6E8F46702CA4A439B35A3939FFC78776D Update the netcons_sysdata test to use the configfs send_msg attribute for message injection instead of /dev/kmsg. This validates the new direct message sending functionality that bypasses the kernel's printk infrastructure. Only move this test to the new mechanism, given the traditional printk() flow continues to be default path, and the one that should be mostly tested. Signed-off-by: Breno Leitao Reviewed-by: Simon Horman --- tools/testing/selftests/drivers/net/netcons_sysdata.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/testing/selftests/drivers/net/netcons_sysdata.sh b/tools= /testing/selftests/drivers/net/netcons_sysdata.sh index baf69031089e..27df730dc8f3 100755 --- a/tools/testing/selftests/drivers/net/netcons_sysdata.sh +++ b/tools/testing/selftests/drivers/net/netcons_sysdata.sh @@ -195,7 +195,7 @@ function runtest { # Wait for socat to start and listen to the port. wait_local_port_listen "${NAMESPACE}" "${PORT}" udp # Send the message - taskset -c "${CPU}" echo "${MSG}: ${TARGET}" > /dev/kmsg + taskset -c "${CPU}" echo "${MSG}: ${TARGET}" > "$NETCONS_PATH"/send_msg # Wait until socat saves the file to disk busywait "${BUSYWAIT_TIMEOUT}" test -s "${OUTPUT_FILE}" } --=20 2.47.3 From nobody Mon Dec 1 22:35:46 2025 Received: from mail-oa1-f44.google.com (mail-oa1-f44.google.com [209.85.160.44]) (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 4313926ED51 for ; Fri, 28 Nov 2025 14:21:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764339664; cv=none; b=pjCN3hvh10srMW+n3FscaHAnIkyD8UruxivV0NVJAwdNesAiEJCAVsI5PndKdKKkICECyoBUtzSi2CN/jBRQmUCGj1hKZlJaDnsyugPF6DL7w2orsb48L+gKw1qsxGyciY3B2LZT0/aqMEMDM8+ipXQdQwkHzM7ZGl0d968sb+0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764339664; c=relaxed/simple; bh=iAhkuxtvlLCx3FI2+LZ2MUKk3NrR4LQpjDFB2p7NYFA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=t34QMqstyOCLzPYxsEKQOFv4dXRcMqo2d7bcdsb4aZuTJKruCaS8oGoPSTJ7WZn2tFEAKNSZS2SrTbYvxy5Y9uR5tKhqD4o7/Aup9452i91jo6+xYtVN24aVLvlkDmQx3wg3OEqVmCBB14orIoUkWQjiYyYA4yYmTTf+ZRelEXU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=debian.org; spf=pass smtp.mailfrom=gmail.com; arc=none smtp.client-ip=209.85.160.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=debian.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-oa1-f44.google.com with SMTP id 586e51a60fabf-3ec4d494383so1237927fac.3 for ; Fri, 28 Nov 2025 06:21:02 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764339661; x=1764944461; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=bcATxuNlgaeDAYpQM6zHeyqMLPCvdphcTT8Pi4GZRCI=; b=R1GETkNcxdzBEl8SYaSuuQNx1HCUyuo5aJbAk331V3QeUmfBBfP6430d6ynUGRyklf VrXCwmQ925L4bjIBLXiQVZm66hIA1hNQfWAVHsNpAdnFWSjfMxDtMyA1XXOh5sZwBQ9q xBJ9zNTaAwi2ESIzF/tsPYkL9q6Ki2fRMvvpdtft8WXFiLr7dM7HGGBbvLiqbuIU1sAY 50LKRZdOGJWxjClbqwjQxlkaXZdHjryS/uItyC/zk0qPwdwJOvJ+D+gExxoVD+ESctqD dPZuXQ2un49pNWYVO34aGBjDXN+AVLp2aJEwEEY1Woa1wsiGr0uSA9V6FTDRxu7P0pco C/fQ== X-Forwarded-Encrypted: i=1; AJvYcCUOFq6Y0mQu1DQDl1bYBeXJWdyCoOOblj+3JXEUYjAPyoLTwfIL2FQoOrusIhsvZwIL1D3GWNjLFWA/jR0=@vger.kernel.org X-Gm-Message-State: AOJu0YzMrJdDWXUSLnqqx0O58sifj+0HQXVMnXyuFFNhLmiDtYSIIRE2 4wAeBck5onsepEME9mjNvBpDJVykR+3x+Iw8xl1r7uaC8vlpLbpJajtU X-Gm-Gg: ASbGncu/Z7F1xhD2APTFJnhiz5UKHdF70v+x5LrwI5adHMM8oDyGgRST6QdTWGI9S3D LMn0E1JREqLWxH6tEEUxSsLhDzafpyt13PlQX0iz2PHhXx2HxJqTxjLdEBaXK8yA6R3RnZLidIk /f9DtGVzK/nVYneLidJVJ455cM/xnASRuypCu35DWaHjS6XThW8SDHBidjNxpOW8K/mCVt2FNN1 MfD0Ca7O+TE72CljD/OO2NmVrySkmSN61JfDfDq6/K1Sxo0Hug75Y1A+vF6NHH5tv7T1acXOXJl VKn86CEx02vszkWmE13Kh+FY5lkDZHRzyrwQRpQcJu0cG0nLFCeXe2+D5Syc+UqPREXaLSoUd1f E1vO5rs2fC/ehBAMyXU39WzbL6flzPcG1S0vPuUv9Uwjq+hS26zwZsEguZNjm2uaMOPRvuraJH0 wX0aL223i9qu6M4w== X-Google-Smtp-Source: AGHT+IFdXHddbS3YahClgjukUuSYo5q86nrHHLv0wekajQYQYjxd/clThSoKb648YqTTU/IIr/EKUA== X-Received: by 2002:a05:6870:a2d1:b0:3e7:e20a:39fb with SMTP id 586e51a60fabf-3ed1fd4ff6cmr7103109fac.11.1764339661150; Fri, 28 Nov 2025 06:21:01 -0800 (PST) Received: from localhost ([2a03:2880:10ff:73::]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-3f0dcfdb503sm1801960fac.14.2025.11.28.06.21.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 28 Nov 2025 06:21:00 -0800 (PST) From: Breno Leitao Date: Fri, 28 Nov 2025 06:20:49 -0800 Subject: [PATCH net-next 4/4] Documentation: netconsole: Document send_msg configfs attribute 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: quoted-printable Message-Id: <20251128-netconsole_send_msg-v1-4-8cca4bbce9bc@debian.org> References: <20251128-netconsole_send_msg-v1-0-8cca4bbce9bc@debian.org> In-Reply-To: <20251128-netconsole_send_msg-v1-0-8cca4bbce9bc@debian.org> To: Breno Leitao , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Shuah Khan , Simon Horman , Jonathan Corbet Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-doc@vger.kernel.org, gustavold@gmail.com, asantostc@gmail.com, calvin@wbinvd.org, kernel-team@meta.com X-Mailer: b4 0.15-dev-a6db3 X-Developer-Signature: v=1; a=openpgp-sha256; l=3352; i=leitao@debian.org; h=from:subject:message-id; bh=iAhkuxtvlLCx3FI2+LZ2MUKk3NrR4LQpjDFB2p7NYFA=; b=owEBbQKS/ZANAwAIATWjk5/8eHdtAcsmYgBpKa/F+n91KlfHmNbR3+aEeTppVS0z8VZzSPsvL P1xw6ToDciJAjMEAAEIAB0WIQSshTmm6PRnAspKQ5s1o5Of/Hh3bQUCaSmvxQAKCRA1o5Of/Hh3 bcv3D/9yfpizPhvw/0kpd6DLJkeflw/6EdTVIyepbmpLrnAtRfmN/B9x/C0ISfefQNwYnyMZpD1 lVYSNjv1aZd4tOGqcUvqbY8OkLgsVVLXyuctR27pw8jNu0ObZhF0JddNKQJnHKbMKI2Pi5+pfs0 iltAjWUMzmjMt5mULUZ40HQvla414ukJnTtD/E1RX3wVsiBU8m+lS7Dsg6ofTJxmkBC1vJGuW1a FwrluZ3UY798WrlEfNfL/nxdcy642+rC2jNF4miKMvKhfCCyFfCL2f3+k/lPSxkbIy/oz3w78mb SwJSZ9fDlplQdVC4Ylv6SrbCs5R5v0bNfbSsmOxw8OwjEx491JsX16KZqjLyRawLPARNjp4gCYg FZlvQYB6CV55OrPyAdO92VaS4DKKKkVzBTcvCdkpSvnKU/PyqHV0/iMnS/GuMtpKrWofbu+rlKo ZtBR1at+N7TAr6tqMPRBbV3MIwIZUmRfTmT9Uc2MuedAt1HYt/FpjEXJmX9rOd9ZLuJOSrkriXp b7APvJbpdLWfKX+W7JJIrkMvXVXZEdEefP06LX5SUv0toe78VqmzA7tiEMdEhdrodlP4l7Olh+p 1wMYXVNHzfCtnU1P/naWOE1c22THeLc8VZgXimISheVMC9wFSgOc2EHkP93b4NmaJ5UdlRfgMdC IWK5SY9NbyV8cLw== X-Developer-Key: i=leitao@debian.org; a=openpgp; fpr=AC8539A6E8F46702CA4A439B35A3939FFC78776D Add documentation for the new send_msg configfs attribute that allows sending custom messages directly through netconsole targets. The documentation covers: - How to use the send_msg attribute - Key features and requirements - Use cases for direct message sending - Example of periodic health check implementation This feature enables userspace applications to inject custom messages into the netconsole stream without going through the kernel's printk infrastructure, which is useful for application monitoring, testing, and debugging purposes. Signed-off-by: Breno Leitao Reviewed-by: Simon Horman --- Documentation/networking/netconsole.rst | 40 +++++++++++++++++++++++++++++= ++++ 1 file changed, 40 insertions(+) diff --git a/Documentation/networking/netconsole.rst b/Documentation/networ= king/netconsole.rst index 4ab5d7b05cf1..229d5fe9a3b3 100644 --- a/Documentation/networking/netconsole.rst +++ b/Documentation/networking/netconsole.rst @@ -139,6 +139,7 @@ The interface exposes these parameters of a netconsole = target to userspace: local_mac Local interface's MAC address (read-only) remote_mac Remote agent's MAC address (read-write) transmit_errors Number of packet send errors (read-only) + send_msg Send custom messages directly (write-only) =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =20 The "enabled" attribute is also used to control whether the parameters of @@ -158,6 +159,45 @@ You can also update the local interface dynamically. T= his is especially useful if you want to use interfaces that have newly come up (and may not have existed when netconsole was loaded / initialized). =20 +Direct Message Sending +---------------------- + +The `send_msg` attribute allows sending custom messages directly through a +netconsole target without going through the kernel's printk infrastructure. +This is a write-only attribute that can be used to send arbitrary text to +the configured remote logging agent. + +To send a message directly:: + + echo "Custom status message" > /sys/kernel/config/netconsole/target1/send= _msg + +Key features: + +* Messages can be sent only when the target is enabled +* The network interface must be up and running +* For extended targets, messages are sent with the extended header format +* For non-extended targets, messages are fragmented if they exceed the + maximum chunk size +* Messages bypass the kernel log buffer entirely + +This is useful for: + +* Sending application-level alerts or status updates +* Injecting custom markers or delimiters into the log stream +* Sending diagnostic information from userspace scripts +* Testing netconsole connectivity without generating kernel messages + +Example use case - sending periodic health checks:: + + while true; do + echo "[$(date)] System health: OK" > /sys/kernel/config/netconsole/targ= et1/send_msg + sleep 60 + done + +.. note:: + The `send_msg` attribute requires the target to be enabled. Unlike other + parameters, you do not need to disable the target to use this attribute. + Netconsole targets defined at boot time (or module load time) with the `netconsole=3D` param are assigned the name `cmdline`. For example= , the first target in the parameter is named `cmdline0`. You can control and mo= dify --=20 2.47.3